rem 适配布局 + LESS + 媒体查询

1. rem 基础

 rem 是一个相对单位,类似于 em ,em 是父元素字体大小。

 em 是相对于父元素  的字体大小来说的

 rem 是相对于 html 元素 字体大小来说的

 rem 优点 就是可以通过修改 html 里面的文字大小来改变页面中元素的大小可以整体控制

 比如:根元素(html )设置的 font-size=12px;非根元素设置 width:2rem;则换成px 表示 24px(12px*2rem)

2. 媒体查询(@media)

 @media 可以针对不同的屏幕尺寸设置不同的样式

 语法规范:

  @media  mediatype  and | not | only (media feature){

    CSS - Code;

  }

  • 用 @media  开头
  • mediatype  媒体类型

    all:用于所有设备,

    print:用于打印机和打印预览,

    screen:用于电脑屏幕,平板电脑,手机等

  • 关键字 and  not   only

    and:可以将多个媒体特性连接到一起,相当于“且”的意思

    not:排除某个媒体类型,相当于“非”的意思,可以省略

    only:指定某个特定的媒体类型,可以省略

  • media  feature 媒体特性 必须有小括号包含

    width:定义输出设备中页面可见区域的宽度

    max-width:定义输入设备中页面最大可见区域宽度

    min-width:定义输入设备中页面最小可见区域宽度

 案例:

  @media screen and(max-width:500px){

    body{

      background:pink;

    }

  }

 注意点:

  1. screen 还有 and 必须带上,不能省略

  2. 小括号中的 数字 后面必须跟单位,970px  这个 px 不能省略

  3. 媒体查询最好的方法就是从小到大

3. 媒体查询 + rem 实现元素动态大小变化

 rem 单位是跟着 html 来走的,有了 rem 页面元素可以设置不同大小尺寸

 媒体查询可以根据不同设备宽度来修改样式

 媒体查询 + rem 就可以实现不同设备宽度,实现页面元素大小的动态变化

4. 引入资源(理解)

 当样式比较繁多的时候,可以针对不同的媒体使用不同 stylesheet(样式表)。

 原理,直接在 link 中判断设备的尺寸,然后引入不同的css文件。

 语法规范:

  <link  rel = "stylesheet"  media = "mediatype   and | not | only (media  feature)"  href = " style.css" >

 案例:

  <link  rel = "stylesheet"  media = "screen  and (min-width:320px)"  href = " style320.css" >

  <link  rel = "stylesheet"  media = "screen  and  (min-width:640px)"  href = " style640.css" >

5. Less基础

 Less 变量:变量是指没有固定的值,可以改变的,因为CSS中的一些颜色和数值等经常使用,样式后缀名.less 。

 @变量名:值;

 1. 变量名规范

  • 必须有 @ 为前缀
  • 不能包含特殊字符
  • 不能以数字开头
  • 大小写敏感

 案例:

  @color:pink;// 定义变量

  body{

    color:@color;  // 使用变量

  }

 2. 编译

  通过vscode中的插件 Easy LESS 编译为 css 文件,只要保存一下 Less 文件,会自动生成 CSS文件

 3. Less 嵌套

  1.内层选择器的前面没有 & 符号,则它被解析为父选择器的后代

    CSS中选择器嵌套:

    #header .logo{

      width:10px;

    }

    Less 嵌套写法:

    #header{

      .logo{

        width:10px;

      }

    }

   2. 如果有 & 符号,它就被解析为父元素自身或父元素的伪类(交集|伪类|伪元素选择器)

     CSS中选择器嵌套:

     a:hover{

       color:red;

     }

     Less 嵌套写法:

     a{

       &:hover{

         color:red;

       }

     }

  3.Less 运算

   less 中运算 可以使用 加(+),减(-),乘(*),除(/)四种运算

   运算符中间左右有个空格隔开 1px  +  5

   对于两个值之间只有一个值有单位,则运算结果就取该单位

   对于两个不同的单位的值之间的运算,运算结果的值取第一个值的单位

  案例:

  @font:50px;

  @border:5px +5;

  div{

    width:200px - 50;

    height:200px * 2;

    border:@border  solid #ccc;

    img{

      width:82rem / @font;   //1.65rem

    }

  }

