国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

css hack之清除浮動(clearfix)

2024-07-11 08:26:25
字體:
來源:轉載
供稿:網友
<div class='clear'></div>

但這樣增加了頁面的結構的源代碼,造成代碼的擁腫,其實也可以有更好的辦法,
在浮動元素的外包clearfix樣式

復制代碼
代碼如下:
<div class="clearfix">
  <div class="fl"></div>
<div class="fr"></div>
</div>
.clearfix:after{
visibility:hidden;
display:block;
font-size:0;
content:" ";
clear:both;
height:0;
}
.clearfix { display: inline-table; }
/* Hides from IE-mac /*/
* html .clearfix { height: 1%; }
.clearfix { display: block; }
/* End hide from IE-mac */

說明:
*對大多數符合標準的瀏覽器應用第一個聲明塊,目的是創建一個隱形的
內容為空的塊來為目標元素清除浮動。
*第二條為clearfix應用 inline-table 顯示屬性,僅僅針對IE/Mac。
*利用 * / 對 IE/Mac 隱藏一些規則:
* height:1% 用來觸發 IE6 下的haslayout。
*重新對 IE/Mac 外的IE應用 block 顯示屬性。
*最后一行用于結束針對 IE/Mac 的hack。
由于此方法針對的瀏覽器或成為歷史(尤其是Mac下的IE5 ),或正在靠近
標準的路上,這個方法就不再那么與時俱進了。
拋掉對 IE/Mac 的支持之后,新的清除浮動方法:

復制代碼
代碼如下:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

說明:
IE6 和 IE7 都不支持 :after 這個偽類,因此需要后面兩條來觸發IE6/7的haslayout,以清除浮動。幸運的是IE8支持 :after 偽類。因此只需要針對IE6/7的hack了。
糖伴西紅柿說:
Jeff Starr 在這里針對IE6/7用了兩條語句來觸發haslayout。我在想作者為什么不直接用 * 來直接對 IE6/7 同時應用 zoom:1 或者直接就寫成:

復制代碼
代碼如下:
.clearfix:after {visibility: hidden;display: block;font-size: 0;content: " ";clear: both;height: 0;}
.clearfix{*zoom:1;}

以我目前的淺薄認知來講,以上寫法應該也可以直接達到同樣效果。關于這個地方,在文章的評論里也有些討論,我希望再聽聽大家的高見。
我平時都是用 overflow:hidden 來清除浮動的,因為夠簡單粗暴。但是 overflow 有時候也不太適用:
父級元素使用 overflow:hidden 時,如果其子元素定位到部分或全部在父元素之外,父元素就會對超出其外的子元素部分進行裁剪。
對 css3 來說,也會 overflow:hidden 也會對一些屬性產生影響。
例如 box-shadow, 當父元素使用 overflow:hidden 屬性時,box-shadow 會被裁剪。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北川| 永新县| 巴楚县| 禄劝| 平阳县| 盐城市| 资阳市| 山丹县| 峨山| 沈丘县| 天水市| 黄冈市| 新民市| 金门县| 神池县| 双峰县| 都昌县| 绥芬河市| 玉山县| 大田县| 华池县| 隆林| 郓城县| 手游| 右玉县| 陈巴尔虎旗| 阿克苏市| 琼海市| 宁安市| 即墨市| 萝北县| 上高县| 宜春市| 开原市| 中牟县| 革吉县| 克东县| 绩溪县| 宁陵县| 桃江县| 尉犁县|