web前端開發之幾種布局方式之響應式布局

2021-10-05 20:53:12 字數 4344 閱讀 4751

即傳統web設計,對於pc設計乙個layout,在螢幕寬高有調整時,使用橫向和豎向的滾動條來查閱被遮掩部分; 

意思就是不管瀏覽器尺寸具體是多少,網頁布局就按照當時寫**的布局來布置; 

對於移動裝置,單獨設計乙個布局,使用不同的網域名稱如wap.或m.。

彈性布局是css3引入的強大的布局方式,用來替代以前web開發人員使用的一些複雜而易錯hacks方法(如使用float進行類似流式布局)。

其中flex-flow是flex-direction和flex-wrap屬性的簡寫方式,語法如下:

flex-flow: ||

flex-direction: row(初始值) | row-reverse | column | column-reverse

flex-wrap: nowrap(初始值) | wrap | wrap-reverse

flex-direction定義了彈性專案在彈性容器中的放置方向,預設是row,即行內方向(一般而言是由左往右,但注意這個和書寫模式有關)。

flex-wrap定義是否需要拆行以使得彈性專案能被容器包含。*-reverse代表相反的方向。

兩者結合起來即flex-flow屬性就確定了彈性容器在main axis和cross axis兩個方向上的顯示方式,下面的例子很直觀的說明了各個屬性值的區別:

自適應布局(adaptive)的特點是分別為不同的螢幕解析度定義布局。布局切換時頁面元素發生改變,但在每個布局中,頁面元素不隨視窗大小的調整發生變化。 

你可以把自適應布局看作是靜態布局的乙個系列。 

就是說你看到的頁面,裡面元素的位置會變化而大小不會變化;

流式布局(liquid)的特點(也叫」fluid」) 是頁面元素的寬度按照螢幕進行適配調整,主要的問題是如果螢幕尺度跨度太大,那麼在相對其原始設計而言過小或過大的螢幕上不能正常顯示 

。 你看到的頁面,元素的大小會變化而位置不會變化——這就導致如果螢幕太大或者太小都會導致元素無法正常顯示。

做手機**必加的一句頭部(head)**

name="viewport"   名稱=檢視

width=device-width 頁面寬度=裝置寬度(可以理解為獲取你手機的螢幕寬度)

initial-scale - 初始的縮放比例  

minimum-scale - 允許使用者縮放到的最小比例   

maximum-scale - 允許使用者縮放到的最大比例  

user-scalable - 使用者是否可以手動縮放  

分別為不同的螢幕解析度定義布局,同時,在每個布局中,應用流式布局的理念,即頁面元素寬度隨著視窗調整而自動適配。 

可以把響應式布局看作是流式布局和自適應布局設計理念的融合。 

每個螢幕解析度下面會有乙個布局樣式,同時位置會變而且大小也會變。

當建立乙個響應式**,或者非響應式**變成響應式的時候,首先要關注元素的布局。我在建立響應式布局的時候習慣先寫非響應式布局,頁面固定寬度大小,我覺得這個對在座的各位沒有任何難度。如果完成了非響應式那麼我在去新增**查詢(media query)和響應式**。這種操作更容易實現響應式特性。

當你完成當你已經完成了無響應的**,做的第一件事是在你的 html 頁面,貼上下面的**到和標籤之間。這將設定螢幕按1:1的尺寸顯示,在 iphone 和其他智慧型手機的瀏覽器提供**全檢視瀏覽,並禁止使用者縮放頁面。

user-scalable屬性能夠解決ipad切換橫屏之後觸控才能回到具體尺寸的問題。

media query 是響應式設計的核心,它能夠和瀏覽器進行溝通,告訴瀏覽器頁面如何呈現,假如乙個終端的解析度小於980px,那麼可以這樣寫

@media

screen and (max-width:980

px)

#content

#footer

這裡面的樣式會覆蓋掉之前所定義的樣式。

假如我們要相容ipad和iphone檢視,我們可以這樣設定:

/**ipad**/

@media

only screen and

(min-width:

768px)

and(max-width:

1024

px){}

/**iphone**/

@media

only screen and

(width:

320px)

and(width:

768px)

{}

到目前為止,開發人員用到的字型單位大部分都是畫素,雖然畫素在普通**上是ok的,但是我們仍然需要響應式字型。乙個響應式的字型應關聯它的父容器的寬度,這樣才能適應客戶端螢幕。

css3引入了新的單位叫做rem,和em類似但對於html元素,rem更方便使用。

rem是相對於根元素的,不要忘記重置根元素字型大小:

html

完成後,你可以定義響應式字型:

@media

(min-width:640

px)}

@media

(min-width:960

px)}

@media

(min-width:1200

px)}

不理解rem的童鞋,在這裡給大家推薦一篇寫的不錯的部落格(http

:5123272

.html)

1.寬度不固定,可以使用百分比

#head

#content

2.處理

哎喲 ,我這暴脾氣,我說的鑰匙不是真的鑰匙,而是指處理的萬能方法,是什麼呢?就是液態化。接著 會有人問:「什麼是液態化」呢?這個問題問的很好,給你打99分,多給你一分怕你驕傲,大家都知道水無形 能適合很多容器,那麼假如我們把當做水 是不是就可以實現自適應問題了呢?

#wrap

img

如此設定後

id為wrap內的會根據

wrap的寬度改變已達到等寬擴充,

height為

auto的設定是為了保證原始的高寬比例,以至於不會失真。

#log

a

background-size是

css3的新屬性,用於設定背景的大小,有兩個可選值,第乙個值用於指定背景圖的

width,第2個值用於指定背景圖的

height,如果只指定乙個值,那麼另乙個值預設為

auto。

background-size

:cover; 等比擴充套件來填滿元素

background-size

:contain; 等比縮小來適應元素的尺寸

最後我們來總結下響應式布局的實現原理 

首先我們應該遵循移動端優先,互動和設計以移動端為主,pc則作為移動端的擴充套件,乙個頁面需要相容不同終端,那麼有兩個關鍵點是我們需要去做到響應式的:響應式布局和響應式內容(、多**) 

1.meta標籤定義 

2.使用**查詢(media queries)@media適配對應樣式 

3.響應式內容 

4.響應式

另外,實現響應式布局的其他方法有:1.百分比布局;2.用bootstrap前端框架,使用container類和柵格系統;3.flex彈性布局

web前端開發之響應式布局

即傳統web設計,對於pc設計乙個layout,在螢幕寬高有調整時,使用橫向和豎向的滾動條來查閱被遮掩部分 意思就是不管瀏覽器尺寸具體是多少,網頁布局就按照當時寫 的布局來布置 對於移動裝置,單獨設計乙個布局,使用不同的網域名稱如wap.或m.彈性布局是css3引入的強大的布局方式,用來替代以前we...

web前端布局之flex布局

總的來說,flex布局的原理通過給父元素新增flex屬性,來控制子元素的位置和排列方式。採用flex布局的元素稱為flex容器。flex容器中存在兩條軸,分別為主軸和側軸,容器中的每個單元稱為flex專案。在容器上可以設定6個屬性 分別為 flex direction flex wrap flex ...

Web開發之Layout布局

布局種類 頁面布局的幾種方式 靜態化布局 流式布局 自適應布局 響應式布局 彈性布局 使用建議 1.如果只做pc端,那麼靜態布局 定寬度 是最好的選擇 2.如果做移動端,且設計對高度和元素間距要求不高,那麼彈性布局 rem js 是最好的選擇,乙份css 乙份js調節font size搞定 3.如果...