赶快收藏,前端页面适配方案来了

一、固定布局(PC)(静态布局)

像素px作为页面的基本单位,不管设备和浏览器宽度,只设计一套尺寸

二、不同分辨率加载css文件

可以根据不同的屏幕分辨率,来执行对应的css文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Document</title>

    <script>

        // 分辨率大于等于1680,大部分为1920的范围情况下,调用此css
        if(window.screen.width >= 1680){
            document.write('<link rel="stylesheet" href="css/a.css"></link>')
        }
        else if(window.screen.width >= 1600){ // 分辨率在1600~1680之间,调用此css
            document.write('<link rel="stylesheet" href="css/b.css"></link>')
        }else { // 分辨率小于1600的范围情况下,调用此css
            document.write('<link rel="stylesheet" href="css/c.css"></link>')
        }


    </script>

</head>
<body>


    
</body>
</html>

注意:js必须写在head标签中,这样在加载页面内容之前,可以提前把css样式加载处理

三、媒体查询

媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定css样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。

link元素中的css媒体查询

<link rel="stylesheet" media="(max-width:800px)" href="a.css"/>

css3必须设置

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
viewport:视口
width=device-width:将布局视口设置成理想的视口
initial-scale:[0,10]:初始缩放比例,1表示不缩放
maximum-scale:[0,10]:最大缩放比例
user-scalable:yes/no:是否允许手动缩放页面,默认值为yes

语法:

/* 大屏幕 */
@media only scree and (min-width:1200px){
    /* 对应的样式 */
}

/* 中等屏幕 */
@media only screen and (min-width:992pxand (max-width:1199px) {
    /* 对应的样式 */
}

/* 小屏幕 */
@media only screen and (min-width:768pxand (max-width:991px) {
    /* 对应的样式 */
}

/* 手机端显示 */
@media only screen and (max-width:767px) {
    /* 对应的样式 */
}

四、rem布局(弹性布局)

1、媒体查询结合rem布局

媒体查询动态修改根元素大小,使得rem一直在跟着变化,响应式就成功了

2、flexble.js和rem布局

简洁高效的rem适配方案:flexible.js 它的原理是把当前设备划分为10份,但是不同设备下,比例还是一致的 我们要做的就是确定好当前设备的html文字大小

flexible.js下载地址

https://github.com/amfe/lib-flexible

实现详情

2.1、下载flexible.js放到项目目录里去

|  index.html
|
|-- css
    |-- index.css
|
|-- images
|-- js
    |-- flexible.js

2.2、引入flexible.js

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="index.css">
    <!-- 引入flexible.js文件 -->
    <script src="js/flexible.js"></script>
</head>
<body>


    
</body>
</html>

2.3、index.css

body{
    min-width320px;
    max-width750px;
    /* flexible给我们划分了10份,所以应该是10rem */
    width10rem;
    margin0 auto;
    line-height1.5;
    font-family: Arial, Helvetica;
}

五、vw+vh+rem

1、vm、vh是基于视口的布局方案,所以这个meta元素的视口必须声明

<meta name="viewport" content="width=device-width, initial-scale=1.0">

2、rem布局-解决字体适配

rem布局原理:根据css的媒体查询功能,更改html根字体大小,实现字体大小随屏幕尺寸变化


@media only scree and (min-width:1280pxand (max-width:1600px){
    html{
      font-size:14px
    }
}


@media only screen and (min-width:960pxand (max-width:1280px) {
    html{
      font-size:12px
    }
}


@media only screen and (max-width:960px) {
    html{
      font-size:10px
    }
}

3、vw、vh、rem的使用

<template>
    <div class="container">
        
    </div>
</template>

<script>

</script>

<style >

    .container{
        width50vw;
        height20vh;
        line-height20vh;
        font-size1.5rem;
        margin0 auto;
    }

</style>

注意:

    1、上面代码中的50vw代表了此div占据视口宽度的50%,高度占据视口高度的20%,并且会随着视口的变化,进行自适应,字体则是1.5倍的html根字体大小,并且根据媒体查询进行字号变化

    2、可通过插件自动对rem、px等单位进行转换


原文始发于微信公众号(数字游民PG):赶快收藏,前端页面适配方案来了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/174051.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!