【css】布局

布局区分

自适应布局:不同尺寸下显示的布局会改变(太窄行转列、太窄隐藏 等),但是元素的大小不会改变。
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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值