濮阳杆衣贸易有限公司

主頁 > 知識庫 > CSS標準:vertical-align屬性

CSS標準:vertical-align屬性

熱門標簽:地圖標注沿海城市房價 通遼地圖標注app 高德地圖標注廁所 中國地圖標注城市的 西安金倫外呼系統(tǒng) 江西ai電銷機器人如何 地圖標注員工作內容 威海語音外呼系統(tǒng)平臺 智能語音電銷機器人客戶端

原文:http://www.mikkolee.com/13
最近幾天仔細研究了一下vertical-align這個屬性,結果讓我大吃一驚,這個很“資深”的CSS標準竟然在各個瀏覽器里面的表現(xiàn)都各不相同。
vertical-align的值有點多,包括 baseline sub supper top text-top bottom text-bottom middle以及各種長度值(%,em,ex等等)。我先給大家看一個我覺得最夸張的值:bottom。代碼如下:
p {
font-size: 18px;
line-height: 36px;
font-family: Tahoma, sans-serif;
}
img {
vertical-align: bottom ;
}

然后大家看一看這段CSS在各個瀏覽器中的效果(圖片是我故意做成那個樣子,為了可以看清楚相對位置):





呃,這個結果其實很讓人匪夷所思,一般我會認為Firefox會比IE解釋得更正確,但是看過Opera之后發(fā)現(xiàn)它和IE是一樣的,而Safari/Win是站在Firefox那邊。說實話,我不知道這是怎么回事。
仔細學習了《CSS權威指南(第二版)》,甚至還去查閱了 W3C ,然后自己做出一個關于vertical-align的圖:

按照W3C的定義,當內聯(lián)元素的vertical-align設置為: baseline, top, bottom的時候,都是該元素的baseline(或middle, top, bottom)對其周圍元素的相同位置,如圖片的top和周圍文字的top對齊。 text-top和text-bottom的時候,是該元素的top(或bottom)對齊周圍元素的text-top(或text-bottom)。 長度(%, em, ex)的時候,是基于baseline往上移動,所以正數(shù)往上,負數(shù)往下。 middle的時候,是該元素的中心對齊周圍元素的中心。這里“中心”的定義是:圖片當然就是height的一半的位置,而文字應該是基于baseline往上移動0.5ex,亦即 小寫字母“x”的正中心 。但是很多瀏覽器往往把ex這個單位定義為0.5em,以至于其實不一定是x的正中心(以上圖為例,x的高度應該是10px,而em是18px,所以兩個值不一樣)。
但是,即使是按照上面的準則,各個瀏覽器的解釋如此迥異也讓我匪夷所思。我也懶得去研究為什么是這樣子。總的來說呢,應該就是它們對字體的每一條線的位置的定義都不大一樣,所以這個問題不單跟vertical-align有關,而跟瀏覽器對內聯(lián)文本和內聯(lián)圖片的結構的解釋有很大關系。
最后給大家一個測試頁面,可以方面的看看各個瀏覽器對vertical-align不同值的解釋結果。
http://www.mikkolee.com/weblab/001_vertical/
大家可以測試一下其他的值,比如middle或是text-top,也是各個瀏覽器完全不一樣。有什么心得大家來討論一下吧~~

標簽:青海 晉中 河池 眉山 阜陽 營口 崇左 北海

巨人網絡通訊聲明:本文標題《CSS標準:vertical-align屬性》,本文關鍵詞  CSS,標準,vertical-align,屬性,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《CSS標準:vertical-align屬性》相關的同類信息!
  • 本頁收集關于CSS標準:vertical-align屬性的相關信息資訊供網民參考!
  • 推薦文章
    山丹县| 临泉县| 化隆| 永登县| 泾源县| 镇雄县| 大荔县| 洛宁县| 赞皇县| 曲松县| 浦江县| 东乡| 海阳市| 通州市| 罗平县| 公安县| 萍乡市| 朝阳市| 武威市| 蒙城县| 军事| 安吉县| 汕尾市| 九龙坡区| 拉萨市| 巴马| 仪陇县| 松阳县| 克什克腾旗| 盱眙县| 满城县| 石柱| 宁都县| 库尔勒市| 邛崃市| 绵阳市| 华亭县| 池州市| 安阳市| 会昌县| 永川市|