1. 程式人生 > >幾種佈局方式

幾種佈局方式

1.固定佈局 方法 <head>裡把<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">加好,然後根據設計稿設定相應的寬度即可,其他地方類似於pc端。 優點 思路沿用pc端,上手比較快 缺點
大屏手機顯示網頁比較寬,而固定佈局寬度參照永遠是固定的寬度(設計稿的大小),導致左右兩邊會有空白。手機橫屏的時候兩邊空白更亮。

2.流動佈局
方法
適用百分比(%)做單位。
優點 能更很好的適應各個螢幕解析度的手機。 缺點
不夠靈活,新增元素時,需要更改其他元素的值。

3.浮動佈局 方法
float+clearfix(清除浮動)
/--不需相容老版本--/
.clearfix:after{
content:"";
display:block;
clear:both;
}
--需要相容老版本--/
clearfix:after{
content:"";
display:block;
clear:both;
height:0;
visibility:hidden;

}

**優點**        這是傳統的浮動方式,寫法簡單,實現效果起來乾脆利落    **缺點**
    對浮動元素要求比較嚴格,佈局也不太靈活

4.定位佈局 方法 在佈局當中很常用,利用position+四個方位的具體值(top/left/right/bottom)相互配合,實現起來也比較容易 優點


實現簡單,在移動端中,定位很常用,尤其是彈窗,
.mask{
position:fixed;
left:50%;
top:50%;
-webkit-transform:translate3d(-50%,-50%,0);
transform:translate3d(-50%,-50%,0);
}
缺點
移動端中頻繁的使用定位,會出現一些莫名的bug;
fixed+input在ios上存在bug,會出現使用fixed佈局的元素亂掉。在android手機上當input框獲取焦點時,換氣鍵盤,會出現定位的元素被擡升至手機鍵盤的上方。(瞭解)

5.混合佈局 方法 所謂混合佈局,就是把所有學到的知識靈活運用在佈局中。例如:rem+百分比(流動佈局) flex+rem等 優點

 佈局靈活,集合其他佈局的優勢達到自己的佈局要求 缺點
程式碼有點累贅;程式碼不統一,維護困難

6.flex佈局(重點)
方法
也叫彈性佈局。
/--只需父元素設定--/
{
display:-webkit-box; /android2.1-3.0 ios 3.2-4.3/
display:-moz-box; /firefox/
display:-webkit-flex; /chrome 21+/
display:-ms-flexbox; /wp ie 10/
display:flex; /android 4.4/
}
/--然後子元素設定相應的比例--/
{
-webkit-box-flex:1;
-webkit-flex:1;
-ms-flex:1;
flex:1;
}

這個是最簡單的flex佈局了,其實彈性佈局裡面還有很多簡單高效實用的屬性,很方便移動端的佈局。     **優點**        自適應很好,靈活性很強,目前在移動端應用的還是比較廣泛。     **缺點**
    需要寫很多相容程式碼。

7.rem佈局 方法 rem是通過根元素進行適配的,網頁中的根元素指的是html我們通過設定html的font-size大小就可以控制rem的大小。有以下兩種適配方式:
[email protected](通過媒體查詢設定html的font-size值,達到自適應)
html{
-webkit-text-size-adjust:none;
font-size:10px;
}
@media screen and (min-width:321px) and (max-width:375px){
html{
font-size:10px;
}
}
@media screen and (min-width:376px) and (max-width:414px){
html{
font-size:10.25px;
}
}
@media screen and (min-width:415px) and (max-width:454px){
html{
font-size:10.5px;
}
}
@media screen and (min-width:455px) and (max-width:554px){
html{
font-size:10.75px;
}
}
@media screen and (min-width:455px){
html{
font-size:11px;
}
}

2.rem+js(通過js自動獲取裝置寬度,計算得到相應裝置下html的font-size值達到自適應)(瞭解)

