欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

css 垂直對齊 css中vertical-align屬性(垂直對齊)的使用說明

  發(fā)布時間:2013-01-09 08:50:12   作者:佚名   我要評論
這兩天寫個頁面css的時候用到了vertical-align屬性,使用過程中踩到了坑,因此整理了一些,以備不時之需,感興趣的朋友可以了解下哦

這兩天寫個頁面css的時候用到了vertical-align屬性,使用過程中踩到了坑,所以總結(jié)如下:
1.vertical-align的語法
vertical-align屬性的具體定義列表如下:
語法: vertical-align : baseline | sub | super | top | text- top | middle | bottom | text-bottom | <百分比> | <長度> | inherit
說明: 設(shè)置元素內(nèi)容的垂直對齊方式
值: baseline:基線對齊;sub:下標(biāo);super:上標(biāo);top:頂端對齊;text-top:與文本的頂端對齊;middle:中部對齊;bottom:底端對齊;
text-bottom:文本的底端對齊;
百分比和長度:CSS2,可為負(fù)數(shù)。
初始值: baseline
繼承性: 不繼承
適用于: 行內(nèi)元素和單元格(table-cell)元素
媒體: 視覺
計算值: 百分比和長度值為絕對長度;其他同指定值
特別提醒:vertical-align只對行內(nèi)元素有效,對塊級元素?zé)o效。
關(guān)于使用的詳細(xì)介紹可以參考逍遙嘆的《垂直對齊:vertical-align屬性(轉(zhuǎn))》。
2.關(guān)于vertical-align:middle的問題
middle的時候,是該元素的中心對齊周圍元素的中心。這里“中心”的定義是:圖片當(dāng)然就是height的一半的位置,而文字應(yīng)該是基于baseline往上移動0.5ex。但是很多瀏覽器往往把ex這個單位定義為0.5em,以至于其實不一定是文字的正中心。
所以在使用middle的時候要特別注意,要在不同瀏覽器中調(diào)試。
3.我遇到的問題 
頁面局部html代碼: 

復(fù)制代碼
代碼如下:

<ul class="gclearfix">
<li>
<em class="num top">1</em>
<a href="#">我這段長長的文字只是來測試行內(nèi)高度的的的的的的的的的的。。。。。。。。。。。。。</a>
<a class="detail" href="#"></a>
</li>
</ul>

相關(guān)樣式表css代碼

復(fù)制代碼
代碼如下:

#hot-sou ul li{overflow: hidden;padding: 2px 0 3px;vertical-align: middle;}
#hot-sou ul li .num{width: 15px;height: 15px;margin-top: 3px;background-color: #CCC;line-height: 15px;text-align: center;color: #FFF;display:inline-block;}
#hot-sou ul li .top{background-color: #F6872C;}
#hot-sou ul li a{width: 192px;display: inline-block;margin-left: 5px;overflow:hidden;height:18px;white-space:nowrap;}
#hot-sou ul li .detail{width: 17px;height: 17px;line-height: 17px;background:url(http://p0.qhimg.com/t01a607b2b834b26673.gif) no-repeat;margin-left:10px;margin-top:2px;}

注意上圖中的代碼我在li中使用了vertical-align:middle;li是塊級元素。
(by guorui-20120920)
根據(jù)上面的介紹我們可以推斷這樣使用是不正確的,vertical-align不繼承,所以li中a的vertical-align都按照瀏覽器的默認(rèn)來取值。因此表現(xiàn)也會有差異。
chrome下的表現(xiàn):

      

  IE9下的表現(xiàn):                                         IE7下的表現(xiàn):            

    

  IE6下的表現(xiàn):

  

 
從上面的圖中可以看出,li中的vertical-align:middle(它本身就沒有這個屬性);并沒有“遺傳”給它里面的em和a(em和a被瀏覽器“潛規(guī)則”了)。
解決的辦法是把vertical-align:middle;正確的寫入到li中的em和a里面。

復(fù)制代碼
代碼如下:

