div+css 兼容小摘
來源:易賢網(wǎng) 閱讀:703 次 日期:2014-12-22 14:57:57
溫馨提示:易賢網(wǎng)小編為您整理了“div+css 兼容小摘”,方便廣大網(wǎng)友查閱!

區(qū)別ie6與ff:

background:orange;*background:blue;

區(qū)別ie6與ie7:

background:green !important;background:blue;

區(qū)別ie7與ff:

background:orange; *background:green;

區(qū)別ff,ie7,ie6:

background:orange;*background:green !important;*background:blue;

ie7,ie8兼容:

<meta http-equiv=x-ua-compatible content=ie=emulateie7 />

head

1. css中幾種瀏覽器對不同關(guān)鍵字的支持,可進行瀏覽器兼容性重復(fù)定義

!important 可被firefox和ie7識別

* 可被ie6、ie7識別

_ 可被ie6識別

*+ 可被ie7識別

2. ie專用的條件注釋

<!--其他瀏覽器 -->

<link rel=stylesheet type=text/css href=css.css />

<!--[if ie 7]>

<!-- 適合于ie7 -->

<link rel=stylesheet type=text/css href=ie7.css />

<![endif]-->

<!--[if lte ie 6]>

<!-- 適合于ie6及一下 -->

<link rel=stylesheet type=text/css href=ie.css />

<![endif]-->

3. 幾個瀏覽器對實際像素的解釋

ie/opera:對象的實際寬度 = (margin-left) + width + (margin-right)

firefox/mozilla:對象的實際寬度= (margin-left) + (border-left-width) + (padding- left) + width + (padding-right) + (border-right-width) + (margin-right)

4. 鼠標(biāo)手勢問題:firefox的cursor屬性不支持hand,但是支持pointer,ie兩個都支持;所以為了兼容都用pointer

5. firefox中設(shè)置html標(biāo)簽的style屬性時,所有位置、寬高和尺寸值必須后跟px,ie也支持此寫法,因此統(tǒng)一加px單位。如 obj.style.height = imgobj.style.height + ‘px';

6. firefox無法解析簡寫的padding屬性設(shè)置,如padding 5px 4px 3px 1px;必須改為 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px0;

7. 消除ul、ol等列表的縮進時,樣式應(yīng)寫成:list-style:none;margin:0px;padding:0px;其中margin屬性對ie有效,padding屬性對firefox有效

8. css控制透明:ie:filter:progid:dximagetransform.microsoft.alpha(style=0,opacity=60); firefox:opacity:0.6;

9. css控制圓角:ie:不支持圓角;

firefox: -moz-border-radius:4px;或

-moz-border-radius-topleft:4px;

-moz-border-radius-topright:4px;

-moz-border-radius-bottomleft:4px;

-moz-border-radius- bottomright:4px;

10. css雙線凹凸邊框:ie:border:2px outset;

firefox:

-moz-border-top-colors: #d4d0c8 white;

-moz-border-left-colors: #d4d0c8 white;

-moz-border-right-colors:#404040 #808080;

-moz-border-bottom-colors:#404040 #808080;

11. ie支持css方法cursor:url()自定義光標(biāo)樣式文件和滾動條顏色風(fēng)格;firefox對以上兩者均不支持

12. ie有select控件永遠處于最上層的bug,且所有css對select控件都不起作用

13. ie支持form中的label標(biāo)簽,包括圖片和文字內(nèi)容;firefox不支持包含圖片的label,點擊圖片不能讓標(biāo)記 label for 的radio或checkbox產(chǎn)生效果

14. firefox中的textarea不支持onscroll事件

15. firefox不支持display的inline和block

16. firefox對div設(shè)置margin-left, margin-right為auto時已經(jīng)居中, ie中不行

17. firefox對body設(shè)置text-align時, div需要設(shè)置margin: auto(主要是margin-left margin-right) 方可居中

18. 對超鏈接的css樣式設(shè)置最好遵從這樣的順序:l-v-h-a。即

<style type=text/css>

<!--

a:link {}

a:visited {}

a:hover {}

a:active {}

-->

</style>

這樣可以避免一些訪問過后的超鏈接就不具備hover和active樣式了

