我是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>
答案 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;
它对我有用