19

我对 html 和 css 还很陌生。

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

这是想法。

我正在开一家网上商店,但我想避免使用不同的 ID 定位每一个图像、文本、链接。

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

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

如果有人可以帮助我解决这个问题,我将不胜感激。

这是一个不好的例子,但是,您了解原理。

<!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>
4

5 回答 5

33

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

于 2012-08-15T03:35:43.793 回答
4

它不起作用的原因是因为您在 div 内使用它并且该 div 元素只有 li 元素,如果您在 div 下有多个 li 元素,则 inline 属性将起作用。

尝试这个

<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;是最后指定的元素。

于 2012-08-15T03:37:18.957 回答
2

note that : if the parent element width is too short to display horizantally then

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

will not work.

also under li element if you have display:block; statement such as

li
{
display: inline;
}
li a{
display: block;
}

not work.

于 2016-11-04T17:25:51.080 回答
0

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

于 2021-04-18T00:49:01.463 回答
0

利用

 display:flex;

它对我有用

于 2021-07-03T15:45:41.480 回答