zoukankan      html  css  js  c++  java
  • CSS3 响应式web设计,CSS3 Media Queries

    两种方式,一种是直接在link中判断设备的尺寸,然后引用不同的css文件:

    <link rel="stylesheet" type="text/css" href="styleA.css" media="screen and (min- 400px)">

    意思是当屏幕的宽度大于等于400px的时候,应用styleA.css

    在media属性里:

    • screen 是媒体类型里的一种,CSS2.1定义了10种媒体类型
    • and 被称为关键字,其他关键字还包括 not(排除某种设备),only(限定某种设备)
    • (min- 400px) 就是媒体特性,其被放置在一对圆括号中。完整的特性参看 相关的Media features部分
    <link rel="stylesheet" type="text/css" href="styleB.css"  media="screen and (min- 600px) and (max- 800px)">

    意思是当屏幕的宽度大于600小于800时,应用styleB.css

    其它属性可看这里:http://www.swordair.com/blog/2010/08/431/

    另一种方式,即是直接写在<style>标签里:

    @media screen and (max- 600px) { /*当屏幕尺寸小于600px时,应用下面的CSS样式*/
      .class {
        background: #ccc;
      }
    }

    写法是前面加@media,其它跟link里的media属性相同

    其实基本上就是样式覆盖~,判断设备,然后引用不同的样式文件覆盖。

    要注意的是由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要,否则会出现横向滚动条。

      

    CSS 语法

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

    你也可以针对不同的媒体使用不同 stylesheets :

    <link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

    媒体类型

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

    媒体功能

    描述
    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定义输出设备中的页面可见区域宽度。  

    如今,电脑显示器的屏幕分辨率向越来越大发展,而手机等移动设备终端的分辨率却不可能大到哪里去。越来越多的网站,开始让自己的页面自适合各种分辨率,在小分辨率下显示基本的内容,在大分辨率下显示全部功能,甚至是分多等级的多版本。
    作为web前端开发人员需要知道并且会用这种知识。

    css2的@media

    css2里面虽然支持@media属性,但是能实现的功能比较少,一般只用做打印的时候做特殊定义的CSS。
    语法: @media sMedia { sRules }
    说明:
    sMedia :  指定设备名称。请参阅附录:设备类型
    sRules :  样式表定义
    指定样式表规则用于指定的设备类型。请参阅link对象的media属性(特性)。
    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 设置显示器用字体尺寸
    @media screen {
    BODY {font-size:12pt; }
    }
    // 设置打印机用字体尺寸
    @media print {
    @import "print.css"
    BODY {font-size:8pt;}
    }

    css3的@media

    @media 属性在CSS3里面已经演变成一种 media queries(媒体查询/匹配)了,在CSS3里面,可以用查询语句来匹配各种类型的屏幕。
    语法:@media : { sRules }
    取值:

    1
    2
    <sMedia>:指定设备名称。
    {sRules}:样式表定义。

    说明:
    判断媒介(对象)类型来实现不同的展现。此特性让CSS可以更精确作用于不同的媒介类型,同一媒介的不同条件(分辨率、色数等等).

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    media_query: [only | not]?  [ and  ]*
    expression: (  [: ]? )
    media_type: all | aural | braille | handheld | print | projection | screen | tty | tv | embossed
    media_feature: width | min-width | max-width
    | height | min-height | max-height
    | device-width | min-device-width | max-device-width
    | device-height | min-device-height | max-device-height
    | device-aspect-ratio | min-device-aspect-ratio | max-device-aspect-ratio
    | color | min-color | max-color
    | color-index | min-color-index | max-color-index
    | monochrome | min-monochrome | max-monochrome
    | resolution | min-resolution | max-resolution
    | scan | grid

    解析
    media_query:媒体查询条件。包括了 only not and 这些经常在程序里面出现的逻辑判断。
    expression:表达式。媒体特征的匹配与否。
    media_type:媒体的种类。包括了很多。
    media_feature:媒体的特征。常用的是 min-width max-width 最小最大宽度的判断。

    CSS代码

    1
    2
    3
    4
    5
    body{background:blue;}/*宽度500px-800px之间+高度100px-400px之间 蓝色*/
    @media screen and (max-width:500px){body{background:green;}}/*宽度小于500px时 绿色*/
    @media screen and (min-width:800px){body{background:red;}}/*宽度大于800px时 红色*/
    @media screen and (max-height:100px){body{background:yellow;}}/*高度小于100px时 黄色*/
    @media screen and (min-height:400px){body{background:pink;}}/*高度大于400px时 粉色*/

    HTML代码

    1
    2
    3
    4
    5
    6
    <p>效果演示,请缩小/扩大浏览器的窗口大小注意背景色的变化。逻辑如下:</p>
    <p>/*宽度500px-800px之间+高度100px-400px之间 蓝色*/</p>
    <p>/*宽度小于500px时 绿色*/</p>
    <p>/*宽度大于800px时 红色*/</p>
    <p>/*高度小于100px时 黄色*/</p>
    <p>/*高度大于400px时 粉色*/</p>
     






  • 相关阅读:
    二分图 洛谷P2055 [ZJOI2009]假期的宿舍
    并查集 洛谷P1640 [SCOI2010]连续攻击游戏
    贪心 洛谷P2870 Best Cow Line, Gold
    贪心 NOIP2013 积木大赛
    快速幂 NOIP2013 转圈游戏
    倍增LCA NOIP2013 货车运输
    树形DP 洛谷P2014 选课
    KMP UVA1328 Period
    动态规划入门 BZOJ 1270 雷涛的小猫
    KMP POJ 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/Full--Stack/p/8041274.html
Copyright © 2011-2022 走看看