【问题标题】:CSS Grid hiding text on mobile (mobile first)CSS Grid在移动设备上隐藏文本(移动优先)
【发布时间】:2018-07-30 19:56:51
【问题描述】:

我正在构建一个导航栏并使用 CSS 网格。

这里是html:

<nav class="nav">
    <div class="menu">
        <div class="header">
            HEADER
        </div>
    </div>
    <span class="space"></span>
    <div class="breadcrumb">
        <div class="bcrumb">
            Breadcrumbs
        </div>
    </div>
</nav>
<div class="content">

</div>

这是我的 CSS:

body {
    font-family: sans-serif;
    margin:0;
}
.nav {
    height: 100px;
    position: fixed;
    right: 0;
    left: 0;
    top: 0;
    display:grid;
    grid-template-rows: 1fr 5px 1fr;
    grid-template-areas: 
    "Menu"
    "Space"
    "Breadcrumb"
}
.content{
  height:1000px;
  background-color:gray;
  margin-top:100px;
}
.menu {
    grid-area: Menu;
    background-color: #333333;
    display: grid;
    grid-template-columns: 1.5em 80px 1fr auto;
    grid-template-areas: ". . . MenuItems";
}
.menu-items {
    grid-area: MenuItems;
}
.space {
    grid-area: Space;
    background-color: #c20418;
}
.breadcrumb {
    grid-area: Breadcrumb;
    background-color: white;
}
@media only screen and (min-width : 1224px) {
    .menu {
        display:inline-grid;
        grid-template-columns: 1.5em 80px auto 1fr auto auto;
        grid-template-areas: ". . Header . . MenuItems";
        align-content: end;
    }

    .header {
        grid-area: Header;
        color: white;
        font-size: 1.2em;
    }

    .breadcrumb {
        display: grid;
        grid-template-columns: 1.5em 80px 1fr;
        grid-template-areas: ". . Bcrumb";
    }

    .bcrumb {
        grid-area: Bcrumb;
        align-self: center;
        font-size: 1.2em;
    }
}

我已经为面包屑添加了标题文本和文本位置,只有在大屏幕上才应该出现。

我已经通过添加:

.header, .bcrumb{ 
    visibility:hidden;
}

然后将其设置为在媒体查询中可见。

但肯定有更好的方法来做到这一点?

这是一个Fiddle,代码相同。

【问题讨论】:

  • 你使用的是什么 Css 框架?
  • @JohannesPiontkowitz 没有。我正在使用这个css grid
  • 那么使用媒体查询将是实现这一目标的最佳方式。

标签: html css responsive-design grid media-queries


【解决方案1】:

这是移动屏幕的 CSS

@media all and (max-width: 767px) {
  .header, .bcrumb { 
    visibility: hidden;
  }
}

【讨论】:

  • 这个答案不好,因为它是移动首页。阅读此答案后,我已经编辑了我的标题。
  • 但这仅适用于小于 767 像素宽的屏幕。不适用于较大的屏幕。你可以使用你想要的尺寸而不是 767。
  • media queries and mobile first 不要在宽度小于768px时改变样式,而应该在宽度大于768px时改变设计。
  • 然后使用可见性:隐藏而不使用媒体查询。它将隐藏这两个元素。并使用可见性:在您的查询中使用较大屏幕可见,您已经为较大屏幕使用了。
  • 显示属性是另一个选项。显示:无和显示:块
猜你喜欢
  • 2020-01-06
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2021-04-12
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多