2013-02-28 61 views
1

這是我的菜單文本換行

<ul id="admin-ul"> 
    <li id="admin-li" class="no1"><a href="dodaj.php">Dodaj informacije za sdf dsf dsfdddd</a></li> 
    <li id="admin-li" class="no2"><a href="pregledaj.php">Pregledaj</a></li> 
    <li id="admin-li" class="no3"><a href="veterinari.php">Veterinari</a></li> 
    <li id="admin-li" class="no4"><a href="../logout.php">Logout</a></li> 
    </ul> 

和CSS的簡單的代碼

ul#admin-ul 
{ 
    list-style-type:none; 
    margin:0; 
    padding:0; 
} 

li#admin-li 
{ 
    display:inline-block; 
    width:24%; 
    height:270px; 
} 

ul li a 
{ 
    display:block; 
    height:270px; 
    line-height:270px; 
    text-align:center; 
} 

我想知道如何包裝我的文字,因爲它顯示像這樣enter image description here

+0

它在技術上是環繞的,你只需將行高設置爲與容器div相同的高度,所以下一行將比第一行低540px。 – tedski 2013-02-28 15:48:24

回答

1

試試這個:

ul#admin-ul 
{ 
    list-style-type:none; 
    margin:1em 0 0 0; 
    padding:0; 
} 

li#admin-li 
{ 
    display:table; 
    width:24%; 
    position:relative; 
    float:left; 
    overflow:hidden; 
    height:270px; 
    margin: 0 3px; 
} 

ul li a 
{ 
    display:table-cell; 
    vertical-align:middle; 
    height:270px; 
    text-align:center; 
} 

派生自:http://www.jakpsatweb.cz/css/css-vertical-center-solution.html

這不適用於IE7標準模式,但幾乎所有其他東西都很好。

2

只需在您的<li>上使用vertical-align: top即可。請注意,所有的ID必須是唯一的,所以這是無效的HTML:

<li id="admin-li" class="no1"><a href="dodaj.php"></a></li> 
<li id="admin-li" class="no1"><a href="dodaj.php"></a></li> 

可以樣式的所有<li> S比容易利用孩子選擇這樣的:

ul#admin-ul > li { 
    /* other li rules */ 
    vertical-algin: top; 
} 

可以比更新列表這樣的:

<ul id="admin-ul"> 
    <li class="no1"><a href="dodaj.php"></a></li> 
    <li class="no1"><a href="dodaj.php"></a></li> 
</ul> 

最終演示:http://jsfiddle.net/eXKdG/

更新

由於我沒有注意到的塊級<a> - 標籤內的文本的垂直居中:tesdki是正確的,只是使用的<a>標籤都有效display: table-cell;

+0

這也有同樣的問題,如果你讓「Dodaj」線超過寬度,那麼它會撞到盒子的​​底部。 http://jsfiddle.net/eXKdG/2/ – tedski 2013-02-28 18:52:40

+0

你是對的,謝謝你指出。我甚至沒有注意到那個巨大的「線條高度」。我認爲這只是盒子的垂直對齊。 – insertusernamehere 2013-02-28 22:05:21