響應式網站設計-media Query (媒體查詢)__響應式

來源:互聯網
上載者:User

在一些簡單的站,我們通常採用響應式讓網站相容各類螢幕大小,這裡主要介紹下media , 通過media來實現不同螢幕大小下使用不同樣式處理。

首先我們需要引入 Viewport 屬性,為了確保適當的繪製和觸屏縮放,需要在 head標籤中添加 viewport 中繼資料標籤

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">viewqport 是我們手機上的虛擬視窗、視覺視窗、顯示地區,他的作用就是建立一個虛擬視窗,meta 標籤的viewport屬性是在行動裝置上設定原始大小顯示和是否縮放的聲明,可以使用的參數設定如下:width:控制 viewport 的大小,可以指定的一個值,如果 600,或者特殊的值,如 device-width 為裝置的寬度(單位為縮放為 100% 時的 CSS 的像素)。 height:和 width 相對應,指定高度。 initial-scale:初始縮放比例,也即是當頁面第一次 load 的時候縮放比例。 maximum-scale:允許使用者縮放到的最大比例。 minimum-scale:允許使用者縮放到的最小比例。 user-scalable:使用者是否可以手動縮放

示範代碼如下:

<!doctype html><html>    <head>        <!-- 加入這行代碼-->        <meta name="viewport" content="width=device-width, initial-scale=1">    </head>    <body>    </body></html>

將Viewport引入頁面,下面我們就來介紹下media query

Media Query寫法如下:

@media screen and (max-width:989px){    /* 這裡面寫當螢幕寬度 width <=989px 所使用的樣式 */}/* 上面的方式可以縮寫如下(screen不寫,也是預設的是螢幕) */@media (max-width:989px){    /* 這裡面寫當螢幕寬度 width <=989px 所使用的樣式 */}/* 我們也可以寫多個條件來指定 *//* 下面表示當螢幕大於等於 768px 並且小於等於 1200px 所使用的樣式 */@media (min-width:768px) and (max-width:1200px) {    /* 這裡面寫當螢幕寬度 ( 768px <= width <= 989px ) 所使用的樣式 */}<!-- 如果樣式太多,如要單獨寫到一個樣式檔案中,可以使用如下方式引入 --><!-- 下面表示,當螢幕寬度 width<=480px 引入該樣式檔案 demo.css --><link rel="stylesheet" type="text/css" media="screen and (max-width: 480px)"  href="demo.css">

一般我們將螢幕分為如下幾種:

/* 超小螢幕 ( 手機,小於 768px ) */@media (max-width: 768px) {    /*  這裡寫樣式檔案  */}/* 小螢幕 ( 平板,大於等於 768px ) */@media (min-width: 768px) {    /*  這裡寫樣式檔案  */}/* 中等螢幕 ( 案頭顯示器,大於等於 992px ) */@media (min-width: @screen-md-min) {     /*  這裡寫樣式檔案  */}/* 大螢幕 ( 大案頭顯示器,大於等於 1200px )  */@media (min-width: @screen-lg-min) {     /*  這裡寫樣式檔案   */}

下面寫一個比較完整的案例,如下示範針對手機及平板分別進行了處理,
也可以在指定螢幕尺寸下將一些元素隱藏,這裡就沒有全部寫出來了,
大家可以根據自己的思路來實現,代碼如下:

<!doctype html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>demo</title>    <!-- PC螢幕 這裡是引入外部樣式檔案的方式,這裡不用media判斷,預設就使用pc端樣式效果 pc.css -->    <!-- <link rel="stylesheet" href="pc.css"> -->    <!--手機螢幕  這裡是引入外部樣式檔案的方式, 這裡是當螢幕 width <= 760px 使用該樣式檔案 mobile.css -->    <!-- <link rel="stylesheet" media="(max-width:760px)" href="mobile.css"> -->    <!--ipad螢幕 這裡是引入外部樣式檔案的方式 這裡是當螢幕 768px <= width <= 1200px 使用該樣式檔案 ipad.css -->    <!-- <link rel="stylesheet" media="(min-width:768px) and (max-width:1200px)" href="ipad.css">-->    <!-- 如下是直接在樣式中寫入-->    <style>        /* 預設就是pc端效果 所以不需要通過media判斷 */        *{            font-family:微軟雅黑;            margin:0px;            padding:0px;        }           .main{            width:1300px;            margin:0 auto;        }        .top{            height:100px;            background: #272822;            line-height: 100px;            color:#fff;            text-align: center;            font-size:50px;            font-weight: bold;        }        .left{            height:400px;            background: #272822;            line-height: 400px;            color:#fff;            text-align: center;            font-size:50px;            font-weight: bold;            width:642px;            float: left;        }        .right{            height:400px;            background: #272822;            line-height: 400px;            color:#fff;            text-align: center;            font-size:50px;            font-weight: bold;            width:642px;            float: right;        }        .bottom{            height:100px;            background: #272822;            line-height: 100px;            color:#fff;            text-align: center;            font-size:50px;            font-weight: bold;        }        .nav{            height:15px;            clear:both;        }        /*手機螢幕 當螢幕 width <= 760px 指定如下樣式 */        @media (max-width:760px){            .main{                width:95%;            }            .top{                background: #faa;            }            .bottom{                background: #faa;            }            .left{                float:none;                width:100%;                height:100px;                line-height: 100px;                margin-bottom:15px;                background: #faa;            }            .right{                float:none;                width:100%;                height:100px;                line-height: 100px;                background: #faa;            }        }        /*平板螢幕 當螢幕 768px <= width <= 1200px 指定如下樣式 */        @media (min-width:768px) and (max-width:1200px){            .main{                width:95%;            }            .top{                background: #aaf;            }            .left{                float:none;                width:100%;                height:200px;                line-height: 200px;                margin-bottom:15px;                background: #aaf;            }            .right{                float:none;                width:100%;                height:200px;                line-height: 200px;                background: #aaf;            }            .bottom{                background: #aaf;            }        }    </style></head><body>    <div class="main">        <div class="top">top</div>          <div class="nav"></div>        <div class="left">left</div>        <div class="right">rigth</div>        <div class="nav"></div>        <div class="bottom">bottom</div>    </div></body></html>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.