select在各個瀏覽器中的兼容性問題


們知道select標簽在各個瀏覽器中的屬性和各瀏覽器的支持各有些不同,從而造成select選擇框在各瀏覽器的顯示有不同,下面我們通過對主要CSS屬性的支持,打造全兼容select。
對select的height、padding、line-height分別利用控制變量的方法寫了個DEMO在各瀏覽器上測試三種情 況:height.100.padding.0、height.no.padding.100、no.height.no.padding,結果如下圖片所示:
select在各個瀏覽器中的兼容性問題
我們可以得出以下研究屬性。

  IE6 IE7 IE8 IE9 Firefox Chrome Safari Opera
默認高度 22px 22px 20px 19px 19px 20px 19px 19px
height F T T T T T F T
padding F F T T T T F T
line-height F F F F F F T F
文字垂直居中 T T T F F T T T


通過上述的研究成果屬性匯總,我們知道IE6是無論如何設置都是固定高度為22px不變的,而其他瀏覽器除safari都是支持height屬性的,那么我們設置 height:22px。那么現在我們修正一下safari瀏覽器,我們發現僅有safari支持line-height屬性,那么正好可以利用line-height修正其高度為22px,在font-size為12px的前提下設置line-height:18px,這樣在safari中select選擇框的高度也是22px。最后FF和IE9里面的文字不居中,對其設定 padding:2px 0,我們發現FF和IE9都居中了,但是各個瀏覽器的select的高度也並沒有增加,那么這里有點疑問,在高度設定的情況下,小量數字的padding不增加整體高度?這樣設置后,這幾個瀏覽器中select的高度都是22px了。

下面是全兼容代碼示例。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style>
<!--
*{padding:0; margin:0}
body{font-size:12px}
select{height:22px; line-height:18px; padding:2px 0}
-->
</style>
</head>
<body>
<div style="margin-top:20px; margin-left:20px; background:#000">
<select>
    <option>演示問題一</option>
    <option>演示問題二</option>
    <option>演示問題三</option>
    <option>演示問題四</option>
    <option>演示問題五</option>
</select>
</div>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM