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