为什么我们在此菜单上使用这三个属性。我不确定为什么我们需要这三个属性。我真的很想知道这方面的技术方面吗?
margin: 0;
padding: 0;
overflow: hidden;
HTML:
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
CSS:
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
答案 0 :(得分:4)
ul
元素的默认margin/padding
为40px,具体取决于您的浏览器。所以将这些属性放到ul
:
ul {
margin: 0;
padding: 0;
}
在浏览器上覆盖它的默认行为。请参阅此处的文档: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation#Finding_Consistency
然后,由于overflow:hidden
元素中的浮动li
元素,因此使用ul
属性。以下是对相关文档的解释
使用overflow属性与可见值不同的值(其值 默认)将创建一个新的块格式化上下文。这是 技术上必要 - 如果浮动与滚动相交 它会强行重新包装内容。重新包裹会发生 在每个滚动步骤之后,导致慢滚动体验。
来源:https://developer.mozilla.org/en-US/docs/Web/CSS/overflow
答案 1 :(得分:1)
填充和边距的默认值为零(取决于浏览器)。所以我不认为如果删除它们会有任何区别。
溢出:隐藏是一个属性,它会使任何文本从你的div中删除,即它不会显示在屏幕上并被剪裁。
溢出:如果文字超出你的div,则自动会显示滚动条。
还有更多选项可供选择,请通过以下链接获取更多信息::
答案 2 :(得分:1)
Note that overflow: hidden
is also used to clear floats in your element. At least I do that :)
i.e.
ul {
overflow: hidden;
}
li {
float: left;
}
答案 3 :(得分:0)
对于溢出:隐藏部分,我认为最好的答案就是来自w3schools的这个例子:overflow hidden example所发生的事情是,所有不能容纳在允许空间内的内容都会被剪切掉,并且不会以任何方式显示。< / p>
边距和填充之间的差异在this question中的stackoverflow中进行了解释。