#hot-sou ul li{overflow: hidden;padding: 2px 0 3px;}
#hot-sou ul li .num{width: 15px;height: 15px;margin-top: 3px;background-color: #CCC;line-height: 15px;text-align: center;color: #FFF;display:inline-block;vertical-align: middle;}
#hot-sou ul li .top{background-color: #F6872C;}
#hot-sou ul li a{width: 192px;display: inline-block;margin-left: 5px;overflow:hidden;height:18px;white-space:nowrap;vertical-align: middle;}
#hot-sou ul li .detail{width: 17px;height: 17px;line-height: 17px;background:url(http://p0.qhimg.com/t01a607b2b834b26673.gif) no-repeat;margin-left:10px;margin-top:2px;}
#hot-sou ul li .detail:hover{background-position:0 -30px;}
 
更新代碼后。。。
chrome下的表現(xiàn)

  

  IE9下的表現(xiàn):              IE7下的表現(xiàn):

  

  IE6下的表現(xiàn):

  

 
通過上面的比較發(fā)現(xiàn),還是沒有對齊,但是這是代碼中的邊距、行高等影響了我們,現(xiàn)在我們把他們統(tǒng)一起來。

復(fù)制代碼
代碼如下:

#hot-sou ul li{overflow: hidden;padding: 2px 0 3px;}
#hot-sou ul li .num{width: 15px;height: 15px;background-color: #CCC;line-height: 15px;text-align: center;color: #FFF;display:inline-block;vertical-align: middle;}
#hot-sou ul li .top{background-color: #F6872C;}
#hot-sou ul li a{width: 192px;display: inline-block;margin-left: 5px;overflow:hidden;height:15px;line-height:15px;white-space:nowrap;vertical-align: middle;}
#hot-sou ul li .detail{width: 15px;height: 15px;line-height: 15px;background:url(http://p0.qhimg.com/t01a607b2b834b26673.gif) no-repeat;margin-left:10px;}
#hot-sou ul li .detail:hover{background-position:0 -30px;}

更新代碼后。。。
chrome下的表現(xiàn):IE9下的表現(xiàn)
 

  IE7下的表現(xiàn):              IE6下的表現(xiàn):

  


通過上面的比較,我們發(fā)現(xiàn)這樣統(tǒng)一設(shè)置行高后,li中子元素的基線一致了,垂直居中也就獲得了比較滿意的結(jié)果。
總結(jié):這次遇到的問題主要是vertical-align正確使用的問題,通過研究了解到如何規(guī)范使用,特別是有些屬性在塊級元素和行內(nèi)元素使用上的差別。同時不同瀏覽器對于屬性默認(rèn)值的解析也是測試時需要注意的問題。如果開發(fā)中使用的是height與line-height相同的取值,會大大減少不同瀏覽器出現(xiàn)差別的情況,所以這也是開發(fā)中需要注意的地方。

相關(guān)文章

  • 深入理解CSS中的vertical-align屬性和基線問題

    這篇文章主要介紹了深入理解CSS中的vertical-align屬性和基線問題,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考
    2020-04-03
  • CSS屬性探秘系列(四):vertical-align

    本文向大家介紹一下CSS vertical-align 屬性的用法,該屬性定義行內(nèi)元素的基線相對于該元素所在行的基線的垂直對齊。
    2014-10-22
  • css中圖片于文本的基線對齊與vertical-align屬性設(shè)置

    默認(rèn)的情況是圖片頂對齊而文字底對齊,通過設(shè)置css屬性可以使得圖片與文字對齊,接下來為大家詳細(xì)介紹下設(shè)置各對象的vertical-align屬性,感興趣的朋友可以參考下哈
    2013-04-02
  • CSS實例:vertical-align屬性讓網(wǎng)頁層居中

    網(wǎng)頁制作Webjx文章簡介:CSS實例:vertical-align屬性讓網(wǎng)頁層居中. vertical-align屬性使網(wǎng)頁層居中 網(wǎng)頁源代碼如下: <html> <
    2009-04-02
  • css vertical-align屬性詳細(xì)圖解分析

    vertical-align屬性詳細(xì)分析 最近幾天仔細(xì)研究了一下vertical-align這個屬性,結(jié)果讓我大吃一驚,這個很“資深”的CSS標(biāo)準(zhǔn)竟然在各個瀏覽器里面的表現(xiàn)都各不相同
    2009-02-10
  • 一文搞懂CSS中的vertical-align屬性

    CSS中的vertical-align用于設(shè)置行內(nèi)塊或者行內(nèi)元素行內(nèi)元素的對齊方式,使用過程中的坑很多,本文就詳細(xì)的介紹一下vertical-align屬性的具體使用方法,感興趣的可以了解一
    2023-05-11

最新評論