zoukankan      html  css  js  c++  java
  • 响应式布局 @media

    响应式布局

    响应式和移动端都可以实现 大屏和小屏的适配,但不同的是
    移动端 是做了两个网页,一个pc端的,一个移动端的
    而响应式布局是同一个网页,网页可以根据不通的设备或窗口大小呈现出不同的效果
    使用响应式布局,可以使一个网页适用于所有设备

    虽然在体验上 响应式 没有 移动端的那么好,但也多提供了一个选择

    响应布局的关键就是 媒体查询
    通过媒体查询,可以为不通的设备,或设备不同状态来分别设置样式

    媒体查询

    1)设置meta标签

    <meta name="viewport" content="width=device-width,initial-scale=1.0,maxium-scale=1.0,user-scaleable=no">
    

    说明:
    以上标签的内容只能被移动设备识别。
    viewport:视口(移动端)。
    width=device-width:宽度等于当前设备的宽度。
    initial-scale=1.0:初始缩放比例(默认为1.0)
    minimum-scale=1.0:允许用户缩放到的最小比例(默认为1.0)
    maximum-scale=1.0:允许用户缩放到的最大比例(默认为1.0)
    user-scaleable=no:用户是否可以手动缩放(默认为no)

    2)设置IE渲染方式默认为最高版本

    <meta http-equiv="x-ua-compatible" content="IE=Edge,chrome=1">
    

    说明:
    以上代码表示如果浏览器有chrome插件,将以chrome提供的V8引擎渲染页面;如果没有,将以IE
    的最高版本渲染页面。

    3)引入兼容的JS文件

    <!-- [if lt IE 9]>
    <script src="https://oss.maxcdn.cm/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.cm/libs/respond.js/1.3.0/respond.min.js"></script>
    <![endif] -->
    

    说明:
    因为IE8及IE8以下版本既不支持html5,也不支持CSS3 Media,所以我们需要加载JS文件来处理这个兼容。
    上面的代码是一个注释语句,也就是说,IE9及以上的版本不会编译这几行代码。

    进入CSS3提供的媒体查询

    a)引入外部CSS文件时使用

    <link rel="stylesheet" href="css/screen480.css" media="screen and (max-480px)" >
    

    如果屏宽为480px及以下,将加载screen480.css文件。

    <link rel="stylesheet" href="css/screen800.css" media="screen and (min-480px) and (max-800px)" >
    

    如果屏宽为480px以上且在800px以下,将加载screen800.css文件。

    <link rel="stylesheet" href="css/screengt800.css" media="screen and (min-800px)" >
    

    如果屏宽为800px以上,将加载screengt800.css文件。

    设备:

    1. all 所有设备
    2. screen PC端显示器
    3. print 打印机或打印预览图
    4. handheld`便携设备
    5. tv 电视
    6. speech 音频合成器
    7. braille 盲人点触设备
    8. embossed 盲人打印机
    9. projection 投影设备
    10. tty 固定密度字母栅格设备
    11. only 用来排除不支持媒体查询的浏览器

    b)在style标签中用@media定义

    @media 查询设备 {}

    可以使用 , 连接多个媒体类型,这样它们之间就是一个或的关系

    可以在媒体类型前添加一个 only,表示只有
    only 的使用主要是为了兼容一些老版本浏览器

    /* @media print,screen{
        body{
        	background-color: #bfa;
        }
    } */
    
    @media only screen {
        body{
            background-color: #bfa;
        }
    }
    

    媒体特性

    ​ 媒体特性:

    • width 视口的宽度

    • height 视口的高度

    • min-width 视口的最小宽度(视口大于指定宽度时生效)

    • max-width 视口的最大宽度(视口小于指定宽度时生效)

    样式切换的分界点,我们称其为断点,也就是网页的样式会在这个点时发生变化

    一般比较常用的断点:

    1. 小于768 超小屏幕 max-width=768px
    2. 大于768 小屏幕 min-width=768px
    3. 大于992 中型屏幕 min-width=992px
    4. 大于1200 大屏幕 min-width=1200px

    @media 后跟多个媒体特性时,,and,还有一种是 not 对后面整体取反,但不常用

    /* 常用格式 */
    @media only screen and (min- 500px) and (max-700px){
        /* 只对屏幕小于700px 大于500px 时的设置 */
        body{
            background-color: #bfa;
        }
    }
    
    /* 或者这样 */
    @media only screen{
        @media (min- 500px) and (max-700px){
            body{
                background-color: #bfa;
            }
        }
    }
    
  • 相关阅读:
    LightProxy修改请求头、cookie
    webpack2项目中引入@vue/composition-api报错Cannot find module
    webpack2项目引入ts后报错@ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-compiler?
    mac brew 安装指定版本后 node命令找不到
    python数据类型详解
    更换Linux(CentOS) yum源
    Python读写文件
    Python异常处理try...except、raise
    Python删除空格字符串两端的空格
    python的urllib模块中的方法
  • 原文地址:https://www.cnblogs.com/Liwker/p/14335399.html
Copyright © 2011-2022 走看看