css3響應式佈局核心(@media常用屬性)

響應式佈局的核心:css3媒體查詢選擇器。

@media相關屬性:

1.媒體類型:
    all:所有媒體(默認值).
    screen:彩色屏幕.
    print:打印預覽.
    projection:手持設備.
    tv:電視.
    braille:盲文觸覺設備.
    embossed:盲文打印機.http://www.daiqiyang.com
    speech:屏幕閱讀器等發聲設備.
    tty:不適用像素的設備.
2.媒體屬性:
    width:瀏覽器窗口的尺寸(可加max min前綴).
        min-width:100px      >=100px
        max-width:100px   <=100px
    height:瀏覽器窗口的尺寸(可加max min前綴).
    device-width:設備獨立像素(可加max min前綴).
        pc端:分辨率.
        移動端:具體看機器的參數.
    device-pixel-ratio:屏幕可見寬度與高度的比率/像素比(可加max min前綴,需要加-webkit前綴).
        pc端:1.
        移動端:具體看機器的參數(DPR).
    orientation:portrait(豎屏) | landscape(橫屏)
3.操作符,關鍵字(only,and,(, or),not)
    only:和瀏覽器兼容性有關,老版本的瀏覽器只支持媒體類型,不支持帶媒體屬性的查詢.
        @media only screen and (min-width:800px){css-style規則}
        @media screen and (min-width:800px){css-style規則}
        在老款的瀏覽器下:
            @media only --> 因爲沒有only這種設備,規則被忽略.
            @media screen --> 因爲有screen這種設備而且老瀏覽器會忽略帶媒體屬性的查詢,執行相應的樣式.
        建議在每次抒寫@media 媒體類型的時候帶上only.http://www.daiqiyang.com
    and:代表與的意思,一般用and來連接媒體類型和媒體屬性.
        類似JS裏的&&.
    or(,):和and相似.
        對於所有的連接選項只要匹配成功一個就能應用規則.
        類似JS裏的||.
    not:取反,類似JS裏的!.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36

1.媒體類型

通常我們使用的都是彩色屏幕(screen),打印預覽(print),其他的都很少使用,條件有限,在這裏就演示這兩種:
css代碼:

      #box{
      width:200px;
      height:200px;
      border:1px solid;
      margin:100px auto;
    }
    @media screen {
      #box{
        border:100px solid;
      }
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

HTML代碼:

    <div id="box"></div>

    1

頁面效果:
screen
可以看見頁面屏幕的時候應用的@media的樣式,但是打印預覽的時候沒有@media的樣式。

媒體類型換成print試試:

    @media print{
      #box{
        border:100px solid;
      }
    }

    1
    2
    3
    4
    5

頁面效果:
print
可以看見頁面屏幕的時候並沒有應用@media的樣式,但是打印預覽的時候應用了@media的樣式。
2.媒體屬性

    瀏覽器窗口的尺寸:width(常用),height(高度一般很少使用)(可加max min前綴)。

    @media screen and (width:1000px) {
      #box{
        border:100px solid
      }
    }

    1
    2
    3
    4
    5

頁面效果:
width
可以看見當瀏覽器窗口大小爲1000px時纔會應用@media的樣式,多1px,少1px都不行。

讓width加上min試試:

    @media screen and (min-width:1000px) {
      #box{
        border:100px solid
      }
    }

    1
    2
    3
    4
    5

頁面效果:
min-width
可以看見瀏覽器窗口寬度再大於等於1000px的時候纔會應用@media的樣式。

讓width加上max試試:

    @media screen and (max-width:1000px) {
      #box{
        border:100px solid
      }
    }

    1
    2
    3
    4
    5

頁面效果:
max-width
可以看見瀏覽器窗口寬度再小於等於1000px的時候纔會應用@media的樣式。

height跟width的原理一樣,在這裏就不過多解釋了。http://www.daiqiyang.com

    device-width:設備獨立像素(可加max min前綴)。

設備獨立像素就是當前顯示設備的分辨率,比如我當前的屏幕分辨率是1920px*1080px,根據這設置下@media:

    @media screen and (device-width:1920px) {
      #box{
        border:100px solid
      }
    }

    1
    2
    3
    4
    5

頁面效果:
device-width
可以看見不管怎麼調整瀏覽器窗口大小,@media的樣式都是生效的。
我們設置成iPhone6的屏幕寬度375px:http://www.daiqiyang.com
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章