6. rem + less + @media 开发

 动态设置 html 标签 font-size 大小

  ① 假设设计稿是 750px

  ② 假设整个屏幕划分为 15 等分(划分标准不一,可以是20份,也可以是10份)

  ③ 每一份作为 html 字体大小,这里就是 50px

  ④ 在320px 设备的时候,字体大小为 320 / 15 就是21.33px

  ⑤ 用页面元素的大小 除以不同的 html 字体大小 会发现他们的比例还是相同的

  ⑥ 比如 以 750px 为标准设计稿

  ⑦ 一个 100*100像素的页面元素在 750 屏幕下,就是 100 / 50 转换为 rem 是 2rem * 2rem 比例是1:1

  ⑧ 320 屏幕下,html字体大小为 21.33  则 2rem = 42.66px 此时宽和高都是 42.66 但是宽和高的比例还是1:1

  ⑨ 但是已经能实现不同屏幕下 页面元素盒子等比例缩放的效果。

原文地址:https://www.cnblogs.com/qtbb/p/11783520.html

时间: 2024-10-05 20:46:08

rem 适配布局 + LESS + 媒体查询的相关文章

html5 响应式布局(媒体查询)

响应式布局 响应式布局,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用"大势所趋"来形容也不为过.随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式. html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的

常见布局、媒体查询

常见布局实现: 作者:Sweet_KK 链接:https://juejin.im/post/5aa252ac518825558001d5de 来源:掘金 一.水平居中 文本/行内元素/行内块元素居中 #parent{ text-align: center; } ==text-align== 只控制行内内容(文字.行内元素.行内块元素)如何相对于他的块父元素对齐 优缺点 优点:简单快捷,容易理解,兼容性非常好 缺点:只对行内内容有效:属性会继承影响到后代行内内容:如果子元素宽度大于父元素宽度则无效

响应式布局之媒体查询

媒体查询可以根据设备显示器特性设定CSS样式. 媒体查询语法: 1.写在样式里:@media 条件 @media screen and (max-width: 550px){ /*样式*/ } 2.写在link标签里 <link rel="stylesheet" media="screen and (max-width:550px)" href="media.css"/> 媒体查询常用的是检测视口宽度(width)和屏幕宽度(devi

px,rem,em 通过媒体查询统一的代码

@media only screen and (max-width: 1080px), only screen and (max-device-width:1080px) { html,body { font-size:16.875px; } } @media only screen and (max-width: 960px), only screen and (max-device-width:960px) { html,body { font-size:15px; } } @media o

rem适配布局---1. 基础

1. em 在介绍rem之前,先介绍单位em.em是相对于父元素的字体大小来说的,使用的时候要有父元素,且父元素要有字体大小. <body> <div> <p></p> </div> </body> <style> div { font-size: 12px; } /* 1. em是相对于父元素的字体大小来说的 */ p { /* 10em就是10*12=120px */ width: 10em; height: 10em

rem适配布局---3. less

1. less介绍 less是一门CSS扩展语言,也成为CSS预处理器,作为CSS一种形式的扩展,并没有减少CSS的功能,而是在现有的CSS语法之上,为CSS加入程序式语言的特性.它在CSS语法的基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了CSS的缩写,并降低了CSS的维护成本. less官网:http://lesscss.cn/ less是css的预处理语言,它扩展了css的动态特性. 2. 安装 先安装node.js, node.js下载网站:http://nod

rem适配布局

<link rel="stylesheet" href="./style320.css" media="screen and (min-width:320px)"/> <link rel="stylesheet" href="./style640.css" media="screen and (min-width:640px)"/> 原文地址:https://ww

0082 rem适配方案:less+rem+媒体查询、flexible.js+rem

1.让一些不能等比自适应的元素,达到当设备尺寸发生改变的时候,等比例适配当前设备. 2.使用媒体查询根据不同设备按比例设置html的字体大小,然后页面元素使用rem做尺寸单位,当html字体大小变化,元素尺寸也会发生变化,从而达到等比缩放的适配. 技术方案: 1.less+rem+媒体查询 2.flexible.js+rem 总结: 两种方案现在都存在,方案2 更简单,现阶段无需了解里面的js代码. rem实际开发适配方案1 ①假设设计稿是750px ②假设我们把整个屏幕划分为15等份(划分标准

媒体查询 + rem用法

计算方法 计算rem方法: 结合媒体查询 -> 随着设备的改变 更改html font-size的值. ? 媒体查询确定范围?? ? 移动端设计图 : 640px 750px 1080px; dpr 2 2 3 范围 320px 375px @media screen and (max-width:320px){ html{ font-size:12px; } } @media screen and (min-width:321px) and (max-width:375px){ html{ f