Po prostu resetuje poprzedzające ustawienie float…
Na nauczyciela się nie nadaję, może ta strona lepiej to objaśni.
Ogółem u Ciebie “logo” wychodzi poza nagłówek i “zahacza” o resztę, przez co wcześniej wypychało “port1”, a sam float liczony był od początku, czyli od “logo”… clearfix to zresetował. Ewentualnie można byłoby określić wysokość dla “logo”, ale nie wiem czy to nie przeszkadzałoby Tobie i nie prowadziło do innych problemów (testowo wysokość dla logo to 110px lub 160px ).
Nie rozumiem, chodzi Tobie czemu ten div nie ma klasy clearfix, czy o inną “metodę”? Bo w zasadzie to jest clearfix
Jeśli chodzi o pierwsze, to nazwa nie ma znaczenia, ważne by dany element miał w sobie “resetowanie”.
Jeśli chodzi o inną “metodę”, wybrałem tą, bo jest widoczna i łatwa do zastosowania, wystarczy że wstawisz w odpowiednim miejscu takiego div’a, a wszystko co pod nim, nie będzie się float’em przejmować…
Możesz też określić pseudo-element do resetowania pływania, ale to więcej roboty/pisania niż powyższa możliwość (dziw bierze, że w sieci nazywają to “mikro hakiem” ;)).
Jeśli chcesz, możesz również pozbyć się podanego wcześniej div’a oraz dopisku css i dodać clear: both; do “content-port” co da taki sam efekt, oczywiście nie zapominając o poprawkach w css’ie, które mogą wyglądać jak poniżej:
/*-- PORTFOLIO ! --*/
.port1, .port2, .port3 {float: left; width: 280px; height: 280px; padding: 10px;}
.port2, .port3 {margin-left: 20px;}
.port1{background: yellow;}
.port1:hover body {background: rgba(0, 0, 0, .5);}
.port2 {background: blue;}
.port2:hover body {background: rgba(0, 0, 0, .5);}
.port3 {background: red;}
.port3:hover body {background: rgba(0, 0, 0, .5);}[/code]
Z tym że jest to sposób “zakamuflowany”