自媒体查询、flex弹性布局、响应式布局及 rem 布局

功能简介:

    自媒体查询、rem布局、响应式布局技术,是三个不同的技术。 自媒体查询 常用在适配不同的设备显示场景下,根据屏幕大小显示不同页面,但功能大致不变的这么一个技术。rem布局 它是一个长度单位,这个长度单位是根据‘根元素’的字体大小的单位确定的(根元素字体大小 = 1rem)。响应式布局 它是在页面宽度改变时,整个页面或者页面中的局部随着页面的缩放进行响应并实时变化(响应式布局和自媒体查询有区别)。在如今复杂的开发中这几个技术越来越密不可分,在项目中可以通过实际需求进行搭配。


自媒体查询:

        功能:自媒体查询主要是设置不同的设备屏幕下的显示样式。 

        获取浏览器或设备宽度:

                    min-device-width (设备的宽度)\   min-width  (浏览器的宽度)   (注释:也可以获取高度,就是将width改写成height)

        方法:

 公共部分:              
 <meta name="viewport" content="width=device-width, initial-scale=1.0">

         内部样式引用(可以编写多组):      
               1、 <style> @media screen and (min-device-width:200px) and (max-device-width:300px) {  /* 编写样式 */  } </style> 

               2、 <style media='(min-device-width:200px) and (max-device-width:300px)'> /* 编写样式 */  </style>  

        外部样式引用(可以引用多个外部样式表):

                1、<link rel="stylesheet" href="样式路径" media='(min-device-width:200px) and (max-device-width:300px)'>

                    

flex弹性布局:

         功能:  就是使用flex对页面进行布局,也可以是响应式的。

         方法:   一下方法为flex常用方法,具体学习可以点击链接  flex布局

                作用在父元素的方法:

                        flex-direction:  设置主轴方向

                        flex-wrap:  是否让子元素换行

                        justify-content:设置主轴对齐方式

                        align-items:  设置交叉轴的对齐方式

                作用在子元素的方法(简写):

                        flex:参数一(数字)、参数二 (数字) 、参数三(px / %)       

                   参数一:子元素平分多余父元素的空间。     参数二:子元素按比例压缩超出父元素的宽度。      参数三:设置该元素的宽。

                   


rem的使用方法

        概念:指相对跟元素的字体大小的单位。(补充:rem于em的区别一个是以根元素字体大小为参考,em是以父级元素为参考)

        使用方法:

                一般使用媒体查询+rem或js,在不同宽度的窗口下自动调节字体大小。

手动设定:

        <style> html{ font-size: 18px;  }  </style>    1rem = 18px

js方式自适应:

        const c = ()=>{

                let w = document.documentElement.clientWidth; // 获取设备的宽度

                let n = (20*(w/320)>40?40+'px':(20*(w/320)+'px')) //20为参数  320设备宽度  40显示最大字号

                document.documentElement.style.fontSize = n        // 设置根字体大小

        }

        window.addEventListener('load',c)     //初始值

        window.addEventListener('resize',c)     //屏幕改变的是的值

    </script>


自适应布局

布局特点:不同设备对应不同的HTML或者局部自适应。(不同的设备不同的页面)

js实现方法:
<script>

        const redireat = ()=>{

            let userAgent = nevigator.userAgent.toLowerCase()   //获取设备信息

            let device = /ipad|iphone|midp|rv:1.2.3.4|ucwed|android|windows ce|windows mobile/   //适配不同设备

            if(derice.test(userAgent)){

                window.location.href = 'move.html'  //跳转移动端页面

            }else{

                window.location.href='pc.html'   //跳转PC端页面

            }

        }

        redireat()

    </script>



响应式布局

        布局特点:确保一个页面在所有终端上,都能显示出令人满意的效果。(一套方案,处处运行。)

        设计思路:使用自媒体查询及用 % 或 rem 作为单位,对不同视口设备进行编写样式。


rem弹性布局

            布局特点:为了保证在各种屏幕上得不失真,就要根据实际屏幕宽度做等比换算。(一套方案,是不同尺寸、分辨率的视口呈现出较好的效果。)

             设计思路:使用自媒体查询及用 % 或 rem 作为单位,对不同视口设备进行编写样式。


总结:

        在项目开发中,根据项目的实际情况选择不同的技术的搭配,这样才能实现业务的效果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容