!function(n) {
var e = n.document,
t = e.documentElement,
i = 720,
d = i / 100,
o = "orientationchange" in n ? "orientationchange": "resize",
a = function() {
var n = t.clientWidth || 320;
n > 720 && (n = 720),
t.style.fontSize = n / d + "px"
};
e.addEventListener && (n.addEventListener(o, a, !1), e.addEventListener("DOMContentLoaded", a, !1))
} (window);

優點 在任何裝置下都可以達到完全適配,頁面佈局樣式完全自適應 缺點
[email protected]這種方式不能所有裝置全適配

8.響應式佈局 方法 使用@media(媒體查詢)設定頁面在不同的螢幕寬度下達到自適應以及響應式(根據不同螢幕大小,頁面佈局,樣式會做出相應的調整)典型案例(bootStrap官網) 優點 不僅在不同的螢幕下達到自適應,還會在相應的螢幕下對頁面佈局,樣式做出相應的調整,達到更加的使用者體驗 缺點
相容各種裝置工作量大,效率低下;程式碼累贅,會出現隱藏無用的元素,載入時間過長;一定程度上改變了網站原有的佈局結構,會出現使用者混淆的情況;增加UI和開發的工作量。

9.聖盃佈局
利用float來實現,首先將三列放到一個父元素內後左浮動,之後給左右中分別設定寬度200px,250px,100%。
之後給中間,右邊分別設定margin-left為-200px,-250px。之後再將左右兩列進行相對定位position:relative;並分別設定left:-200px;right:-250px;最後便是等高佈局了,給左中右設定padding-bottom:2000px;margin-bottom:-2000px;給其父元素設定overflow:hidden即可。

10.雙飛翼佈局
用float來實現,首先將左中右分別設定寬度為200px,100%,250px。中右分別設定margin-left為-200px和-250px.中間元素下有一個子元素,設定margin-left和margin-right分別為200px餘250px。最後便是等高佈局了,給左中右設定padding-bottom:2000px;margin-bottom:-2000px;給其父元素設定overflow:hidden即可。


相關推薦

對於前端開發中的佈局方式的理解

一,靜態佈局(Static Layout) 在螢幕寬高有調整時,使用橫向和豎向的滾動條來查閱被遮掩部分; 意思就是不管瀏覽器尺寸具體是多少,網頁佈局就按照當時寫程式碼的佈局來佈置 二,彈性佈局(Elastc Layout) 是CSS3引入的佈局方式,其中flex-flow是flex-di

web前端開發之佈局方式之響應式佈局

一理解幾種佈局的概念 1、靜態佈局(Static Layout) 即傳統Web設計,對於PC設計一個Layout,在螢幕寬高有調整時,使用橫向和豎向的滾動條來查閱被遮掩部分;  意思就是不管瀏覽器尺寸具體是多少,網頁佈局就按照當時寫程式碼的佈局來佈置;  對於移動裝

佈局方式

1.固定佈局 方法 <head>裡把<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">加好,

css的佈局方式都在這

說道佈局方式,是我們經常遇到的問題,下面我們就來講解css的常見的一些佈局方式。 1.雙飛翼佈局(兩邊定寬,中間自適應) 主要是通過浮動與margin實現,程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

Android開發 之 view的佈局方式及實踐

引言 通過前面兩篇: 我們對Android應用程式執行原理及佈局檔案可謂有了比較深刻的認識和理解,並且用“Hello World!”程式來實踐證明了。在繼續深入Android開發之旅之前,有必要解決前兩篇中沒有介紹的遺留問題:View的幾種佈局顯示方法,以後就不會在針對佈局方面做過多的介紹。View的佈局顯

探討“左右定寬,中間自適應”的佈局方式

一、實現“左右定寬,中間自適應”三欄效果的5種方式 基本 DOM 結構: <article class="container"> <div class="left">this is left</div> <div class="center">thi

索引的掃描方式

http table 技術分享 -1 9.png alt logs image 索引 索引的幾種掃描方式

