屏幕適配佈局

固定寬度,兩邊留白

viewport縮放

上面兩種方法弊端較多,實現起來也比較簡單;贊不記錄

rem等比例適配

html {
    font-size : 20px;
}
@media only screen and (min-width: 320px){
    html {
        font-size: 10px !important;
    }
}
@media only screen and (min-width: 384px){
    html {
        font-size: 12px !important;
    }
}
@media only screen and (min-width: 480px){
    html {
        font-size: 15px !important; 
    }
}
@media only screen and (min-width: 640px){
    html {
        font-size: 20px !important; 
    }
}

rem是基於根元素的相對單位
上述示例結果如下:

CSS @media

  1. 簡介

    通過不同的媒體類型和條件定義樣式表規則。媒體查詢讓CSS可以更精確作用於不同的媒體類型和同一媒體的不同條件。媒體查詢的大部分媒體特性都接受min和max用於表達”大於或等於”和”小與或等於”。如:width會有min-width和max-width媒體查詢可以被用在CSS中的@media和@import規則上,也可以被用在HTML和XML中。通過這個標籤屬性,我們可以很方便的在不同的設備下實現豐富的界面,特別是移動設備,將會運用更加的廣泛。

  2. 設備類型(media type):

    all所有設備;
    screen 電腦顯示器;
    print打印用紙或打印預覽視圖;
    handheld便攜設備;
    tv電視機類型的設備;
    speech語意和音頻盒成器;
    braille盲人用點字法觸覺回饋設備;
    embossed盲文打印機;
    projection各種投影設備;
    tty使用固定密度字母柵格的媒介,比如電傳打字機和終端。

  3. 設備特性(media feature):

媒體特性 可用媒體類型 接受min/max 簡介
width 視覺屏幕/觸摸設備 yes
heigth 視覺屏幕/觸摸設備 yes
device-width 視覺屏幕/觸摸設備 yes
device-heigth 視覺屏幕/觸摸設備 yes
orientation portrait landscape 位圖介質類型 no
aspect-ratio 位圖介質類型 yes
device-aspect-ratio 位圖介質類型 yes 定義’device-
color 視覺媒體 yes
color-index 視覺媒體 yes
monochrome 視覺媒體 yes 定義在一個單色框架緩衝區中每像
resolution 位圖介質類型 yes
scan progressive interlace 電視類 no
grid 柵格設備 no 用來查詢輸出設備是否使用柵格或點陣。只有1和0纔是有效值,1代表是,0代表否

4. 語法:以下表達式摘自@杜瑤大神的css3手冊

@media:<media_query_list>
<media_query_list>:[<media_query>[',' <media_query>]*]?
<media_query>:[only | not]? <media_type> [and <expression>]* | <expression> [and <expression>]*
<expression>:'('<media_feature>[:<value>]?')'
不理解的查查正則表達式手冊,可以像理解sql去理解這個表達式

示例一:在link中使用@media:

<link rel="stylesheet" type="text/css" media="only screen and (max-width: 480px),only screen and (max-device-width: 480px)" href="link.css"/>

上面使用中only可省略,限定於計算機顯示器,第一個條件max-width是指渲染界面最大寬度,第二個條件max-device-width是指設備最大寬度。

*對於原文有:rel=”external nofollow”;本人覺得可以去掉* *rel=”external”打開新窗口;rel=”nofollow”告訴搜索引擎,該鏈接與本站無關,請不要傳遞本站任何權重。*

示例二:在樣式表中內嵌@media:

@media (min-device-width:1024px) and (max-width:989px),
screen and (max-device-width:480px),
(max-device-width:480px) and (orientation:landscape),
(min-device-width:480px) and (max-device-width:1024px) and (orientation:portrait) {srules}

在示例二中,設置了電腦顯示器分辨率(寬度)大於或等於1024px(並且最大可見寬度爲989px);屏寬在480px及其以下手持設備;屏寬在480px以及橫向(即480尺寸平行於地面)放置的手持設備;屏寬大於或等於480px小於1024px以及垂直放置設備的css樣式。

從上面的例子可以看出,字符間以空格相連,選取條件包含在小括號內,srules爲兼容設置的樣式表,包含在中括號裏面。only(限定某種設備,可省略),and(邏輯與),not(排除某種設備)爲邏輯關鍵字,多種設備用逗號分隔,這一點繼承了css基本語法。

**注意and的使用** 5、邏輯關鍵字:
關鍵字 說明
only 限定某種設備類型
and 邏輯與,連接設備名與選擇條件、選擇條件1與選擇條件2
not 排除某種設備
**@media 示例**
<!DOCTYPE html>
<head>
    <meta charste="utf8"> 
    <meta name="viewport" content="width=device-width; user-scalbale=no; initial-scale=1.0">
    <link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="link.css"/>
    <!--[if lt IE 9]>
         <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js">
    </script> 
    <![endif]-->
    <style type="text\css">
        /* 禁用iPhone中Safari的字號自動調整 */
        html {
            -webkit-text-size-adjust: none;
        }
        /* 設置HTML5元素爲塊 */
        article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
            display: block;
        }
        /* 設置圖片視頻等自適應調整 */
        img {
            max-width: 100%;
            height: auto;
            width: auto\9; /* ie8 */
        }
        .video embed, .video object, .video iframe {
            width: 100%;
            height: auto;
        }
    </style>
</head>
本博文只是自己的學習筆記,寫的過程中參考以下博文(都很好,感謝原博主)
  1. web app變革之rem
  2. 響應式佈局這件小事
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章