css - 如何使用网格重新定位侧边栏

标签 css css-grid

我有一个经典的布局:

#divleft{
    float:left;
}

#sidebar{
    float:right;
}

@media screen and (max-width: 900px) {
    #divleft, #sidebar{
        float:none; 
}

divleftsidebarpanelb 的 child ;

现在我想用网格

#panelb{
    width:calc(100% - 30px);
    margin:25px auto 0 auto;
    display:grid;
    grid-template-columns: auto 340px;
}

在这种情况下,如何在 900px 屏幕宽度上将 sidebar 重新定位到 divleft 下方?

最佳答案

最简单的方法就是对列使用媒体查询。

#panelb {
  width: calc(100% - 30px);
  margin: 25px auto 0 auto;
  display: grid;
  grid-template-columns: 1fr 340px;
}

@media screen and (max-width: 900px) {
  #panelb {
    grid-template-columns: 1fr;
  }
}

#divleft {
  background: blue;
  height: 100px;
}

#sidebar {
  background: red;
  height: 100px;
}
<div id='panelb'>
  <div id='divleft'></div>
  <div id='sidebar'></div>
</div>

如果您想更改顺序,可以在#divleft 和#sidebar 上设置order 属性。

我还建议不要使用 id,而要使用类。即使对于只存在一次的元素也是如此,因为 id 具有一些其他奇怪的属性,例如“泄漏”到窗口以及在 css 中具有更高的特异性。

关于css - 如何使用网格重新定位侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017351/

相关文章:

html - 在响应式网格上设置多个 “same height” 行部分的仅 CSS 解决方案

CSS 在网格布局中嵌套了 minmax

html - CSS 网格环绕

html - CSS 模态滚动

jquery - 仅带有图标的 Rails 字段选择框

javascript - 使用 Javascript 定位 DIV

html - Position: absolute 和 parent 高度?

html - CSS 选择器 - 选择所需选择的第一个选项

javascript - 在 CSS 网格中选择列

html - 带标题的 CSS 砌体网格?