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

    from:http://www.lamp99.com/responsive-web-design-css3-media-queries.html

    复制过来代码有点儿乱,就是一些样式,懒得弄了。

    开始研究响应式web设计,CSS3 Media Queries是入门。

    Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表。换句话说,其允许我们在不改变内容的情况下,改变页面的布局以精确适应不同的设备。

    那么,Media Queries是如何工作的?

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

    1 <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部分
    1 <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>标签里:

    1 @media screenand (max- 600px) {/*当屏幕尺寸小于600px时,应用下面的CSS样式*/}
     

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

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

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

    ———————华丽的分割线———————————–

    以下是demo

    一个三栏布局的,在不同的尺寸下,变为两栏,再变为一栏~

    代码:

    01 <meta charset="utf-8">
    02 <meta name="viewport" content="width=device-width, initial-scale=1">
    03  
    04 <style>
    05 body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
    06     padding: 0;
    07     margin: 0;
    08 }
    09 .content{
    10     zoom:1;
    11 }
    12 .content:after{
    13     content:".";
    14     display: block;
    15     height: 0;
    16     clear: both;
    17     visibility: hidden;
    18 }
    19 .leftBox, .rightBox{
    20     float: left;
    21      20%;
    22     height: 500px;
    23     margin: 5px;
    24     background: #ffccf7;
    25     display: inline;
    26     -webkit-transition: width 1s ease;
    27     -moz-transition: width 1s ease;
    28     -o-transition: width 1s ease;
    29     -ms-transition: width 2s ease;
    30     transition: width 1s ease;
    31 }
    32 .middleBox{
    33     float: left;
    34      50%;
    35     height: 800px;
    36     margin: 5px;
    37     background: #b1fffc;
    38     display: inline;
    39     -webkit-transition: width 1s ease;
    40     -moz-transition: width 1s ease;
    41     -o-transition: width 1s ease;
    42     -ms-transition: width 1s ease;
    43     transition: width 1s ease;
    44 }
    45 .rightBox{
    46     background: #fffab1;
    47 }
    48 @media only screenand (min- 1024px){
    49     .content{
    50              1000px;
    51             margin: auto
    52         }
    53 }
    54 @media only screenand (min- 400px)and (max- 1024px){
    55     .rightBox{
    56          0;
    57     }
    58     .leftBox{ 30%}
    59     .middleBox{ 65%}
    60 }
    61 @media only screenand (max- 400px){
    62     .leftBox, .rightBox, .middleBox{
    63          98%;
    64         height: 200px;
    65     }
    66 }
    67 </style>
    68  
    69   
    70  
    71 <divclass="content">
    72   <divclass="leftBox"></div>
    73   <divclass="middleBox"></div>
    74   <divclass="rightBox"></div>
    75 </div>
  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/qianshui/p/4502798.html
Copyright © 2011-2022 走看看