布局区分
自适应布局:不同尺寸下显示的布局会改变(太窄行转列、太窄隐藏 等),但是元素的大小不会改变。
eg: 媒体查询(用媒体查询宽高来控制切换某个静态布局) + 多个静态布局
流式布局:元素的宽高用百分比做单位,元素宽高按屏幕分辨率调整,布局不发生变化。宽高由百分比控制。屏幕窄,元素的宽就小;屏幕大,元素的宽就大,即元素宽高随屏幕尺寸实时变化
响应式布局:采用自适应布局和流式布局的综合方式。每个屏幕分辨率下面会有一个布局样式,同时位置会变而且大小也会变
eg: Flex Box 或 以Grid 为代表的栅格系统等 + 媒体查询+ 流式布局 或 vm vh rem等宽高单位
*{
font-family: '微软雅黑', sans-serif;
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #ddd;
}
.container{
position: relative;
width: 1000px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
}
.container .card {
position: relative;
display: flex;
flex-direction: column;
background: #fff;
}
.container .card:nth-child(even) {
flex-direction: column-reverse;
}
.container .card .imgBx{
position: relative;
width: 250px;
height: 250px;
background: #000;
}
.container .card .imgBx img{
position: absolute;
top:0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.container .card .content{
position: relative;
width: 250px;
height: 250px;
display: flex;
align-items: center;
justify-content: center;
}
.container .card .content div{
padding: 20px;
text-align: center;
}
@media (max-width: 1000px) {
.container {
grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
margin: 50px;
}
.container .card {
flex-direction: row;
margin: 10px 0;
}
.container .card:nth-child(even) {
flex-direction: row-reverse;
}
.container .card .imgBx,
.container .card .content{
width: 50%;
}
}
@media (max-width: 600px) {
.container .card {
flex-direction: column;
margin: 10px 0;
}
.container .card:nth-child(even) {
flex-direction: column;
}
.container .card .imgBx,
.container .card .content{
width: 100%;
}
.container .card .content {
height: 200px;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="./style.css" rel="stylesheet">
<title>57.响应盒模型特效</title>
</head>
<body>
<div class="container">
<div class="card">
<div class="imgBx">
<img src="1.png" alt="">
</div>
<div class="content">
<div>
<h2>图片一</h2>
<p>这是一张图片好看的图片,这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片</p>
</div>
</div>
</div>
<div class="card">
<div class="imgBx">
<img src="2.png" alt="">
</div>
<div class="content">
<div>
<h2>图片二</h2>
<p>这是一张图片好看的图片,这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片</p>
</div>
</div>
</div>
<div class="card">
<div class="imgBx">
<img src="3.png" alt="">
</div>
<div class="content">
<div>
<h2>图片三</h2>
<p>这是一张图片好看的图片,这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片</p>
</div>
</div>
</div>
<div class="card">
<div class="imgBx">
<img src="4.png" alt="">
</div>
<div class="content">
<div>
<h2>图片四</h2>
<p>这是一张图片好看的图片,这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片这是一张图片好看的图片</p>
</div>
</div>
</div>
</div>
</body>
</html>