使用mui框架打開頁面的不同方式

oid 上拉加載 nload 用戶體驗 logs left bsp position wait 1.創建子頁面: list.html就是index.html的子頁面,創建代碼比較簡單,如下: mui.init({ subpages: [{

連接到Oracle的命名方式

oracle 連接從事Oracle相關工作的人,每天都會使用各種工具連接到Oracle數據庫,比如:SQL*Plus、PL/SQL、TOAD、SQLDeveloper等等,下面就列舉了幾種連接到Oracle的方式,本例中使用的是SQL*Plus為例。1、Easy Connect命名方式這種方式是一種很簡單的方

使用java配置定時任務的配置方式及示例

遞增 exc trigge strong trigger except 字符 ssi uart Spring定時器,主要有兩種實現方式,包括Java Timer定時和Quartz定時器! 1.Java Timer定時 首先繼承java.util.TimerTask類實現

mysql的啟動方式

sta allow status option 客戶端連接 mini all res 5.1 mysql的四種啟動方式: 1、mysqld 啟動mysql服務器:./mysqld --defaults-file=/etc/my.cnf --user=root 客戶端連接:

Python模塊常用的安裝方式

author 位置 def 位操作 依賴關系 依賴 模塊 sys.path 此外 Python模塊安裝 一、 單文件模塊直接把文件拷貝到 $python_dir/Lib 二、 多文件模塊,帶setup.pypython setup.py install 三、 egg文件1)

JAVA獲取文件的常用方式

ada col epo term 打印 core book port nbsp 1、user.dir System.out.println(System.getProperty("user.dir")); 此方獲取的是運行的路 比如 1、 2、如果在eclipse上運

單例模式的實現方式

str 類加載 代碼 創建對象 stat 懶漢 導致 方法 不支持 1、懶漢式,線程不安全 是否 Lazy 初始化:是 是否多線程安全:否 實現難度:易 描述:這種方式是最基本的實現方式,這種實現最大的問題就是不支持多線程。因為沒有加鎖 synchronized,所以嚴格意

Selenium-等待方式

什麽 頻率 一次 進行 utf 可執行 /usr baidu 超過 強制等待   一直使用的time.sleep(5),可以放在任意地方,不好的地方,不太準確確定時間 隱形等待   driver.implicitly_wait(5)     設置了一個最長等待時間,如果在規

jmeter ---json讀取方式,ArrayList循環讀取

導入 一起 .com json數據格式 jmeter ips pos processor 直接   在之前寫過提取json數據格式的文章,這次對jmeter讀取json數據格式進行整理。   舉例一個接口的response 格式如下: { "data" : {

微軟 WCF的寄宿方式,寄宿IIS、寄宿winform、寄宿控制臺、寄宿Windows服務

創建 src 體驗 ash pos 如果 理解 文件 .get WCF寄宿方式是一種非常靈活的操作,可以在IIS服務、Windows服務、Winform程序、控制臺程序中進行寄宿,從而實現WCF服務的運行,為調用者方便、高效提供服務調用。本文分別對這幾種方式進行詳細介紹並開

索引的使用方式

查找 浪費 相對 掃描 遇到 l數據庫 系統 需求 mem HASH Hash這個詞,可以說,自打我們開始碼的那一天起,就開始不停地見到和使用到了。其實,hash就是一種(key=>value)形式的鍵值對,如數學中的函數映射,允許多個key對應相同的value,但不

c語言函數指針的使用方式

log print 直接 pri turn [] get div c語言函數 1.直接定義函數指針賦值並使用。 #include <stdio.h> int max(int x, int y) { if (x > y) ret

分布式session的實現方式

服務器 單點 redis 容易 穩定性 常用 str 廣播 cati 1.基於數據庫的session共享 2.基於NFS共享文件系統 3.基於memcached 的session,怎麽保證session的高可用 4.基於resin/tomcat web容器本身的sessio