gpt4 book ai didi

html - 显示一个(n)
  • 基于@media 查询格式化为一个 flexbox
  • 转载 作者:可可西里 更新时间:2023-11-01 13:43:23 26 4
    gpt4 key购买 nike

    我无法显示和隐藏一些 <li>基于媒体查询的元素。我有一个 <ul>显示为 flexbox 的元素,包含 <li>元素。每个各自<li>也显示为 flexbox,包含一个图标和文本。我想要两个 <li>当屏幕宽度为 925px 或更小时显示的元素(第一个和最后一个)。然而,这似乎只在 <li> 时有效。元素不显示为 flexboxes。但是,我需要 <li>元素是 flexboxes,所以我可以简单地格式化图标和文本。有什么办法可以显示/隐藏 <li>如果 <li> 元素基于屏幕宽度元素被格式化为 flexboxes?

    我在下面的链接中有代码,它与本文下面显示的代码相同。 https://codepen.io/anon/pen/XYrxmG

    <li>当屏幕宽度小于 925px 时我要显示的元素用粉红色背景表示。

         <nav id="navigation">
    <ul id="nav-content">
    <li id="nav-left"></li>
    <li id="op1"><img src="https://via.placeholder.com/30x30"><h2>Option1</h2></li>
    <li id="op2"><img src="https://via.placeholder.com/30x30"><h2>Option2</h2></li>
    <li id="op3"><img src="https://via.placeholder.com/30x30"><h2>Option3</h2></li>
    <li id="op4"><img src="https://via.placeholder.com/30x30"><h2>Option4</h2></li>
    <li id="nav-right"></li>
    </ul>
    </nav>

    * {
    margin: 0px;
    padding: 0px;
    color: black;
    }

    #nav-content {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    list-style-type: none;
    border: solid 2px black;
    }

    // Each list element in nav bar
    #nav-content>li {
    // When this display: flex is turned on, my <li> gets formatted correctly
    // but the pink elements stop showing based on media query
    //display: flex;
    align-items: center;
    padding: 10px 20px 10px 20px;
    }

    #nav-content > li:hover {
    background-color: grey;
    }

    #nav-left, #nav-right {
    display: none;
    background-color: pink;
    }

    @media (max-width: 500px) {
    #nav-left,
    #nav-right {
    display: flex;
    }
    }

    最佳答案

    这似乎只是选择器权重的问题:

    * {
    margin: 0px;
    padding: 0px;
    color: black;
    }

    #nav-content {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    list-style-type: none;
    border: solid 2px black;
    }

    #nav-content > li {
    display: flex;
    align-items: center;
    padding: 10px 20px 10px 20px;
    }

    #nav-content > li:hover {
    background-color: grey;
    }

    #nav-content > #nav-left,
    #nav-content > #nav-right {
    display: none;
    background-color: pink;
    }

    @media (max-width: 925px) {
    #nav-content > #nav-left,
    #nav-content > #nav-right {
    display: flex;
    }
    }
    <nav id="navigation">
    <ul id="nav-content">
    <li id="nav-left"></li>
    <li id="op1"><img src="http://via.placeholder.com/30x30"><h2>Option1</h2></li>
    <li id="op2"><img src="http://via.placeholder.com/30x30"><h2>Option2</h2></li>
    <li id="op3"><img src="http://via.placeholder.com/30x30"><h2>Option3</h2></li>
    <li id="op4"><img src="http://via.placeholder.com/30x30"><h2>Option4</h2></li>
    <li id="nav-right"></li>
    </ul>
    </nav>

    修复 & forked pen :

    #nav-content > #nav-left,
    #nav-content > #nav-right {
    display: none;
    background-color: pink;
    }

    @media (max-width: 500px) {
    #nav-content > #nav-left,
    #nav-content > #nav-right {
    display: flex;
    }
    }

    关于html - 显示一个(n) <li> 基于@media 查询格式化为一个 flexbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573712/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com