响应式布局

1、媒体查询@media

CSS3媒体查询可以让我们针对不同的媒体类型定义不同的样式,当重置浏览器窗口大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

选择300px、600px、900px、1200px作为分割点。根据浏览器宽度,设置不同的样式。

效果图:

代码:

<template>
  <div class="media-box">
    媒体查询响应式布局
  </div>
</template>

<script>
export default {

}
</script>

<style>
.media-box{
  color: #fff;
  /* 原有样式会被媒体查询样式覆盖掉 */
  background: #f90;
}
/* 浏览器宽度范围不同,显示不同的样式 */
@media (min-width: 0px) and (max-width: 300px) {
    .media-box{
        background: #0f0;
    }
}
@media (min-width: 300px) and (max-width: 600px) {
    .media-box{
        background: #0ff;
    }
}
@media (min-width: 600px) and (max-width: 900px) {
    .media-box{
        background: #ff0;
    }
}
@media (min-width: 900px) and (max-width: 1200px) {
    .media-box{
        background: #0ea8f0;
    }
}
/* 最小宽度1200px的样式 */
@media (min-width: 1200px) {
    .media-box{
        background: #7204b3;
    }
}
</style>

2、百分比布局%

通过百分比单位,可以使得浏览器中组件的宽和高随着浏览器的高度的变化而变化,从而实现响应式的效果。

效果图: 

代码:

<template>
    <div class="main-box">
      百分比布局
      <div class="percentage">
        百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局百分比布局
      </div>
    </div>
  </template>
  
  <script>
  export default {
  
  }
  </script>
  
  <style>
  .percentage{
    width: 100%;
    height: 100%;
    background: #09f;
  }
  </style>

3、视图窗口布局vw/vh

CSS3中引入了一个新的单位vw/vh,与视图窗口有关,vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度。

vw  相对于视窗的宽度,1vw 等于视口宽度的1%,即视窗宽度是100vw

vh   相对于视窗的高度,1vh 等于视口高度的1%,即视窗高度是100vh

vmin   vw和vh中的较小值

vmax   vw和vh中的较大值

效果图:

代码:

<template>
    <div class="main-box">
      视图窗口布局
      <div class="view">
        视口布局vw/vh。视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局视图窗口布局
      </div>
    </div>
  </template>
  
  <script>
  export default {
  
  }
  </script>
  
  <style>
  .view{
    width: 100vw;
    height: 100vh;
    background: #f90;
  }
  </style>

4、rem布局

rem单位的特点: CSS3新增的单位,并且移动端的支持度很高,单位是动态根据html元素的font-size的值进行换算,根元素的font-size相当于提供了一个基准,当页面的size发生变化时,只需修改根元素font-size大小,即可完成适配。例如根元素为37.5px,1rem = 37.5px。12px = 12 / 37.5 = 0.32rem。

效果图:

代码:

<template>
    <div class="main-box">
      rem布局
      <div class="rem-box">
        rem单位
      </div>
      <div class="text">
        px单位
      </div>
    </div>
  </template>
  
  <script>
  export default {
  
  }
  </script>
  
  <style>
  .rem-box{
    width: 5rem;
    font-size: 1.2rem;
    height: 100%;
    background: #09f;
  }
  .text{
    margin-top: 20px;
    font-size: 26px;
    width: 100px;
    height: 50px;
    background: #099;
  }
  </style>

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&做梦的少年&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值