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