css - 使用媒体断点复制 Bootstrap flexbox 网格系统
问题描述
我正在寻找flexbox
从 Bootstrap 复制网格系统。除了媒体查询部分,一切都很好。列很好地水平堆叠,但是当激活特定的媒体断点时,我想将 div 堆叠在新行上。
我想我可以用 jQuery 做到这一点,但我想先尝试用 pure 来实现它css
。我试图查看 Bootstrap 的源文件,但无法理解它。
.row {
overflow: hidden;
display: flex;
width: 100%;
background-color: burlywood;
height: auto;
}
.row > .col {
padding: 14px;
border: 2px solid black;
flex: 1 1 auto;
}
.col-md-4 {
padding: 14px;
border: 2px solid black;
flex: 1 1 33.33333%;
@media (max-width: 768px) {
.col-md-4 {
//code wanted
}
}
<div class="row">
<div class="col-md-4" style="background-color:burlywood;">MyColumn 1</div>
<div class="col-md-4" style="background-color:chartreuse;">MyColumn 2</div>
<div class="col" style="background-color:crimson;">MyColumn 3</div>
<div class="col" style="background-color:crimson;">MyColumn 4</div>
</div>
内联样式仅用于测试目的。
解决方案
您在另一个css
规则中拥有媒体查询声明。
一个简单的解决方案是改变.row
自身的堆叠方向。
编辑:
如果你只是想学习,这很好。但是,如果您想在生产中使用它,我建议您只从引导程序中复制网格定义,而不是重新发明轮子。
除此之外,要知道引导程序首先是移动的。你原来的例子不是。我在下面添加的是flex-wrap
和通配符*
的box-sizing
属性。这就是大部分的魔法。
*{box-sizing: border-box;} /* borders will break your layout without this */
.row {
display: flex;
width: 100%;
background-color: burlywood;
height: auto;
flex-wrap: wrap; /*this is how columns 'wrap' on smaller devices */
}
.row>.col {
padding: 14px;
flex: 1 1 auto;
}
.col-md-4 {
padding: 14px 0;
border: 2px solid black;
width: 100%;
}
@media (min-width: 768px) {/*bootstrap uses media queries for larger screens, not smaller */
.col-md-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
}
<div class="row">
<div class="col-md-4" style="background-color:burlywood;">MyColumn 1</div>
<div class="col-md-4" style="background-color:chartreuse;">MyColumn 2</div>
<div class="col-md-4" style="background-color:crimson;">MyColumn 3</div>
</div>
推荐阅读
- arrays - 分块是否允许对核外数组进行迭代?
- javascript - 如何只使用第二个或第三个回调
- java - 如何使用类构造函数通过用户输入创建多个帐户
- reactjs - 使用多个复选框过滤器做出反应
- python - 将十六进制编码为十进制会出错 - 如何修复?
- python - 在新的 Apple Silicon 架构上运行 Ruby、Node、Python 和 Docker?
- android - React-Native NFC 阅读器返回:不支持 NFC 标签的类型
- php - 停止 WP_Query->get_posts 在类别页面上运行
- oop - 将 API 响应转换为可为空的字符串
- c++ - 将 C++ 编译器从 Ubuntu 更改为 MacOS