使用clear屬性清除浮動,其語法如下:
如果單看字面意思,clear:left 是“清除左浮動”,clear:right 是“清除右浮動”,實際上,這種解釋是有問題的,因為浮動一直還在,并沒有清除。
官方對clear屬性解釋:“元素盒子的邊不能和前面的浮動元素相鄰”,對元素設置clear屬性是為了避免浮動元素對該元素的影響,而不是清除掉浮動。
還需要注意 clear 屬性指的是元素盒子的邊不能和前面的浮動元素相鄰,注意這里“前面的”3個字,也就是clear屬性對“后面的”浮動元素是不聞不問的。考慮到float屬性要么是left,要么是right,不可能同時存在,同時由于clear屬性對“后面的”浮動元素不聞不問,因此,當clear:left有效的時候,clear:right必定無效,也就是此時clear:left等同于設置clear:both;同樣地,clear:right如果有效也是等同于設置clear:both。由此可見,clear:left和clear:right這兩個聲明就沒有任何使用的價值,至少在CSS世界中是如此,直接使用clear:both吧。
一般使用偽元素的方式清除浮動:
clear屬性只有塊級元素才有效的,而::after等偽元素默認都是內聯水平,這就是借助偽元素清除浮動影響時需要設置display屬性值的原因。