【发布时间】:2014-08-09 13:31:28
【问题描述】:
假设我有一个 flexbox 容器,其中的内容可能会溢出父容器。我想要的是,如果任何物品比容器大任何数量,它就会被隐藏。如果我设置overflow: hidden,它只会隐藏该项目的溢出部分,而不是整个项目。
考虑以下几点:
<nav id="top-nav">
<div id="main-nav-container">
<div class="menu">
<ul>
<li><a href="/">Item 1</a></li>
<li><a href="/">Item 2</a></li>
<li><a href="/">Item 3</a></li>
<li><a href="/">Item 4</a></li>
</ul>
</div>
<div class="menu">
<ul>
<li><a href="/">Other 1</a></li>
<li><a href="/">Other 2</a></li>
</ul>
</div>
</div>
</nav>
CSS:
#top-nav, #top-nav div.menu ul li {
background-color: #444;
}
#main-nav-container {
margin: 0 auto;
max-width: 1200px;
padding: 0 40px;
display: -webkit-inline-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-moz-justify-content: -moz-space-between;
-ms-justify-content: -ms-space-between;
justify-content: space-between;
}
#top-nav div.menu {
-webkit-flex: 1;
display: -webkit-inline-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
#top-nav div.menu:last-child {
display: -webkit-inline-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-justify-content: flex-end;
-webkit-flex-direction: row;
flex-direction: row;
justify-content: flex-end;
}
#top-nav div.menu,
#top-nav div.menu ul {
text-align: left;
alignment-baseline: baseline;
margin: 0;
padding: 0;
}
#top-nav div.menu ul {
list-style: none;
}
#top-nav div.menu > ul {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
white-space: nowrap;
}
#top-nav div.menu li {
-webkit-flex-shrink: 0;
-moz-flex-shrink: 0;
-ms-flex-shrink: 0;
flex-shrink: 0;
margin: 0
position: relative;
font-size: 1.1em;
cursor: pointer;
}
#top-nav div.menu ul li a {
color: #E6E6E6;
text-decoration: none;
display: block;
padding: 7px;
}
如果窗口缩小,我希望“项目 4”在它开始被“其他 1”重叠时隐藏。
一旦我实现了这一点,我还需要一个可以针对隐藏的选择器。
【问题讨论】:
-
您不太可能只针对溢出的弹性项目 - 无论如何不能直接定位。没有用于此目的的选择器。
-
对不起,不应该是直接用
CSS定位,我可以用jQuery定位它们,即$("div.menu ul li:hidden"),最重要的是我想要一种隐藏整个元素的方法,而不仅仅是隐藏内容溢出。 -
啊,确实有道理。