我制作了一个简单的菜单,但在纵向视图中无法正确查看列表项。它们相互重叠。
我尝试将font-size: 0;
添加到<ul>
,但这不会改变任何内容。
如何在垂直移动视图中的列表项之间创建空格?
ul#minimenu {
padding: 0;
margin-left: 8%;
}
ul#minimenu li {
display: inline;
}
ul#minimenu li a {
background-color: green;
color: white;
padding: 10px 10px;
text-decoration: none;
border-radius: 4px 4px 0 0;
}
ul#minimenu li a:hover {
background-color: orange;
}
/*-------------------mobile-------------------*/
@media screen and (max-width: 900px) {
ul#minimenu li {
display: block;
}
}
<br>
<DIV style="text-align : center;">
<ul id="minimenu">
<li>
<B>levels :</B>
</li>
<li><a href="level1.html">Level 1</a>
</li>
<li><a href="level2.html">Level 2</a>
</li>
<li><a href="level3.html" style="background-color: #c0c0c0; color: black;padding: 10px 10px;text-decoration: none;border-radius: 4px 4px 0 0;cursor:default;">Level 3</a>
</li>
</ul>
答案 0 :(得分:2)
尝试在此类链接中添加display: inline-block;
;
ul#minimenu {
padding: 0;
margin-left:8%;
}
ul#minimenu li {
display: inline;
}
ul#minimenu li a {
background-color: green;
color: white;
padding: 10px 10px;
text-decoration: none;
border-radius: 4px 4px 0 0;
}
ul#minimenu li a:hover {
background-color: orange;
}
/*-------------------mobile-------------------*/
@media screen and (max-width:900px)
{
ul#minimenu li {
display: block;
}
ul#minimenu li a{
display:inline-block;
}
}
&#13;
<ul id="minimenu">
<li><B>levels :</B></li>
<li><a href="level1.html" >Level 1</a></li>
<li><a href="level2.html" >Level 2</a></li>
<li><a href="level3.html" style="background-color: #c0c0c0; color: black;padding: 10px 10px;text-decoration: none;border-radius: 4px 4px 0 0;cursor:default;">Level 3</a></li>
</ul>
&#13;
答案 1 :(得分:2)
a
中的li
元素具有重叠的背景颜色,默认情况下a
元素设置为display: inline;
。内联元素不会影响DOM中其他元素的位置和垂直值(如垂直边距/填充/等)。要让元素占用垂直空间,请将其设为display: block;
或display: inline-block;
。
ul#minimenu {
padding: 0;
margin-left: 8%;
}
ul#minimenu li {
display: inline;
}
ul#minimenu li a {
background-color: green;
color: white;
padding: 10px 10px;
text-decoration: none;
border-radius: 4px 4px 0 0;
}
ul#minimenu li a:hover {
background-color: orange;
}
/*-------------------mobile-------------------*/
@media screen and (max-width: 900px) {
ul#minimenu li {
display: block;
}
ul#minimenu li a {
display: inline-block;
}
}
&#13;
<br>
<DIV style="text-align : center;">
<ul id="minimenu">
<li>
<B>levels :</B>
</li>
<li><a href="level1.html">Level 1</a>
</li>
<li><a href="level2.html">Level 2</a>
</li>
<li><a href="level3.html" style="background-color: #c0c0c0; color: black;padding: 10px 10px;text-decoration: none;border-radius: 4px 4px 0 0;cursor:default;">Level 3</a>
</li>
</ul>
&#13;
答案 2 :(得分:1)
您遗失的内容是overflow:hidden
在您的菜单li
元素中:
@media screen and (max-width: 900px)
ul#minimenu li {
display: block;
overflow: hidden;
margin-bottom: 2px;
}
}
您可能还希望添加一些margin-bottom
,如上所述。我已经创建了一个Stack Snippet,展示了以下内容。
希望这有帮助! :)
ul#minimenu {
padding: 0;
margin-left: 8%;
}
ul#minimenu li {
display: inline;
}
ul#minimenu li a {
background-color: green;
color: white;
padding: 10px 10px;
text-decoration: none;
border-radius: 4px 4px 0 0;
}
ul#minimenu li a:hover {
background-color: orange;
}
/*-------------------mobile-------------------*/
@media screen and (max-width: 900px) {
ul#minimenu li {
display: block;
overflow: hidden;
margin-bottom: 2px;
}
}
&#13;
<br>
<DIV style="text-align : center;">
<ul id="minimenu">
<li>
<B>levels :</B>
</li>
<li><a href="level1.html">Level 1</a>
</li>
<li><a href="level2.html">Level 2</a>
</li>
<li><a href="level3.html" style="background-color: #c0c0c0; color: black;padding: 10px 10px;text-decoration: none;border-radius: 4px 4px 0 0;cursor:default;">Level 3</a>
</li>
</ul>
&#13;
答案 3 :(得分:1)
我在html结构/语义上做了一些更改,因为不推荐使用某些标记,不建议使用内联css。
可以通过多种方式完成,我制作了两个,以便您可以选择最适合自己的方式。
V2
- (推荐)
http://codepen.io/CesarCEARA/pen/OWggJX http://codepen.io/CesarCEARA/pen/OWggJX
ul#minimenu {
display: inline-block;
list-style: none;
padding: 0;
}
ul#minimenu li {
float: left;
margin-right: 5px;
}
ul#minimenu li a {
background-color: green;
border-radius: 4px 4px 0 0;
color: #fff;
padding: 10px;
text-decoration: none;
}
ul#minimenu li a:hover {
background-color: orange;
}
ul#minimenu li a.disabled {
background-color: #c0c0c0;
color: #000;
cursor: default;
}
/*-------------------mobile-------------------*/
@media screen and (max-width: 900px) {
ul#minimenu li {
clear: both;
display: flex;
margin-right: 0;
margin-bottom: 5px;
}
ul#minimenu li:last-child {
margin-bottom: 0;
}
}
<div style="text-align: center;">
<ul id="minimenu">
<li>
<strong>levels: </strong>
</li>
<li>
<a href="level1.html">Level 1</a>
</li>
<li>
<a href="level2.html">Level 2</a>
</li>
<li>
<a href="level3.html" class="disabled">Level 3</a>
</li>
</ul>
</div>
V1
http://codepen.io/CesarCEARA/pen/LxLyqq http://codepen.io/CesarCEARA/pen/LxLyqq
此致 塞萨尔巴罗斯