2012-02-25 97 views
4

我正在學習使用CSS創建按鈕的本教程。 http://www.secondpicture.com/tutorials/web_design/css_ul_li_horizontal_css_menu.html當我爲UL設置背景圖像時,爲什麼當子元素已經設置了這些元素時,我必須設置寬度和高度?

背景爲按鈕在UL元件設置。我注意到的是,如果刪除UL元素的高度和寬度屬性,背景圖像會消失,就好像UL尺寸變爲零一樣。從箱子模型的角度來看,這對我來說沒有意義。兒童元素(LI)具有設定的尺寸,並應相應地延伸UL的大小。有人可以解釋發生了什麼嗎?

ul { 
    list-style-type: none; 
    background-image: url(navi_bg.png); 
    height: 80px; 
    width: 663px; 
    margin: auto; 
    } 

回答

2

<li> s的浮動,從而它們從這是造成<ul>崩潰文檔流中去除。

要表現得像你期望的那樣,嘗試添加float: left;<ul>爲好。

+0

謝謝。說得好。 – user1232090 2012-02-25 05:04:38

0

良好的修復,我總是使用是放<ul><div>這樣<div id="nav"><ul>...</ul></div>,然後再進行背景圖像的<div>元件。

更好的答案:

在你的CSS添加display: table-row;ul元素和display: table-cell;li元素。這比float: left更好,因爲它不垮你的父元素和display: inline-block,因爲它不存在項目之間的那惱人的差距。

+0

我也試過這個。也有類似的問題。看起來好像是一種接近事物的好方法。 – user1232090 2012-02-25 05:05:38

相關問題