如何根据窗口大小有选择地隐藏HTML/CSS中的元素,而不使用媒体查询?

plicqrtu  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(89)

我想使用HTML/CSS创建一个工具栏,当浏览器大小减小时,某些元素完全消失。它应该类似于大多数浏览器上收藏夹栏的工作方式,显示可变数量的项目。
在这个例子中,当浏览器的大小使第2节的flex项减小到低于其原始宽度300 px时,它应该隐藏。目前,它正在缩小而不是消失。我希望此行为能够根据项目的大小进行响应,因此我认为媒体查询将不起作用。使用CSS可以实现选择性隐藏元素吗?
jsfiddle link
CSS:

...

.container{
    flex-wrap: nowrap;
    display: flex;
    justify-content: space-between;
    border: 2px black solid;
    overflow: hidden;
    width: 100%;
}

div{
    height: 100px;
}

#div1{
    width: 300px;
    background-color:#7fffd4;
    flex-shrink: 0;
}

#div2{
    width: 300px;
    background-color: #ffb6c1;
}

HTML:

...
<body>
    <container class="container">
        <div id="div1">Section 1: this section should always remain visible</div>
        <div id="div2">Section 2: this entire section should disappear when reduced below initial width of 300px</div>
    </container>
</body>
nfs0ujit

nfs0ujit1#

您正在寻找的方法是新的css容器查询,根据它的父的大小改变
https://developer.mozilla.org/docs/Web/CSS/CSS_Container_Queries
还有一种JavaScript方法可以做与媒体查询完全相同的事情:javascript匹配媒体方法(不像上面的容器查询)
https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia

相关问题