第 29 章 CSS3 彈性伸縮佈局[上]

来源:http://www.cnblogs.com/zfc2201/archive/2016/05/01/5450619.html
-Advertisement-
Play Games

學習要點: 1.佈局簡介 2.舊版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.佈局簡介 CSS3 提供一種嶄新的佈局方式:Flexbox 佈局,即彈性伸縮佈局模型(Flexible Box)。用來提供一個更加有效 ...


學習要點:

1.佈局簡介

2.舊版本

 

主講教師:李炎恢

 

本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。

 

一.佈局簡介

  CSS3 提供一種嶄新的佈局方式:Flexbox 佈局,即彈性伸縮佈局模型(Flexible Box)。用來提供一個更加有效的方式實現響應式佈局。但是用於這個佈局方式還處於 W3C 的草案階段,並且它還分為舊版本、新版本以及混合過渡版本三種不同的編碼方式。在發展中,可能還有各種改動,瀏覽器的相容性還存在問題。所以,本節課作為初步瞭解即可。

首先,我們來看下舊版本的瀏覽器相容情況:

Flexbox 舊版本相容情況

屬性

IE

Firefox

Chrome

Opera

Safari

帶首碼

4 ~ 25

4 ~ 31

15 ~ 18

5.17+

不帶首碼

以上的數據,我們摘自 CSS3 手冊上的。當然,不同的教材和文章的會略有不同。但誤差率也就一到兩個版本,影響不大。

首先,第一步:先創建一段內容,分成三個區域。

//HTML 部分 

<div>
    <p>
        第一段內容...
    </p>
    <p>
        第二段內容...
    </p>
    <p>
        第三段內容...
    </p>
</div>

//CSS 部分 

p {
    width: 150px;
    border: 1px solid gray;
    margin: 5px;
    padding: 5px;
}

div {
    display: -moz-box;
    display: -webkit-box;
    display: box;
}

通過以上設置,在除了 IE 瀏覽器外,佈局實現了水平分佈。那麼下麵,我們就重點研究一下這些屬性的含義。

 

二.舊版本

如果屬性和屬性值為:display:box,那麼就是 2009 年 7 月份設定的工作草案,屬於舊版本。它面向的是一些早期瀏覽器的彈性佈局方案。

首先,我們要將幾個需要佈局模塊的父元素設置一下容器屬性 display。

屬性值

說明

box

將容器盒模型作為塊級彈性伸縮盒顯示(舊版本)

inline-box

將容器盒模型作為內聯級彈性伸縮盒顯示(舊版本)

我們知道塊級它是占用整行的,類似<div>元素;而內聯級不占用整行,類似<span>元素。但是我們設置了整個盒子,他們都不占用,保持一致。

//設置彈性,以火狐為例

div {
    display: -moz-box;
}

1.box-orient 屬性

box-orient 主要實現盒子內部元素的流動方向。

//設置垂直流動

div {
    -webkit-box-orient: vertical;
}

屬性值

說明

horizontal

伸縮項目從左到右水平排列

vertical

伸縮項目從上到下垂直排列

inline-axis

伸縮項目沿著內聯軸排列顯示

block-axis

伸縮項目沿著塊軸排練顯示

2.box-direction

box-direction 屬性主要是設置伸縮容器中的流動順序。

//設置逆序

div {
    -moz-box-direction: reverse;
} 

屬性值

說明

normal 

預設值,正常順序

reverse 

逆序

3.box-pack

box-pack 屬性用於伸縮項目的分佈方式。

//分佈方式已結束位置靠齊

div {
    -moz-box-pack: end;
} 

屬性值

說明

start

伸縮項目以起始點靠齊

end

伸縮項目以結束點靠齊

center

伸縮項目以中心點靠齊

justify

伸縮項目平局分佈,-webkit-支持,-moz-不支持

4.box-align

box-align 屬性用來處理伸縮容器的額外空間。//居中對齊,清理上下額外空間

div {
    -moz-box-align: center;
}

屬性值

說明

start

伸縮項目以頂部為基準,清理下部額外空間

end

伸縮項目以底部為基準,清理上部額外空間

center

伸縮項目以中部為基準,平均清理上下部額外空間

baseline

伸縮項目以基線為基準,清理額外的空間

stretch

伸縮項目填充整個容器,預設

5.box-flex

box-flex 屬性可以使用浮點數分配伸縮項目的比例//設置每個伸縮項目占用的比例

p:nth-child(1) {
    -moz-box-flex: 1;
}

p:nth-child(2) {
    -moz-box-flex: 2.5;
}

p:nth-child(3) {
    -moz-box-flex: 1;
}

6.box-ordinal-group

box-ordinal-group 屬性可以設置伸縮項目的顯示位置。

//將第一個位置的元素,跳轉到第三個位置

p:nth-child(1) {
    -moz-box-ordinal-group: 3;
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ajaxStart()和ajaxStop()方法是綁定Ajax事件。ajaxStart()方法用於在Ajax請求發出前觸發函數,ajaxStop()方法用於在Ajax請求完成後觸發函數。它們的調用格式為: $(selector).ajaxStart(function())和$(selector).a... ...
  • CSS3 Transition css屬性值在一定時間內平滑地過渡; transition主要包含四個屬性值: transition-property 執行變換的屬性;應用所有屬性用all; transition-duration 動畫持續的時間;註意要加單位s或者ms transition-tim ...
  • 聖杯佈局和雙飛翼佈局的目的都是:左右兩欄固定寬度,中間部分自適應; 聖杯佈局 聖杯佈局HTML: 聖杯佈局CSS: 聖杯佈局的優點: 使主要內容列先載入。 允許任何列是最高的。 沒有額外的div。 需要的hack很少。 雙飛翼佈局 雙飛翼HTML 雙飛翼CSS 聖杯佈局和雙飛翼的比較: 1.兩種佈局 ...
  • 本文介紹使用圖標字體和SVG取代雪碧圖的方法。雪碧圖是很多網站經常用到的一種技術,但是它有缺點:高清屏會模糊、無法動態變化如hover時候反色。而使用圖標字體可以完美解決上述問題,同時具備相容性好,生成的文件小等優點。 雪碧圖 雪碧圖實例:淘寶PC端 將多張小圖放至一張大圖 將多張小圖放至一張大圖 ...
  • 在HTML4.01中:< b > < i > 是視覺要素(presentationl elements),分別表示無意義的加粗,無意義的斜體,僅僅表示樣式上是粗體或斜體,而沒有強調的語義,這兩個標簽在HTML4.01中不推薦使用,建議用CSS樣式; < em > 和 < strong > 是表達要素 ...
  • 學習要點: 1.安裝方式 2.自定義!生成 3.快速生成 主講教師:李炎恢 本章主要探討瞭解一下 Sublime Text3 的一個 HTML5 代碼提示插件:Emmet,這個插件比自帶原生的要強大許多。 一.安裝方式 Emmet 插件安裝一般採用兩種方式,1.通過命令安裝;2.下載離線安裝。我這裡 ...
  • 學習要點: 1.新版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.新版本 新版本的 Flexbox 模型是 2012 年 9 月提出的工作草案,這個草案是由 W3C 推出的最新語法。這個版本立志於指定標準,讓新式的 ...
  • 學習要點: 1.混合過度版 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.混合過渡版 混合版本的 Flexbox 模型是 2011 年提出的工作草案,主要是針對 IE10 瀏覽器實現的伸縮佈局效果,其功能和舊版本的屬性 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...