响应式布局

响应式布局

什么是响应式布局

1、响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。
2、传统的开发方式是PC端开发一套,手机端再开发一套
3、使用响应式布局只要开发一套就够。

效果

小屏幕
大屏幕

如何实现响应式布局

rem
什么是rem
根元素的字体大小
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>rem</title>
</head>
<style>
    html{
        font-size: 20px;
    }
    .content-rem{
        width: 10rem;
        height: 10rem;
        background-color: #dfdfdf;
    }
</style>
<body>
    <div class="content-rem">

    </div>
</body>
</html>
如何使用rem实现响应式布局
1.使用css媒体查询设置不通的根元素字体大小
2.使用css中的calc动态计算出根元素字体大小
3.使用js代码动态设置根元素字体大小
    /*使用媒体查询方式*/ 
@media screen and (max-device-width: 700px) {
        html{
            font-size: 20px;
        }
    }
    @media screen and (max-device-width: 2000px ) and (min-device-width: 701px) {
        html{
            font-size: 40px;
        }
    }
    /*使用calc计算出font-size*/
html{
        font-size: calc(100vw/80);
    }
  let clintWidth=window.innerWidth/1080 * 100
    document.documentElement.style.fontSize=clintWidth+'px'
使用百分比布局(具有局限性)
1.通过百分比单位可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果
2.计算困难,如果我们要定义一个元素的宽度和高度,按照设计稿,必须换算成百分比单位。
各个属性中如果使用百分比,相对父元素的属性并不是唯一的。比如width和height相对于父元素的width和height,而margin、padding不管垂直还是水平方向都相对比父元素的宽度、border-radius则是相对于元素自身等等,造成我们使用百分比单位容易使布局问题变得复杂。
所以,不建议用%来做响应式布局。
  html{
        height: 100%;
    }
    body{
        width: 100%;
        height: 100%;
    }
    .content-rem{
        width: 50%;
        height: 50%;
        background-color: #dfdfdf;
    }
vw/vh
1.vw(ViewportWidth)、vh(ViewportHeight)视窗宽度、视窗高度,1vw=0.01视窗宽度,1vh=0.01视窗高度
   .content-rem{
        width: 50vw;
        height: 50vh;
        background-color: #dfdfdf;
    }
使用ui框架的栅格布局
1.iview、elementUI的栅格布局为一行24格
2.layui的栅格布局为一行12格
 <el-row :gutter="8">
      <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">
        <transaction-table />
      </el-col>
      <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
        <todo-list />
      </el-col>
      <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
        <box-card />
      </el-col>
    </el-row>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值