飛魚的聲納頂部的搜索框讓我頭疼了很長時(shí)間,原因是總不能獲得跨瀏覽器的統(tǒng)一樣式。主要的問題有這么兩個:一是input標(biāo)簽的高度不能統(tǒng)一,F(xiàn)irefox和IE中的高度始終不能一致;二是在IE瀏覽器中屬性為text的input標(biāo)簽中的輸入文字不像標(biāo)準(zhǔn)瀏覽器中的那樣垂直居中顯示,而是靠輸入框的左上角顯示。
為了徹底解決搜索框的這些問題,我以GreenGaint主題搜索框的樣式為準(zhǔn),重寫了一遍代碼并且以像素為單位測量了一下在沒有任何樣式表的情況下<input>標(biāo)簽在默認(rèn)瀏覽器中的實(shí)際差別。
結(jié)果發(fā)現(xiàn):input標(biāo)簽在type為text時(shí),在Firefox和Safari中的默認(rèn)高度為22像素(包括上下邊框)寬度為146像素(包括左右邊框),而在IE中的默認(rèn)高度為24像素,而寬度卻和Firefox和Safari是一致的,也是146像素。當(dāng) input標(biāo)簽在type為submit時(shí),在Firefox中的高度為23像素(包括陰影),寬度為75像素。在Safari中高度為21像素,寬度為73像素,在IE中高度為為25像素、寬度為73像素。
那么在樣式化input標(biāo)簽時(shí)又該注意哪些問題呢?先來看下面經(jīng)過樣式化后,在不同瀏覽器中都有著良好表現(xiàn)的搜索框。
總結(jié)一下,在給input標(biāo)簽寫CSS時(shí)需要注意的有以下幾點(diǎn):
一、不要給屬性為text的input標(biāo)簽設(shè)置高度,這樣無法讓IE瀏覽器下輸入框中的文字垂直居中顯示。盡管你后來想要通過設(shè)置padding屬性來讓文字居中,你會發(fā)現(xiàn)根本沒法讓它在Firefox和IE中取得一致的效果。正確的做法是直接給input標(biāo)簽設(shè)置padding屬性,通過內(nèi)邊距屬性來調(diào)節(jié)input標(biāo)簽的高度,而且這時(shí)IE中的文字也是居中顯示的。
二、input標(biāo)簽不會繼承父元素的字體樣式和大小,需要直接給input標(biāo)簽聲明font-family和font-size屬性。
三、給屬性為text的input標(biāo)簽設(shè)置合適的width屬性和padding屬性,確保其中的文字在合適的范圍內(nèi)出現(xiàn)。尤其是使用了背景圖片后,要讓文字框的大小和背景圖片的大小相當(dāng),這樣看上去更加美觀。
新聞熱點(diǎn)
疑難解答
圖片精選