對於日新月異的web開發技術和瀏覽器更新頻率來說,清除浮動已然是乙個被人嚼碎了的話題。說是這些年過去了,有關float的地方,還依然少不了清除浮動的標籤和css**。w3c整天研究html5,就不能抽出點時間來把這種煩人的小細節修正一下嗎?抱怨歸抱怨,飯還得吃,錢還得掙,清除浮動就不能停止。
為了清除浮動增加無語義**已經是最穩定和簡單的方式,但總叫開發者心裡感到不舒服,畢竟這麼多年來早已習慣了結構和樣式的分離,非要在結構中插入這樣一行無語義**就會讓人覺得有種難以掌握的感受。
通過css**清除浮動也不省油,光是當前這種多個瀏覽器瓜分瀏覽器份額的狀況所帶來的各種css hack就夠讓人頭疼的了,而且這還沒說到那些個瀏覽器的不同版本之間又有多少的差別。通過css清除浮動還是乙個長期的過程,因為你還要期盼下一牌瀏覽器沒有針對浮動修改對html**的解釋。
要說在當前這種惡劣的狀況下,選取哪種方式去清除浮動最為可取,這事乙個人說了不算,要看大家的意見。
很多時候,開發人員在前端開發時遇到問題,就會去找那些運用了類似技術的大型**,去分析它們的解決方案,然後用到自己的**上,連為什麼都省得去想了。我也常常這麼做。具體到清除浮動這個問題上,我現在所用的無語義標籤法就是在看到某大型**用過之後,我才選用的。
程式設計中國社群
雖說這是來自大型**,可信任度很高,可以不去思考而直接用,但學習的態度還是要有,就此分析一下其中的原理。
首先是利用:after偽類來相容支援這一標準的瀏覽器們,ff、chrome自然屬於強烈支援標準的瀏覽器行列,不過ie自從繁殖到第八代開始,也表示支援這一偽類。:after偽類用來和content屬性一起使用設定在物件後的內容。
如果現在不是2023年,而是10年後,可能就不用再往下講了。但因為現在ie6和ie7還很有勢力,所以,我們還得好好照顧它們。:after偽類ie不支援,它用來和content屬性一起使用設定在物件後的內容,例如:
這個css將會讓clearfix類標籤內的文字後邊加上英文句號。
"* html"這個選擇符只有ie6才能識別,因此在其中設定縮放屬性"zoom: 1;",便可實現相容ie6;"*:first-child html"這個選擇符只有ie7才能識別,因此設定縮放屬性"zoom: 1;" 便可實現相容ie7。
原理分析完畢。方法是可行的,完美解決是不可能的。所以,w3c標準中的浮動一天不變,清除浮動就會一天不止。
關於float與清除浮動
ps 初學感受 第一次學習浮動和定位的時候,也不知道這個抽象的概念到底是怎麼樣的,元素到底是怎麼飄起來的 他怎麼不上天?那你就錯了,他真的上天了!1.浮動 float 取值 left right none inherit 故名思意 left 左浮動 right 右浮動 none 不浮動 預設值 in...
float 關於使用浮動 和清除浮動
float的特點 1,可以使塊元素在一行顯示 元素浮動後會脫標不佔位 2,可以使元素進行模式轉換.但是,但是,但是 有優點 就一定有缺點.有時候一不留神就會被它的缺點折磨的抓狂.我有次用float給父元素裡的所有子元素都新增了浮動效果,但是沒有給父元素設定高度.結果是 廢話不多說 上圖 是這樣的 我...
float清除浮動
影響 浮動會使元素具有塊級元素和行內元素的特點 即內聯塊的特點 讓塊元素在同一行顯示。內聯塊 inline block 和浮動 float left right none 元素脫離文件流,按照浮動方向移動,遇到父級邊界或者相鄰浮動元素停住 但是無論哪種方式都需要做一些處理 去除inline bloc...