19. ie中設(shè)置長段落自動換行在css中設(shè)置word-wrap:break-word;firefox中使用js插入 的方法來實現(xiàn),具體代碼如下:

<script type=text/javascript>

/* <![cdata[ */

function tobreakword(el, intlen){

var obj=document.getelementbyid(el);

var strcontent=obj.innerhtml;

var strtemp=;

while(strcontent.length>intlen){

strtemp+=strcontent.substr(0,intlen)+ ;

strcontent=strcontent.substr(intlen,strcontent.length);

}

strtemp+= +strcontent;

obj.innerhtml=strtemp;

}

if(document.getelementbyid && !document.all) tobreakword(div_id, 37);

/* ]]> */

</script>

20. 在子容器加了浮動屬性后,該容器將不能自動撐開

解決方法:在標(biāo)簽結(jié)束后下一個標(biāo)簽中加上一個清除浮動的css clear:both;

21. 浮動后ie6解釋外邊距為實際邊距的雙倍

解決辦法:加上display:inline

22. ie6下圖片下方會有空隙

解決辦法:為img加上display:block或設(shè)置vertical-align 屬性為vertical-align:top | bottom |middle |text-bottom

23. ie6下兩個層中間有空隙

解決辦法:設(shè)置右側(cè)div也同樣浮動float:left或者相對ie6定義 margin-right:-3px;

24. li中內(nèi)容超過長度后以省略號的顯示方法

<style type=text/css>

<!--

li {

width:200px;

white-space:nowrap;

text-overflow:ellipsis;

-o-text-overflow:ellipsis;

overflow: hidden;

}

-->

</style>

25. 將元素的高度和行高設(shè)為相同值,即可垂直居中文本

<style type=text/css>

<!--

div {

height:30px;

line-height:30px;

}

-->

</style>

26. 對齊文本與文本輸入框,須在css中增加vertical-align:middle;屬性設(shè)置

<style type=text/css>

<!--

… …

vertical-align:middle;

}

-->

</style>

27. 支持web標(biāo)準(zhǔn)的瀏覽器設(shè)置了固定高度值就不會像ie6那樣被撐開,但是又想設(shè)置固定高度又想能夠被撐開呢?解決辦法是去掉height屬性而設(shè)置min-height,為了兼容不支持min-height的ie6可以這樣定義:

{

height:auto!important;

height:200px;

min-height:200px;

}

28. web標(biāo)準(zhǔn)中ie無法設(shè)置滾動條顏色

解決辦法:在css中對body的設(shè)置改為對html的

<style type=text/css>

<!--

html {

scrollbar-face-color:#f6f6f6;

scrollbar-highlight-color:#fff;

scrollbar-shadow-color:#eeeeee;

scrollbar-3dlight-color:#eeeeee;

scrollbar-arrow-color:#000;

scrollbar-track-color:#fff;

scrollbar-darkshadow-color:#fff;

}

-->

</style>

29. ie6由于默認(rèn)行高問題無法定義1px左右高度的容器,

解決辦法:在css中對容器設(shè)置如:overflow:hidden | zoom:0.08 | line-height:1px

30. 給flash設(shè)置透明屬性可使層顯示在flash之上

<param name=wmode value=transparent /> <!-- 解決ie上的問題 //>

<embed wmode=transparent …… > <!-- 解決firefox上的問題 //>

31. firefox設(shè)置padding屬性后會相應(yīng)的增加width和height屬性值,ie不會

解決辦法:用!important方法多定義一套height和width

32. firefox對div與div之間的空格是忽略的,但ie是處理的;因此盡量在兩個相連的div之間不要有空格和回車,否則可能會造成不同瀏覽器之間格式不正確,比如著名的3px偏差;而且原因很難查明

33. 形如如下格式

<div id=parent>

<div id=content> </div>

</div>

當(dāng)content內(nèi)容多時,即使parent設(shè)置了高度100%或auto,在不同瀏覽器下還是不能完好的自動伸展;解決辦法在層的最下方產(chǎn)生一個高度為1的空格,代碼如下

<div id=parent>

<div id=content> </div>

<div style=font: 0px/0px sans-serif;clear: both;display: block> </div>

</div>

34. ie和firefox對字體small的尺寸解釋不同,firefox為13px,ie中為16px

35. ie和firefox對空格的尺寸解釋不同,firefox為4px,ie中為8px

