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

首頁 > 開發(fā) > CSS > 正文

DIV+CSS 兼容小集

2024-07-11 08:47:47
字體:
供稿:網(wǎng)友
關(guān)于div+css兼容IE和firefox的問題
好不容易建立的div+css網(wǎng)頁完全符合W3C標準。在ie7下顯示非常完美,用firefox一測試,乖乖一探糊涂

慘不忍睹。經(jīng)過一番研究發(fā)現(xiàn)兼容很

簡單。

1、增加 div {overflow: hidden;},目的就是讓div自動適應(yīng)內(nèi)容高度
2、橫排的div外套div

另外設(shè)定
ul {
margin: 0px;
padding: 0px;
}
是消除li前面的空格


div+css兼容性問題

CSS 兼容要點:DOCTYPE 影響 CSS 處理

FF: div 設(shè)置 margin-left, margin-right 為 auto 時已經(jīng)居中, IE 不行

FF: body 設(shè)置 text-align 時, div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可

居中

FF: 設(shè)置 padding 后, div 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設(shè)一個

height 和 width

FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式

div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個DIV一樣高 line-height:200px; 然

后插入文字,就垂直居中了。缺點是

要控制內(nèi)容不要換行

cursor: pointer 可以同時在 IE FF 中顯示游標手指狀, hand 僅 IE 可以

FF: 鏈接加邊框和背景色,需設(shè)置 display: block, 同時設(shè)置 float: left 保證不換行。參照

menubar, 給 a 和 menubar 設(shè)置高度是為了

避免底邊顯示錯位, 若不設(shè) height, 可以在 menubar 中插入一個空格XHTML+CSS兼容性解決方案小集

使用XHTML+CSS構(gòu)架好處不少,但也確實存在一些問題,不論是因為使用不熟練還是思路不清晰,我就先

把一些我遇到的問題寫在下面。

1.在mozilla firefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{margin:30px!important;margin:28px;}

注意這兩個margin的順序一定不能寫反,據(jù)阿捷的說法!important這個屬性IE不能識別,但別的瀏覽器可

以識別。所以在IE下其實解釋成這樣



div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{maring:30px;margin:28px}

重復(fù)定義的話按照最后一個來執(zhí)行,所以不可以只寫margin:XXpx!important;

2.IE5 和IE6的BOX解釋不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的寬度會被解釋為

300px- 10px(右填充)-10px(左填充)最終

div的寬度為280px,而在IE6和其他瀏覽器上寬度則 是以300px+10px(右填充)+10px (左填充)=320px來計

算的。這時我們可以做如下修改:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{width:300px!important;width :340px;margin:0 10px 0 10px}

關(guān)于這個是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的話,請告

訴我一聲,謝了!:)

3.ul標簽在Mozilla中默認是有padding值的,而在IE中只有margin有值所以先定義

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
ul{margin:0;padding:0;}

就能解決大部分問題

4.關(guān)于腳本,在xhtml1.1中不支持language屬性,只需要把代碼改為

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
<script type="text/javascript">


div+css兼容問題解決方案(IE5/5.5/6/7/FF)

之前找了幾個不同版本的可獨立運行的IE瀏覽器,正好拿來試試頁面的兼容性問題。不試不知道,在IE6

和FF中沒問題的頁面在IE5和IE5.5中亂

成一團,一直聽說IE5是WEB標準制作的一個“釘子戶”,現(xiàn)在不得不相信了。

既然有問題,那就找找解決的方法咯,在網(wǎng)上一搜,相關(guān)的文章還是不少的,覺得最直接的方法還是“IE

條件注釋”,很方便的就能為IE的不

同版本寫樣式。但這樣就得為每個版本寫一個樣式,不利于文件的優(yōu)化。

找了一些相關(guān)的CSS HACK后,覺得應(yīng)該可以把IE5/IE5.5/IE6/FF的HACK寫到一起的,經(jīng)過測試,終于找到

了一個不錯的方法,下面我們來看看

怎么實現(xiàn):

大家都知道用!important聲明可以提升指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán),如下面的例子:

E1{

background-color: red !important;

background-color: blue;

}

但這樣寫在IE中會有個問題,看過我的《關(guān)于CSS樣式表優(yōu)先級》和《關(guān)于CSS樣式表優(yōu)先級補遺》,你會

知道在IE6和FF中用! important聲明

可以提高優(yōu)先級別,但在IE6中的!important聲明并不是絕對的,它會被之后的同名屬性定義所替換。也

就是說在上面的例子中,IE6所應(yīng)用的

是最后一個背景色的值,即“blue”;而在FF中背景色的值為“red”。根據(jù)這一點,我們就可以把FF和

IE的樣式分離開。

OK ,解決了FF和IE的問題,現(xiàn)在來解決IE自己的問題。

看過了嘟嘟的《繞過IE6支持IE5的別一種寫法-IE也支持"&gt;"》后有感而發(fā),使用“>”IE是否真的可

以認得?我們來看個例子:

