響應(yīng)式布局

2020-08-04 10:03 更新

響應(yīng)式布局(Responsive design),意在實(shí)現(xiàn)不同屏幕分辨率的終端上瀏覽網(wǎng)頁(yè)的不同展示方式。通過響應(yīng)式設(shè)計(jì)能使網(wǎng)站在手機(jī)和平板電腦上有更好的瀏覽閱讀體驗(yàn)。

響應(yīng)式布局等于流動(dòng)網(wǎng)格布局,而自適應(yīng)布局等于使用固定分割點(diǎn)來(lái)進(jìn)行布局。自適應(yīng)布局給了你更多設(shè)計(jì)的空間,因?yàn)槟阒挥每紤]幾種不同的狀態(tài)。而在響應(yīng)式布局中你卻得考慮上百種不同的狀態(tài)。雖然絕大部分狀態(tài)差異較小,但仍然也算做差異。它使得把握設(shè)計(jì)最終效果變得更難,同樣讓響應(yīng)式布局更加的難以測(cè)試和預(yù)測(cè)。但同時(shí)說難,這也算是響應(yīng)式布局美的所在。在考慮到表層級(jí)別不確定因素的過程中,你也會(huì)因此更好的掌握一些基礎(chǔ)知識(shí)。當(dāng)然,要做到精確到像素級(jí)別的去預(yù)測(cè)設(shè)943*684像素視區(qū)里的樣子是很難的,但是你至少可以很輕松的確定它是能夠正常工作的,因?yàn)轫?yè)面的基本特性和布局結(jié)構(gòu)都是根據(jù)語(yǔ)義結(jié)構(gòu)來(lái)部署的。

響應(yīng)式設(shè)計(jì)的步驟:

1. 設(shè)置 Meta 標(biāo)簽

大多數(shù)移動(dòng)瀏覽器將HTML頁(yè)面放大為寬的視圖(viewport)以符合屏幕分辨率。你可以使用視圖的meta標(biāo)簽來(lái)進(jìn)行重置。下面的視圖標(biāo)簽告訴瀏覽器,使用設(shè)備的寬度作為視圖寬度并禁止初始的縮放。在<head>標(biāo)簽里加入這個(gè)meta標(biāo)簽。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

注意:user-scalable = no 屬性能夠解決 iPad 切換橫屏之后觸摸才能回到具體尺寸的問題。 

2. 通過媒介查詢來(lái)設(shè)置樣式 Media Queries

Media Queries 是響應(yīng)式設(shè)計(jì)的核心。

它根據(jù)條件告訴瀏覽器如何為指定視圖寬度渲染頁(yè)面。假如一個(gè)終端的分辨率小于 980px,那么可以這樣寫:

//code from http://caibaojian.com/356.html
@media screen and (max-width: 980px) {
  #head { … }
  #content { … }
  #footer { … }
}

這里的樣式就會(huì)覆蓋上面已經(jīng)定義好的樣式。

3. 設(shè)置多種試圖寬度

假如我們要設(shè)定兼容 iPad 和 iphone 的視圖,那么可以這樣設(shè)置:

/** iPad **/
@media only screen and (min-width: 768px) and (max-width: 1024px) {}
/** iPhone **/
@media only screen and (min-width: 320px) and (max-width: 767px) {}

下面是一個(gè)關(guān)于響應(yīng)式布局的簡(jiǎn)單實(shí)例:


<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style>
    .a {
      border: 1px solid #000000;
      width: 100px;
      height: 100px;
      background-color: #000000;
    }
    @media only screen and (min-width: 300px) and (max-width: 640px) {
      .a {
        background-color: red;
      }
    }
    @media only screen and (min-width: 700px) {
      .a {
        background-color: green;
      }
    }
    @media only screen and (max-width:200px) {
      .a {
        background-color: blue;
      }
    }
  </style>
</head>
<body>
  <div class="a"></div>
</body>
</html>



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)