3 回答

TA貢獻1853條經驗 獲得超9個贊
我不想知道正確的解決方案。我只是想知道為什么溢出:隱藏的行為是這樣的。
由于您的列表項是浮動的,因此默認情況下它們不會影響其父項的?高度?ul
?。列表元素本身的有效高度保持在此處?0
,因此您實際上在任何地方都看不到背景顏色。
overflow
?設置為默認值以外的任何值auto
,作為明確修復。這意味著?li
?現在將影響?ul
?的高度,現在?ul
?實際上具有高度,您還會看到它的背景顏色應用于該高度。
如果您不熟悉該術語,可以了解有關什么是“明確修復”以及實現它的其他方法的更多信息。

TA貢獻1802條經驗 獲得超5個贊
除非將溢出設置為隱藏、滾動或自動,否則任何可能浮動的內容都不會被剪切。該方法的真正目的是,在沒有給元素設置高度和寬度的情況下,當您將溢出設置為隱藏時,它會采用內部元素的高度和寬度:https:// codepen.io/Aypro18/pen/ExVVgYa?editors=1000
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: auto; //The problem is here and the olution itself
background-color: #333;
}
li {
float: left;
}
li a {
display: inline-block;
color: blue;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
.active {
background-color: red;
}
</style>
</head>
<body>
<ul>
<li><a href="#home" class="active">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>
</body>
</html>

TA貢獻1877條經驗 獲得超1個贊
添加 display: flex;
至 UI 樣式?,F在,您可以刪除overflow:hidden
。發生這種情況是因為父元素沒有充當子元素的容器(因為它們的浮動屬性)。所以,它不會繼承他們的身高并適應它。因此,display flex 解決了這個問題。
- 3 回答
- 0 關注
- 174 瀏覽
添加回答
舉報