响应 div 个块
Responsive div blocks
我有 6 个这样的连续块:
在移动版和桌面版中,一切都如我所愿,但是当我将 flex-direction
从 row
更改为 column
时:
在桌面版中,一切正常,但在移动版中,块不是每行 2 个,而是在一列中。我该如何解决?
CSS:
* {
box-sizing: border-box;
}
img {
width: auto;
max-width: 100%;
height: auto;
max-height: 100%;
}
.picture-box {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
padding: 3rem 1.5rem;
}
.ring {
flex: 0 0 calc(50% - 10px);
padding: 20px;
margin-bottom: 20px;
border: 1px solid green;
text-align: center;
}
.thumb {
display: inline-block;
max-width: 200px;
padding: 10px;
border: 1px solid blue;
}
@media all and (min-width: 1024px) {
.ring {
flex: 0 0 calc((100% / 3) - (40px / 3))
}
}
@media all and (min-width: 1240px) {
.ring {
flex: 0 0 calc((100% / 6) - (100px / 6))
}
}
HTML:
<div class="picture-box">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
如何使用桌面媒体查询来保持 column
布局并使用 flex-direction : row
移动设备和平板电脑?
@media all and (min-width: 1024px) {
.ring {
flex: 0 0 calc((100% / 3) - (40px / 3))
}
.picture-box {
flex-direction: column;
}
}
请使用,https://getbootstrap.com/ 框架。
并使用 html 这样的结构,
<div class="picture-box">
<div class="row">
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
</div>
</div>
请你试试这个....
<style>
body{padding: 0px;margin: 0px;}
*{box-sizing: border-box;}
img{width: auto;max-width: 100%;}
.picture-box{display: flex;flex-direction: row;justify-content:space-around; padding: 3rem 1.5rem;}
.ring{padding: 20px;margin:0px 10px 20px 10px;border: 1px solid green;text-align: center;}
.thumb{display: block;padding: 10px;border: 1px solid blue;}
@media(max-width: 1024px){.picture-box{flex-wrap: wrap;}.ring{width: calc(33.3% - 20px);}}
@media(max-width: 768px){.ring{width: calc(50% - 20px);}}
@media(max-width: 480px){.ring{width: 100%; margin: 0px 0px 20px 0px;}}
</style>
我有 6 个这样的连续块:
在移动版和桌面版中,一切都如我所愿,但是当我将 flex-direction
从 row
更改为 column
时:
在桌面版中,一切正常,但在移动版中,块不是每行 2 个,而是在一列中。我该如何解决?
CSS:
* {
box-sizing: border-box;
}
img {
width: auto;
max-width: 100%;
height: auto;
max-height: 100%;
}
.picture-box {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
padding: 3rem 1.5rem;
}
.ring {
flex: 0 0 calc(50% - 10px);
padding: 20px;
margin-bottom: 20px;
border: 1px solid green;
text-align: center;
}
.thumb {
display: inline-block;
max-width: 200px;
padding: 10px;
border: 1px solid blue;
}
@media all and (min-width: 1024px) {
.ring {
flex: 0 0 calc((100% / 3) - (40px / 3))
}
}
@media all and (min-width: 1240px) {
.ring {
flex: 0 0 calc((100% / 6) - (100px / 6))
}
}
HTML:
<div class="picture-box">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
如何使用桌面媒体查询来保持 column
布局并使用 flex-direction : row
移动设备和平板电脑?
@media all and (min-width: 1024px) {
.ring {
flex: 0 0 calc((100% / 3) - (40px / 3))
}
.picture-box {
flex-direction: column;
}
}
请使用,https://getbootstrap.com/ 框架。 并使用 html 这样的结构,
<div class="picture-box">
<div class="row">
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="ring">
<div class="thumb">
<img src="https://via.placeholder.com/200">
</div>
</div>
</div>
</div>
</div>
请你试试这个....
<style>
body{padding: 0px;margin: 0px;}
*{box-sizing: border-box;}
img{width: auto;max-width: 100%;}
.picture-box{display: flex;flex-direction: row;justify-content:space-around; padding: 3rem 1.5rem;}
.ring{padding: 20px;margin:0px 10px 20px 10px;border: 1px solid green;text-align: center;}
.thumb{display: block;padding: 10px;border: 1px solid blue;}
@media(max-width: 1024px){.picture-box{flex-wrap: wrap;}.ring{width: calc(33.3% - 20px);}}
@media(max-width: 768px){.ring{width: calc(50% - 20px);}}
@media(max-width: 480px){.ring{width: 100%; margin: 0px 0px 20px 0px;}}
</style>