首先,關(guān)于css hack的方法網(wǎng)上有很多介紹,種類繁多,初學(xué)者常常感到很困惑。這類的css hack的方法,有的是針對某一個非常特殊的情況的方法,有的則是相對于比較通用的一些方法。

對于后者我們在平常的學(xué)習(xí)工作中,可以多留心收集一些,前者則不需要太關(guān)注,只是遇到的時候到網(wǎng)上搜索一下,尋找解決方法即可。

這里舉一個比較通用的hack方法,比如對于css中的某一個屬性,我們希望針對不同的瀏覽器,設(shè)置不同的值。例如,某一個div,我們希望在firefox中寬度為50像素,在ie中寬度為60像素。那么怎么實現(xiàn)呢?請看如下代碼:

#demo div{

width:50px; /* firefox 有效 */

+width:60px; /* ie 有效 */

}

在上面的代碼中, 第2行的width:50px這是普通的樣式,下一行中,在width屬性前面加一個加號,這條樣式在firefox中被認(rèn)為無效,但是在ie中這個加號 會被忽略掉,因此仍然被理解為width屬性,從而覆蓋上一條的設(shè)置,這樣就可以區(qū)分firefox瀏覽器和ie瀏覽器了。

那么如果希望進一步區(qū)分ie 6和ie 7呢?請看如下代碼:

#demo div{

width:50px; /* firefox 有效 */

+width:60px; /* ie 7 有效 */

_width:70px; /* ie 6 有效 */

}

上面代碼就可以實現(xiàn)對三種瀏覽器的區(qū)分了。在ie7中,屬性前加一個加號,這個加號會被忽略,而如果在屬性前加一個下劃線這整條樣式會被忽略,從而實現(xiàn)了對這三種主流瀏覽器的區(qū)分。

到這里,我們自然會想到,什么情況下會用的這種方法來區(qū)分瀏覽器呢?我們要制作的頁面,通常會有兩種情況,一種是徹底從頭開始做,另一種是基于一個已經(jīng)存在的網(wǎng)頁進行修改或者修補。

對于第一種情況來說,我們對網(wǎng)頁的每一個細節(jié)都十分清楚,因此并不經(jīng)常遇到非常firefox和ie的兼容性問題,即使遇到了,一般也可以找到其他 方法解決。而對于第二種情況來說,則復(fù)雜的多了,因為一個網(wǎng)頁可能非常復(fù)雜,層疊關(guān)系也很復(fù)雜,對于后接手的人,很難搞清楚某一個的屬性上面有多少層設(shè)置 會對他產(chǎn)生影響,因此往往只能采用“貼膏藥”的方式進行修補。

比如說,如下的一個頁面的最終效果,在制作圓角框的時候,在ie中,圓角對整齊之后,在firefox中卻出現(xiàn)如圖所示的錯位,而如果按照firefox調(diào)整好,在ie中又會出現(xiàn)錯位。

而頁面的內(nèi)容層層嵌套,在并不知道細節(jié)的情況下,很難找到問題的根源。因此這里使用修補的方法就很方便(盡管不是最優(yōu)雅完善的方法),例如對于控制圓角圖像位置的屬性使用上面的方法,分別控制即可。

總上所述,對任何屬性都可以使用加號或者下劃線方法,來實現(xiàn)針對不同瀏覽器的各自設(shè)置。當(dāng)然,最后還是要指出,任何hack方法都要慎重使用,最好還是能夠按照標(biāo)準(zhǔn)、優(yōu)雅的css來進行設(shè)計,這樣的代碼可讀性、維護性都要好很多,也是我們追求的目標(biāo)。

為什么div+css在ie6沒問題,在firfox有問題,嚴(yán)重走樣,什么原因,謝謝

ie和ff的比較大的區(qū)別是1。在1024的分辨率下 ie最多顯示1002px ff顯示1005px2。ie容錯性超級強 也就是說 你代碼寫錯了 少寫了 也有可能顯示正確 ff就不行~~~`一般新手常常出現(xiàn)的問題:沒有清除浮動~~~~.clear{ clear:both; height:1px; top:-1px; overflow:hidden}在每一個浮動后面都加上一個<div class=clear><div>

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:div+css 兼容小摘
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)