E1{

background-color: red;

>background-color: blue;

}

在FF中得到的是背景色紅色,而在IE中得到的背景色是藍色,根據(jù)樣式重定義的規(guī)則,如果瀏覽器可以識

別“>”,則應(yīng)該得到的藍色的背景

,因此可以知道“>”只有IE可以識別,這點是很重要的哦!在后面大家就會知道了。(注:我測試過其

它的一些符號,如“~”、“`”、“

<”等,都只有IE可以識別,在此為了感謝嘟嘟,推薦使用“>”)

我們再來看個例子:

E1{

>background-color: black;

>background-color : green;

}

這個例子在IE6中得到了黑色的背景;而在IE5.5中得到的綠色的背景;在IE5中也得到了黑色的背景。這

就說明了第二句定義只有IE5.5能識別

,這是個很早就公布的HACK,可以在網(wǎng)上找到相關(guān)的資料,要注意的就是在屬性名之后是有一個空格的。

到此我們已經(jīng)把FF、IE5.5、IE6分離

出來了,那IE5呢?其實現(xiàn)在我們只要把IE5跟IE6分開就OK了,來看看例子:

E1{

>background-color: red;

}

E1{

>background-color: black;

}

這里我們又用到一個HACK,就是“E1{}”,這個定義在IE5以上的版本才能識別出來。這個例子得到

的結(jié)果是,在IE5中的背景色為紅色;

在IE5以上版本中得到的是黑色背景。

終于把不同版本的瀏覽器都分離出來了,這樣我們就可以為不同的瀏覽器定義不同的樣式了。來看個完整

的例子:

E1{

width: 500px;

height: 50px;

background-color: red !important;

background-color: blue;

text-align:center;

}

E1{

>background-color: black;

>background-color : green;

}

需要注意的是,在上面例子中“background-color”定義的順利不能改變,即FF-IE5-IE6-IE5.5。對于IE

的定義在屬性前要加“>”,因為

“E1{}”這個HACK在FF中可以識別。也許你會想,上面的例子不是可以寫成:

E1{

width: 500px;

height: 50px;

background-color: red;

>background-color: blue;

text-align:center;

}

E1{

>background-color: black;

>background-color : green;

}

這樣不就又可以省下幾個字節(jié)?是沒錯,可是HACK不是標準,如果濫用HACK,那只會離標準越來越遠!


div+css實現(xiàn)Firefox和IE6兼容的垂直居中

Firefox中使用display: table-cell; vertical-align: middle;可以實現(xiàn)div垂直居中,而IE6中則需要

借助IE6中css的特點實現(xiàn)垂直居中。為

了實現(xiàn)Firefox和IE6兼容的垂直居中,還需要借助于!important標記。Firefox支持!important標記,而

IE6忽略!important標記,因此可以使

用! important標記區(qū)別Firefox和IE6。

[示例代碼]
<html>
<body>
<div style="display: table-cell; vertical-align: middle; height: 200px; border: 1px

solid red;">
<p>垂直居中,F(xiàn)irefox only</p>
<p>垂直居中,F(xiàn)irefox only</p>
<p>垂直居中,F(xiàn)irefox only</p>
</div>
<div style="border: 1px solid red; height: 200px; position: relative;">
<div style="position: absolute; top: 50%;">
<div style="position: relative; top: -50%;">
<p>垂直居中,IE6 only</p>
<p>垂直居中,IE6 only</p>
<p>垂直居中,IE6 only</p>
</div>
</div>
</div>
<div style="border: 1px solid red; height: 200px; position: relative; display:

table-cell; vertical-align: middle;">
<div style="position: static !important; position: absolute; top: 50%;">
<div style="position: relative; top: -50%;">
<p>垂直居中,F(xiàn)irefox IE6 only</p>
<p>垂直居中,F(xiàn)irefox IE6 only</p>
<p>垂直居中,F(xiàn)irefox IE6 only</p>
</div>
</div>
</div>
</body>
</html>


div+css的瀏覽器兼容問題
水平居中,F(xiàn)irefox使用margin-left: auto; margin-right: auto; IE6 使用text-align: center;
垂直居中,F(xiàn)irefox中使用display: table-cell; vertical-align: middle;可以實現(xiàn)div垂直居中,而

IE6中則需要借助IE6中css的特點實現(xiàn)垂

直居中。
!important標記,F(xiàn)irefox支持!important標記,IE6忽略!important標記

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 明星| 文山县| 乌审旗| 九台市| 上思县| 郁南县| 乌拉特后旗| 延寿县| 辉县市| 通江县| 新泰市| 盐津县| 罗城| 交口县| 祁阳县| 汕头市| 金华市| 漳平市| 四川省| 凤山市| 宜兴市| 左权县| 类乌齐县| 巴林左旗| 宾川县| 武义县| 赣州市| 丹凤县| 虎林市| 红原县| 桓台县| 九龙坡区| 山东| 静海县| 灯塔市| 江源县| 金堂县| 哈密市| 阳谷县| 开江县| 轮台县|