html - tilda 选择器 css,标签按钮不适用于响应式菜单

标签 html css responsive

我的问题是我正在尝试创建响应式菜单,一切正常,在那之后,我做了什么我隐藏了我的菜单并在屏幕小于特定尺寸时显示一个按钮,这很好我的按钮显示,但是选中复选框后我的菜单没有显示, 我正在尝试使用复选框来显示菜单,这意味着如果选中复选框而不是仅在屏幕小于 600 像素时显示菜单,请阅读媒体查询的最后一部分,因为这就是问题所在,其余代码有效。 请阅读 css 代码中的注释,

而且我认为问题出在 css 的最后一个样式中,所以请先检查一下,您不必阅读整个代码,我在代码中留下注释以告诉您哪部分不起作用,

HTML代码

<div class="wrapper">
    <label for="show-menu" class="show-menu">Show Menu</label>
    <input type="checkbox" id="show-menu">
    <nav>

            <ul class="flex-nav">
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Contact</a></li>
                <li><a href="#">Plans</a></li>
                <li><a href="#">FAQ</a></li>
            </ul>
    </nav>
</div>

CSS 代码

*{margin:0; padding:0;}

.wrapper  { 
    color:white;
    font-family:Helvetica;
}
nav{background:black}
/*making the button and checkbox invisible
This work fine, 
I try to display it in media query, work fine
it showed up when screen is less than 600px
*/
.show-menu {
    display:none;

}
input[type=checkbox]{
    display:none;
}

/*styling nav bar*/

.flex-nav{
    display:flex;
    list-style-type:none;
}

.flex-nav li{
    flex:1;
    text-align:center;
}

.flex-nav li a {
    display:block;
    padding:20px 0;
    text-decoration:none;
}


/*media query*/
@media screen and (max-width:600px){
    /*displaying the button work fine, also
    read the first comment */
    .show-menu{
    background:#1a1a1a;
    cursor:pointer;
    padding:20px 0;
    display:flex;
    justify-content:center;
    }

    /*saying dont display class flex-nav work fine*/
    .flex-nav{
        display:none;
    }
    /*now saying display flex-nav children if button is 
    click. does not work driving my tiny brain nuts*/
    input[type=checkbox]:checked ~ .flex-nav
    {
        display:block;
    }

}

最佳答案

最后一个 CSS 选择器(在媒体查询中)应该是

input[type=checkbox]:checked + nav > .flex-nav {
  display:block;
}

原因:input.flex-nav 不是兄弟。 .flex-navnav的子元素,它是input的兄弟,实际上是.flex-nav 直接跟在 nav 之后,因此 +

关于html - tilda 选择器 css,标签按钮不适用于响应式菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45315598/

相关文章:

reactjs - CSS 的垂直进度步骤

reactjs - 如何在 React 中检测屏幕尺寸是否已更改为移动设备?

javascript - 检测div的当前方向

javascript - 在 iframe 前面放置 SVG 而不是 PNG

php - 侧面导航菜单问题

jquery/css : how to implement a wipe left animation on background-color of a div

html - 如何将文本直接放在 img 后面

html - 两个并排的 div——一个在中间,另一个在右边

html - 相对于 DIV 的固定容器——这可能吗?

ios - 嵌入代码滚动不适用于 ios 响应设备