2012-04-10 76 views
1

請幫忙,HTML5和CSS 3 - Div文本垂直對齊中間

我想對齊頁眉菜單/導航鏈接以垂直對齊。請參閱:

http://hyindia.com/demo/myoffshore/index.html

在這裏看到的代碼:

nav ul { list-style-type:none; padding:0px; margin:0px; float:left; width:100%;} 
nav ul li { float:left; width:119px; height:66px;} 
nav ul li a { 
float:left; 
width:119px; 
height:66px; 
font:bold 15px 'Myriad Pro'; 
color:#fff; 
text-shadow:1px 1px #1f1f1f; 
text-align:center; 
} 

<nav> 
<ul> 
    <li><a href="#" class="nav1">HOME</a></li> 
    <li><a href="#" class="nav2">HEALTH INSURANCE</a></li> 
    <li><a href="#" class="nav3">LIFE INSURANCE</a></li> 
    <li><a href="#" class="nav4">OVERSEAS MORTGAGES</a></li> 
    <li><a href="#" class="nav5">ESTATE PLANNING</a></li> 
    <li><a href="#" class="nav6">BANKING</a></li> 
    <li><a href="#" class="nav7">WEALTH MANAGEMENT</a></li> 
    <li><a href="#" class="nav8">QROPS</a></li> 
</ul> 

+1

這是相當模糊的,哪一個是你在說什麼?一個已經對齊了......:/ – 2012-04-10 12:00:17

+0

@Sonu,Tom是正確的,有一個已經垂直排列。 – freebird 2012-04-10 12:02:17

+0

對不起,我忘了添加中間這個詞。我想頂級菜單/導航(多彩)鏈接垂直中間對齊! – sunny 2012-04-10 12:08:10

回答

1

由於一些你的資產淨值的項目你將無法使用經典文本線 - 跨越幾行高度技巧(這將設置線高度等於高度)。

相反,我建議改變你的菜單樣式使用display: table/table-row/table-cell,因爲表格在垂直對齊中間的東西方面很出色。

你需要做的是你的整個nav造型改成這樣:

nav { 
    display: table; 
    width: 100%; 
} 

    nav ul { 
     display: table-row; 
     list-style: none; 
     padding: 0; 
     margin: 0; 
    } 

     nav ul li { 
      display: table-cell; 
      vertical-align: middle; 
     } 

      nav ul li a { 
       display: block; 
       padding: 5px 10px; 
      } 

刪除所有的花車和寬度+高度(用在a,而不是填充)等(我有什麼上面是所有你應該有)。

您還需要自a■從a此舉的實際背景造型到li旨意沒有任何高度更平等(但li的意志)。

+0

非常感謝你的代碼和關於css「powerbuoy」的小教程。 – sunny 2012-04-10 12:48:01

+0

這不是HTML5或CSS3。 – 2014-02-28 18:50:59

+0

那麼? :P此外,'nav'元素_is_HTML5(http://html5doctor.com/nav-element/)。 'display:table'雖然陳舊但支持新穎。 – powerbuoy 2014-02-28 22:56:04