網(wǎng)頁前端 - select的最佳預(yù)設(shè)(reset)
我們知道select標(biāo)簽在各個瀏覽器中的屬性和各瀏覽器的支持各有些不同,從而造成select選擇框在各瀏覽器的顯示有不同,下面我們通過對主要 外形CSS屬性的支持,打造全兼容select。
我對select的height、padding、line-height分別利用控制變量的方法寫了個DEMO在各瀏覽器上測試三種情況:height.100.padding.0、height.no.padding.100、no.height.no.padding,結(jié)果如 鏈接圖片各瀏覽器DEMO外觀
我們可以得出以下研究屬性。
ie6 |
ie7 |
ie8 |
ie9 |
ff |
ch |
sf |
op |
|
默認(rèn)高度 |
22px |
22px |
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是無論如何設(shè)置都是固定高度為22px不變的,而其他瀏覽器除safari都是支持height屬性的,那么我們設(shè)置 height:22px。那么現(xiàn)在我們修正一下safari瀏覽器,,我們發(fā)現(xiàn)僅有safari支持line-height屬性那么正好可以利用line-height修正其高度為22px,在font-size為12px的前提下設(shè)置 line-height:22px,最后FF和IE9里面的文字不居中,對其設(shè)定 padding:2px 0,我們發(fā)現(xiàn)FF和IE9都居中了,但是各個瀏覽器的select的高度也并沒有增加,那么這里有點疑問,在高度設(shè)定的情況下,小量數(shù)字的padding不增加整體高度?
下面是全兼容代碼示例。
<!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>demo</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>
作者:LYuShine_宇軒
本文地址:http://m.pkvc.cn/tutorial/wd1516.html