zoukankan      html  css  js  c++  java
  • CSS的响应式布局

    响应式布局是什么

    它是相对于固定像素大小的网页而言的,顾名思义,响应式布局就是网页能够响应各种各样不同分辨率大小的设备,能够将网页很好的呈献给用户。

    如何实现响应式布局?

    1、CSS3@media查询

    使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

    语法:

    @media mediatype and|not|only (media feature) {
        CSS-Code;
    }

    媒体类型mediatype:

    描述
    all 用于所有设备
    aural 已废弃。用于语音和声音合成器
    braille 已废弃。 应用于盲文触摸式反馈设备
    embossed 已废弃。 用于打印的盲人印刷设备
    handheld 已废弃。 用于掌上设备或更小的装置,如PDA和小型电话
    print 用于打印机和打印预览
    projection 已废弃。 用于投影设备
    screen 用于电脑屏幕,平板电脑,智能手机等。
    speech 应用于屏幕阅读器等发声设备
    tty 已废弃。 用于固定的字符网格,如电报、终端设备和对字符有限制的便携设备
    tv 已废弃。 用于电视和网络电视

    媒体功能media feature:

    描述
    aspect-ratio 定义输出设备中的页面可见区域宽度与高度的比率
    color 定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0
    color-index 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
    device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的比率。
    device-height 定义输出设备的屏幕可见高度。
    device-width 定义输出设备的屏幕可见宽度。
    grid 用来查询输出设备是否使用栅格或点阵。
    height 定义输出设备中的页面可见区域高度。
    max-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。
    max-color 定义输出设备每一组彩色原件的最大个数。
    max-color-index 定义在输出设备的彩色查询表中的最大条目数。
    max-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。
    max-device-height 定义输出设备的屏幕可见的最大高度。
    max-device-width 定义输出设备的屏幕最大可见宽度。
    max-height 定义输出设备中的页面最大可见区域高度。
    max-monochrome 定义在一个单色框架缓冲区中每像素包含的最大单色原件个数。
    max-resolution 定义设备的最大分辨率。
    max-width 定义输出设备中的页面最大可见区域宽度。
    min-aspect-ratio 定义输出设备中的页面可见区域宽度与高度的最小比率。
    min-color 定义输出设备每一组彩色原件的最小个数。
    min-color-index 定义在输出设备的彩色查询表中的最小条目数。
    min-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最小比率。
    min-device-width 定义输出设备的屏幕最小可见宽度。
    min-device-height 定义输出设备的屏幕的最小可见高度。
    min-height 定义输出设备中的页面最小可见区域高度。
    min-monochrome 定义在一个单色框架缓冲区中每像素包含的最小单色原件个数
    min-resolution 定义设备的最小分辨率。
    min-width 定义输出设备中的页面最小可见区域宽度。
    monochrome 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
    orientation 定义输出设备中的页面可见区域高度是否大于或等于宽度。
    resolution 定义设备的分辨率。如:96dpi, 300dpi, 118dpcm
    scan 定义电视类设备的扫描工序。
    width 定义输出设备中的页面可见区域宽度。

    使用方式:

    • 直接在CSS文件中使用
      @media 类型 and (条件1) and (条件二)
      {
               css样式
      }
    • 使用@import导入
      @import url("css/moxie.css") all and (max-980px);
    • 最常用的:使用link连接,media属性用于设置查询方式
      <link rel="stylesheet" type="text/css" href="css/moxie.css" media=“all and (max-width=980px)”/>

    例子:

    @media only screen and (max- 500px) {
        .gridmenu {
            width:100%;
        }
    
        .gridmain {
            width:100%;
        }
    
        .gridright {
            width:100%;
        }
    }

    2、使用百分比

    由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。

    具体说,CSS代码不能指定像素宽度:xxx px;只能指定百分比宽度: xx%;或者auto;

    3、使用相对大小的字体

    字体也不能使用绝对大小(px),而只能使用相对大小(em)

    浏览器默认1em=16px

     /*字体大小是页面默认大小的100%,即16像素。*/
    body {font: normal 100% Helvetica, Arial, sans-serif;}  
    
    /*h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)*/
    h1 {font-size: 1.5em;}        
    
    /*small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)*/
    small {font-size: 0.875em;}

    4、在网页头部加上viewport标签

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

    viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。

    该属性可以控制视窗口宽度的大小。它可以被设置为实际的具体像素width= 600或为特殊设备设置宽度值。
    viewport设置属性如下:

    • width:可设定数值,或者指定为 device-width
    • height:可设定数值,或者指定為 device-height
    • initial-scale:第一次进入页面的初始比例
    • minimum-scale:允许缩小最小比例
    • maximum-scale:允许放大最大比例
    • user-scalable:允许使用者缩放,1 or 0 (yes or no)

    5、流动布局

    流动布局的含义是各个位置都是浮动的,不是固定不变的

    .main { float: rightright; width: 70%; }    
        
    .leftBar { float: left; width: 25%; } 

    float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。

    6、图片的自动缩放,等比缩放

    img{   
       max-width: 100%;   
    }

     要使图片按等比缩放,一般不需要规定图片高度。且最好不用background-image,因为这样不会按照等比缩放。

  • 相关阅读:
    smary里Js正则表达式不正常
    php7下对微信支付退款申请通知的解密处理
    apache下设置deflate/gzip
    从大表里随机取若干行的效率问题
    Ecshop、Discuz! 等开源产品的局限
    mysql实现ORACLE的connect by prior父子递归查询
    SQL计算字符串里的子字符串出现个数
    UCENTER同步登录工作原理和配置要点
    云服务器:西部数码VS阿里云
    用ftp命令实现主机文件批量更新
  • 原文地址:https://www.cnblogs.com/lmjZone/p/9402772.html
Copyright © 2011-2022 走看看