一、理解clear: left/clear: right
當想到clear: left的時候,自然會認為是“清除左浮動”,clear: right是清除右浮動。
其實現在想想,這樣的理解與表示是不嚴謹的欠考慮的。
一般,現在中文圈流傳的表述是:
clear語法:
clear : none | left | right | both
取值:
none : 默認值。允許兩邊都可以有浮動對象
left : 不允許左邊有浮動對象
right : 不允許右邊有浮動對象
both : 不允許有浮動對象
w3.org官方的解釋是:「元素盒子的邊不能和前面的浮動元素相鄰」。
我個人覺得官方解釋更好一點。
無論是我“清除左/右浮動”,還是業界流傳的“不允許左/右邊有浮動對象”,其意思都是,設置的clear的元素讓浮動元素如何如何。也就是我讓別人如何如何~~大家可以仔細體會,細細感受下……
而官方的說法則是“設置了clear的元素不能怎樣怎樣”。也就是我自己如何如何~~大家可以再次感受下……
為何官方解釋更好呢?難道是“己所不欲勿施于人”的緣故?哈,這個解釋贊的,方便記憶。更通俗的原因是:
務必記住這句話:“float是魔鬼,會影響其他相鄰元素;但是clear是小白,其只會影響自身,不會對其他相鄰元素造成影響!”
但是,官方的解釋似乎拗口,缺少點靈性。于是,我根據自己的感性認知,做了如下理解:
clear語法:
clear : none | left | right | both
取值:
none : 默認值。
left : 左側抗浮動
right : 右側抗浮動
both : 兩側抗浮動
“抗”這個擬人化的動詞的發起者是設置了clear屬性的元素,既形象又釋義準確。
實例出真知
您可以狠狠地點擊這里:clear:left/right的作用效果demo
例如上圖所示的clear:left作用示意:圖片左浮動,化身魔鬼,要影響后面相鄰的元素。一般的元素都逃不了被影響被束縛的命運。除非擁有clear技能。例如,這里clear:left左側抗浮動,也就是,左側的浮動根本就奈何不了我——我還是原原本本在下面顯示。
但是,如果圖片是右浮動,則clear:left仍逃不過淪陷的命運,可以看到父級容器的高度塌陷了!
單純的clear:left就像是招潮蟹,一側雄起,一側不舉。
因此,考慮到通用性,在抗浮動的處理中,我們都是使用clear:both. 用意很明顯:我不必關心你是左浮動還是右浮動,我都通通免疫。
因此,我們才會有下面這段雕琢后的清除浮動通用CSS:
新聞熱點
疑難解答