css - CSS 网格 - 桌面上的两列和移动设备上的 1 列
问题描述
这就是我想要实现的目标:
在桌面/大屏幕上 - 左侧的 30% 和右侧的大约 70%
在移动/较小的屏幕上 - 右侧在左侧的顶部
这是我到目前为止所拥有的。我有一种感觉,我正在使用右边的网格,或者至少我没有达到我上面的目标......
body {
margin: 40px;
}
.sidebar {
grid-area: sidebar;
}
.content {
grid-area: content;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: auto;
grid-template-areas: "sidebar content content content";
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.header {
background-color: #999;
}
@media (max-width: 768px) {
grid-template-rows: repeat(auto, 1fr);
grid-template-areas:
"content"
"sidebar";
}
<div class="wrapper">
<div class="box sidebar">Sidebar</div>
<div class="box content">Content</div>
</div>
最好的方法是什么?
解决方案
您忘记.wrapper
在媒体查询中将 css 包装在类中
body {
margin: 40px;
}
.sidebar {
grid-area: sidebar;
}
.content {
grid-area: content;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: auto;
grid-template-areas: "sidebar content content content";
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.header {
background-color: #999;
}
@media (max-width: 768px) {
.wrapper {
grid-template-rows: repeat(auto, 1fr);
grid-template-areas:
"content"
"sidebar";
}
}
<div class="wrapper">
<div class="box sidebar">Sidebar</div>
<div class="box content">Content</div>
</div>
jsfiddle链接
推荐阅读
- crystal-reports - 格式化跨越多行的超链接
- python - 如何在 python 字典中保持循环以搜索值?
- javascript - 使用 Moment.js 从日期数组中查找最近的第二天
- asp.net-mvc - 找到多个与 URL 错误 MVC 5 匹配的控制器类型
- c# - 拆分和单元测试 linq-query
- flutter - 如何遍历具有不同视图的小部件
- ios - 在 Xcode 中使用本机箭头图标
- excel - Excel如何转换要用于透视的表:在字段中使用列标题
- php - 带有自定义连接的 Laravel 通知
- react-native - 如何在从关闭更改为打开时检查 wifi 状态