显示:内联无法正常工作

时间:2012-08-15 03:33:09

标签: html css list unordered

我是html和css的新手。

我学习了基础知识和一些高级技术但是,我长期以来一直遇到列表问题,并且想知道如何解决我的问题。

这是个主意。

我正在网上开店,但我想避免使用不同的ID来定位每个图片,文字,链接。

我有这个想法,我会把我的李放在div中,这样,我的列表中的所有内容都会被卡在这个盒子里,让一个类定位我的文本,链接,图像正确,使用display:inline和et voila ,我可以只使用一个类来创建整个产品页面。

问题是显示:内联不起作用。

如果有人可以帮我解决这个问题,我真的很感激。

这是一个不好的例子,但你了解原则。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
    #nav_bar {margin:0px;padding:0px;list-style-type:none;text-align:center;}
    .nav_button {background-color:purple;width:100px;height:50px;}
    .nav_button:hover {background-color:pink;}
    .nav_button li {display:inline;} /* Not working ?!? */
    .nav_button a {position:relative;color:white;text-decoration:none;top:13px;}
</style>
</head>

<body>
    <table style="width:600px;margin:0 auto;">
        <tr>
            <td>
                <ul id="nav_bar">
                    <div class="nav_button"> <li> <a href="#">Home</a> </li> </div>
                    <div class="nav_button"> <li> <a href="#">Contact us</a> </li> </div>
                    <div class="nav_button"> <li> <a href="#">Shipping</a> </li> </div>
                    <div class="nav_button"> <li> <a href="#">About us</a> </li> </div>
                </ul>
            </td>
        </tr>
    </table>
</body>
</html>

5 个答案:

答案 0 :(得分:28)

display:inline非常有限,不允许添加任何块级样式。您最好使用display:inline-block或使用float:left。请记住,如果使用浮点数,则需要将父元素的溢出设置为overflow:auto(对于IE&lt; 8使用可见),这应该可行。首先使用内联块。

答案 1 :(得分:3)

它不起作用的原因是因为你在div中使用它并且div元素只有li元素,如果div下有多个li元素,则内联属性可以工作。

试试这个

<ul id="nav_bar">
    <li class="nav_button"> <a href="#">Home</a> </li>
    <li class="nav_button"> <a href="#">Contact us</a> </li>
    <li class="nav_button"> <a href="#">Shipping</a> </li>
    <li class="nav_button" > <a href="#">About us</a> </li>
 </ul>

和css

#nav_bar .nav_button {display:inline-block;}

或者您也可以使用:

#nav_bar .nav_button {float:left;width:40px;}/*you will need to specify the width*/

如果您使用float方法,请确保您最终使用的是clear:both;指定的元素。

答案 2 :(得分:1)

请注意:如果父元素宽度太短而无法以水平方式显示

ul {
width: 20px;
}
li
{
display: inline;
} 

无效。

也  如果你有display:block;

之类的陈述
li
{
display: inline;
}
li a{
display: block;
}

不行。

答案 3 :(得分:0)

内联元素不接受高度和宽度。它只会忽略它。因此,您在 css 中输入的高度和宽度将被忽略,这就是空 div 不可见的原因。此外尝试使用内联块,它会解决问题。

答案 4 :(得分:0)

使用

 display:flex;

它对我有用