2021-06-03

rem:

    r表示root   root是根的意思   指html标签 

    1rem ==> html标签中的font-size的大小 

    1em  ==> 父标签中的font-size的大小如:html标签的font-size设置成了34px

    1rem = 34px 

    2rem = 68px

    3rem = 102px

---------------------------------------

适配:

    在大屏上显示大盒子,在小屏上显示小盒子。

什么是适配?

    如果是大屏,盒子或字体大上设置的大一点

    如果是小屏,盒子或字体大小设置的小一点

10个字,在不同的手机,都是撑满一行。

---------------------------------------

使用媒体查询,实现适配:

    媒体查询 类似于 编程语言中的if else

---------------------------------------

需要利用媒体查询+rem来适配,步骤如下:

    1)得到设计稿  一般情况下,设计稿的尺寸是750px。

    2)通常我们把浏览器的模拟器也调整成750px

    3)严格按照设计稿,以rem为单位,把设计稿还原出来。

    4)开始写样式,需要确定html标签的font-size,通常我会把fontsize

        定成100px,叫rem的基准值。 

        有一个盒子,width是20px  1rem = 100px。 盒子是20px

        换成rem  换成0.2rem

        又量出一个盒子的宽度是55px,换成rem就是0.55rem。

        说白了,量设计稿,量出来的Px单位,只需要除于100,就成rem单位

        到此,你先不要管适配,你就在750px的屏上,还原750的设计稿。

    5)最后一步,把写好的页面,迁移到其它屏上的,完成适配。

        在迁移时,也需要换算。 换算如下:

            在750px的屏上,html的font-size的大小为100px。

            在375px的屏上,html的font-size的大小为50px。

            在320px的屏上,html的font-size的大小为42.6666666px。

            在414px的屏上,html的font-size的大小为55.2px。

---------------------------------------

如果使用媒体查询+rem来适配,需要写如下代码:

    @media only screen and (width:750px) { html{ font-size: 100px; } }

    @media only screen and (width:375px) { html{ font-size: 50px; } }

    @media only screen and (width:320px) { html{ font-size: 42.6666px; } }

    @media only screen and (width:414px) { html{ font-size: 55.2px; } }

    // ....

    // ....

    如果我们写要适配的屏比较多,那么我们需要写大量的媒体查询的代码。

---------------------------------------

JS+rem来适配,步骤如下:   

Rem适配

  • 适配:在大屏上显示大盒子,在小屏上显示小盒子。如果是大屏,盒子或字体大上设置的大一点;如果是小屏,盒子或字体大小设置的小一点。效果:字体大小随着屏幕变化而变化。使用媒体查询,实现适配。媒体查询类似于编程语言中的if else。
  •  
  1. px:指的是逻辑像素,也叫css像素,在适配时,使用px作为单位并不合适。
  2. em: 指的是一个汉字的宽度,2em表示两个汉字的宽度。

1em = 1个font-size的大小。Font-size有继承性,如果给父标签设置font-size,它的子标签都继承。如:

body{

          font-size20px;

        }

        div{/* div的的font-size:2*20是40px */

            font-size:2em;

        }

        span{/* 父元素是div,span的font-size是:80px*/

            font-size:2em;

        }

<body>

    <div>国破山河在<span></span>春草木深</div>

</body>

  1. Rem:r表示root ,root是根的意思,指html标签 

    1rem ==> html标签中的font-size的大小 

1em  ==> 父标签中的font-size的大小

如:样式:htmlfont-size25px; }

        divfont-size2rem; }

        spanfont-size2rem; }

<body>

    <div>国破山河在<span></span>春草木深</div>

</body>

  • 利用媒体查询+rem来适配 :
  1. 得到设计稿一般情况下,设计稿的尺寸是750px。
  2. 通常我们把浏览器的模拟器也调整成750px。
  3. 严格按照设计稿,以rem为单位,把设计稿还原出来。
  4. 开始写样式,需要确定html标签的font-size,通常把fontsize定成100px,叫rem的基准值。先量设计稿,量出来的为Px单位,只需要除于100,就换成rem单位。 到此,你先不要管适配,在750px的屏上,还原750的设计稿。
  5. 把写好的页面,迁移到其它屏上的,完成适配。

在迁移时,也需要换算。 换算如下:

            在750px的屏上,html的font-size的大小为100px。

            在375px的屏上,html的font-size的大小为50px。

            在320px的屏上,html的font-size的大小为42.6666666px。

            在414px的屏上,html的font-size的大小为55.2px。

  1. 如果使用媒体查询+rem来适配,需要写如下代码:

  @media only screen and (width:750px) { htmlfont-size100px; } }

        @media only screen and (width:375px) { htmlfont-size50px; } }

        @media only screen and (width:320px) { htmlfont-size42.6666px; } }

        @media only screen and (width:414px) { htmlfont-size55.2px; } }

 

  • js+rem适配 :获取窗口,通过写一个函数来判断屏幕大小从而改变字体大小。

<script>

        let docEle = window.document.documentElement; // 表示获取窗口

        // 此函数是计算不同屏的html标签的font-size

        function refresh(){

            // width 表示手机屏的宽度

            let width = docEle.getBoundingClientRect().width; // 一屏的宽度 

            if(width>750){  width=750 }

            let fs = width / 7.5

            document.querySelector("html").style.fontSize = fs + "px"

        }

 

        refresh();  

 

        // window叫事件源   addEventListenere用来绑定事件的

        // resize叫浏览器窗口大小改变事件  ()=>{}叫事件监听器

        window.addEventListener("resize",()=>{

            refresh()

        })

        // pageshow 页面显示出来

        window.addEventListener("pageshow",()=>{

            refresh()

        })

    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值