css相容IE6/IE7/FF的通用方法和著名的Clearfix Hack
一、CSS HACK
以下兩種方法幾乎能解決現今所有HACK.
1, !important
隨著IE7對!important的支援, !important 方法現在只針對IE6的HACK.(注意寫法.記得該宣告位置需要提前.)
<style>
#wrapper
{
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */
}
</style>
2, IE6/IE77對FireFox
*+html 與 *html 是IE特有的標籤, firefox 暫不支援.而*+html 又為 IE7特有標籤.
<style>
#wrapper
{
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意順序 */
}
</style>
注意:
*+html 對IE7的HACK 必須保證HTML頂部有如下宣告:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
二、萬能 float 閉合(非常重要!)
關於 clear float 的原理可參見 [How To Clear Floats Without Structural Markup]
著名的Clearfix Hack
將以下程式碼加入Global CSS 中,給需要閉合的div加上 即可,屢試不爽.
<style>
/* Clear Fix */
.clearfix:after
{
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix
{
display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
</style>
.clearfix:after {content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
三、其他相容技巧(再次囉嗦)
1, FF下給 div 設定 padding 後會導致 width 和 height 增加, 但IE不會.(可用!important解決)
2, 居中問題.
1).垂直居中.將 line-height 設定為 當前 div 相同的高度, 再通過 vertical-align: middle.( 注意內容不要換行.)
2).水平居中. margin: 0 auto;(當然不是萬能)
3, 若需給 a 標籤內內容加上 樣式, 需要設定 display: block;(常見於導航標籤)
4, FF 和 IE 對 BOX 理解的差異導致相差 2px 的還有設為 float的div在ie下 margin加倍等問題.
5, ul 標籤在 FF 下面預設有 list-style 和 padding . 最好事先宣告, 以避免不必要的麻煩. (常見於導航標籤和內容列表)
6, 作為外部 wrapper 的 div 不要定死高度, 最好還加上 overflow: hidden.以達到高度自適應.
7, 關於手形游標. cursor: pointer. 而hand 只適用於 IE.
相關文章
- CSS實現文字豎排顯示(相容IE6/IE7)CSS
- CSS三角的寫法(相容IE6)CSS
- 噁心的相容問題:完美解決IE(IE6/IE7/IE8)不相容HTML5標籤的問題HTML
- 什麼是hack?css的hack有哪些?CSS
- Javascript 實現 Textarea 自動伸縮,相容IE6、IE7、IE8、IE9...JavaScriptIE9
- IE6常見CSS解析Bug及hack-好程式設計師H5前端CSS程式設計師H5前端
- 針對IE及其它的css hackCSS
- 史上最全的CSS hack方式一覽CSS
- CSS HACK 如何書寫CSS
- css+js美化下拉框(相容IE6、7、8以上主流瀏覽器)CSSJS瀏覽器
- 一行程式碼解決各種IE相容問題,IE6,IE7,IE8,IE9,IE10行程IE9IE10
- Css3 via IE7 8 9CSSS3
- 前端面試題-CSS Hack前端面試題CSS
- CSS瀏覽器相容性的4個解決方案:瀏覽器CSS樣式初始化、瀏覽器私有屬性,CSS hack語法和自動化外掛CSS瀏覽器
- Flink計算pv和uv的通用方法
- js實現重寫new Date()相容IE6以上JS
- java反射呼叫set和get方法的通用類Java反射
- 常見的幾種IE6 BUG及其解決的方法
- 好程式設計師web前端分享CSS Bug、CSS Hack和Filter學習筆記程式設計師Web前端CSSFilter筆記
- git merge --ff/--no-ff/--ff-only 三種選項引數的區別Git
- jQuery中css()和attr()方法的區別jQueryCSS
- 相容系列-JSON.parse()轉字串為json物件,解決IE7及以下不相容問題JSON字串物件
- CSS 奇思妙想 | 全相容的毛玻璃效果CSS
- CSS 實現三角形,非 HackCSS
- 設計通用流程和可變點的方法一些思考
- js上傳圖片預覽,相容IE6以上各大主流瀏覽器JS瀏覽器
- 檢測包相容性的方法
- 對通用骨架提取方法的改進
- (16)CSS 擴充:① 瀏覽器相容 | CSSCSS瀏覽器
- 前端筆記之CSS(下)浮動&BFC&定位&Hack前端筆記CSS
- 非佈局樣式-裝飾性屬性&CSS hackCSS
- 十二、.net core(.NET 6)新增通用的訪問webapi的方法(包括HttpClient和HttpWebRequest)WebAPIHTTPclient
- 寫出你遇到過IE6/7/8/9的BUG及解決方法
- 實現比較通用的DOM事件掛載、事件解除安裝(相容)事件
- CSS通用資料型別CSS資料型別
- systemverilog新增的always_comb,always_ff,和always_latch語句
- css加捲軸的方法CSS
- css中背景定位的方法CSS
- css幾個居中的方法CSS