1. 程式人生 > >《CSS3實戰》筆記--彈性盒模型(一)

《CSS3實戰》筆記--彈性盒模型(一)

通過閱讀和學習書籍《CSS3實戰》總結
《CSS3實戰》/成林著.—北京機械工業出版社2011.5

彈性盒模型(Flexible Box Moudle),該模型用於決定元素在盒子中的分佈方式以及處理盒子的可用空間。這與XUL(Firefox瀏覽器的使用者互動語言)相似,其他語言也使用相同的盒模型。如XAML,GladeXML等。通過彈性盒模型,可以輕鬆地建立自適應瀏覽器視窗的流動佈局或自適應字型大小的彈性佈局。

相容性::彈性盒模型規範是W3C標準化組織於2009年釋出的,目前還沒有主流瀏覽器對其進行支援,不過採用Webkit和Mozilla渲染引擎的瀏覽器都自定義了一套私有屬性,用來支援彈性盒模型。

  • 採用Webkit渲染引擎的瀏覽器主要包括Safari和Chrome瀏覽器,該引擎支援以-webkit為字首的私有屬性。

  • Mozilla渲染引擎的瀏覽器主要包括Firefox瀏覽器,該引擎支援以-moz為字首的私有屬性。

相關屬性:
box-align:定義子元素在盒子垂直方向上的空間分配方式
box-direction:定義盒子的顯示順序
box-flex:定義子元素在盒子內的自適應尺寸
box-flex-group:定義自適應子元素群組
box-lines:定義子元素分列顯示
box-ordinal-group:定義子元素在盒子內的顯示位置
box-orient:定義盒子分部的座標軸
box-pack:定義子元素在盒子內水平方向的空間分配方式

box-orient屬性

  該屬性可用於定義盒子元素內部的流動佈局方向.在使用彈性盒子模型時,需要先把父容器的display屬性設定為box或者inline-box。
語法:

box-orient:horizontal | vertail | inline-axis | block-axis | inherit

取值簡單說明:

  • horizontal:盒子元素從左到右在一條水平線上顯示它的子元素。

  • vertail:盒子元素從上到下在一條垂直線上顯示它的子元素。

  • inline-axis:盒子元素沿著內聯軸顯示它的子元素。

  • block-axis:盒子元素沿著塊軸顯示它的子元素。

實戰體驗:設計多欄佈局

  • html程式碼:

<div id="box">
    <div id="box0"><img src="images/web_01.gif" /></div>
    <div id="sub-box">
        <div id="box1"><img src="images/web_02.gif" /></div>
        <div id="box2"><img src="images/web_03.gif" /></div>
        <div id="box3"><img src="images/web_04.gif" /></div>
    </div>
</div>
  • CSS3程式碼:
<style type="text/css">
body{/*文件樣式*/
    margin:0;padding:0px;/*清除頁邊距*/
    text-align:center;/*文件居中對齊*/
    background:#170843;
}
#box{
    margin:auto;/*文件居中對齊*/
    text-align:center;
    width:975px;
}
/*定製各個欄目的寬度*/
#box1{width:185px;}
#box2{width:601px;}
#box3{width:189px;}
/*定製子包含框的盒子顯示,其包含的元素水平流動*/
#sub-box{
    display:-moz-box;
    display:-webkit-box;
    display:box;
    box-orient:horizontal;
    -moz-box-orient:horizontal;
    -webkit-box-orient:horizontal;  
}
</style>

演示效果:

這裡寫圖片描述

box-direction屬性

box-direction屬性可以改變盒子元素中內部元素的流動順序,該屬性基本語法:

box-direction:normal | reverse | inherit

取值簡單說明:

  • normal:正常顯示順序,即如果盒子元素的box-origent屬性值為horizontal,則其包含的子元素按照從左到右的順序顯示,即每個子元素的左邊總是靠近前一個子元素的右邊;如果盒子元素的box-origent屬性值設定為vertical,則其包含的子元素按照從上到下的順序顯示。

  • reverse:反向顯示,盒子所包含的子元素的顯示順序將於normal相反。

  • inherit:繼承上級元素的顯示順序。

實戰體驗:反向佈局網頁(以上面的案例為基礎):

CSS3程式碼:

<style>
body{
    margin:0;padding:0px;
    text-align:center;
    background:#170843;
}
#box{
    margin:auto;
    text-align:center;
    width:975px;
}
#box1{width:185px;}
#box2{width:601px;}
#box3{width:189px;}
#sub-box{
    display:-moz-box;
    display:-webkit-box;
    display:box;
    box-orient:horizontal;
    -moz-box-orient:horizontal;
    -webkit-box-orient:horizontal;  
    box-direction:reverse;
    -moz-box-direction:reverse;
    -webkit-box-direction:reverse;
}
</style>

演示效果:

這裡寫圖片描述

box-ordinal-group屬性

  box-direction屬性可以改變盒子內部元素的流動順序,而box-ordinal-group屬效能夠設定每個子元素在盒子中的具體顯示位置,語法如下:

box-ordinal-group<integer>

取值說明:

屬性值是一個自然數,從1 開始,用來設定子元素的位置符號。子元素的分佈將根據這個屬性值從小到大進行排列。在預設情況下,子元素將根據元素的位置進行排列。
注意:如果沒有指定box-ordinal-group屬性值的子元素,則其序號預設都為1,並且序號相同的元素將按照他們在文件中的載入的順序進行排列。

實戰體驗:垂直網頁佈局

HTML程式碼:

<div id="box">
    <div id="box1"><img src="images/web1_01.gif" /></div>
    <div id="box2"><img src="images/web1_02.gif" /></div>
    <div id="box3"><img src="images/web1_03.gif" /></div>
    <div id="box4"><img src="images/web1_04.gif" /></div>
</div>

CSS3程式碼:

<style type="text/css">
body {
    margin:0;
    padding:0;
    text-align:center;
    background:#d9bfe8;
}
#box {
    margin:auto;
    text-align:left;
    width:988px;
}
/*定義盒形顯示及盒內元素垂直顯示*/
#box {
    display : -moz-box;
    display : -webkit-box;
    display : box;
    box-orient:vertical;
    -moz-box-orient:vertical;
    -webkit-box-orient:vertical;
}
/*根據網頁內容的現實需要,藉助彈性盒模型調整各個板塊的顯示順序*/
#box1 {/*設定第一個元素顯示在第二個位置*/
    -moz-box-ordinal-group : 2;/*相容Mozilla Gecko引擎*/
    -webkit-box-ordinal-group : 2;/*相容Webkit引擎*/
    box-ordinal-group : 2;/*標準用法*/
}
#box2 {/*設定第二個元素顯示在第三個位置*/
    -moz-box-ordinal-group : 3;/*相容Mozilla Gecko引擎*/
    -webkit-box-ordinal-group : 3;/*相容Webkit引擎*/
    box-ordinal-group : 3;/*標準用法*/
}
#box3 {/*設定第三個元素顯示在第一個位置*/
    -moz-box-ordinal-group : 1;/*相容Mozilla Gecko引擎*/
    -webkit-box-ordinal-group : 1;/*相容Webkit引擎*/
    box-ordinal-group : 1;/*標準用法*/
}
#box4 {/*設定第四個元素顯示在第四個位置*/
    -moz-box-ordinal-group : 4;/*相容Mozilla Gecko引擎*/
    -webkit-box-ordinal-group : 4;/*相容Webkit引擎*/
    box-ordinal-group : 4;/*標準用法*/
}
</style>

演示效果:

這裡寫圖片描述

相關推薦

CSS3實戰筆記--彈性模型

通過閱讀和學習書籍《CSS3實戰》總結 《CSS3實戰》/成林著.—北京機械工業出版社2011.5 彈性盒模型(Flexible Box Moudle),該模型用於決定元素在盒子中的分佈方式以及處理盒子的可用空間。這與XUL(Firefox瀏覽器

模型

medium ron ash 什麽是 外邊距 add 距離 常見 width 一。什麽是盒模型  padding(內邊距,一個盒子裏的邊距離內容的距離,上下左右)   margin(外邊距,兩個盒子之間的距離)   border(盒子的邊框)   內填充,外邊距,邊框都有四

Spring實戰筆記:Spring核心

spring bean spring core一.簡介: 1.依賴註入(DI) 優點:解耦 Spring 通過應用上下文(Application Context)裝載bean的定義,並把它們組裝起來。 Spring應用上下文負責對象的創建和組裝。 ClassPathXm

CSS3--彈性模型display:flex

盒模型的概念並不是很陌生。 在傳統的佈局中,block不會是把塊在垂直方向上從上到下排列;inline是在水平方向排列。 而現在要介紹的CSS3的彈性盒模型並沒有這樣的限制,可以有開發人員自由操作。 優勢:彈性盒模型可以用簡單的方式免租很多常見的佈局要

彈性模型伸縮布局

技術 baseline 不換行 它的 gray lock gin ack 設置高度 一、彈性盒模型(伸縮布局) flxible box 前言: 彈性布局,用來為盒子提供靈活性。就像是當把瀏覽器縮小的的時候,不會像float屬性會依然往下掉,靈活性不好。而且當布局盒裝模型

css3中的彈性模型

css3中的彈性盒模型css3中的彈性盒模型註意:在使用彈性盒子模型的時候 父元素必須要加display:box和display:inline-box 現在我先寫上我的代碼註意!在使用盒子模型的時候要加display 這裏我前面還加了-webkit 這是瀏覽器內核兼容問題,加了display之後就會變成水平

CSS3筆記之定位篇relative

知識點1:relative和absolute   relative: 相對自身,並會限制內部absolute元素層疊   absolute: 相對容器,並受到父類容器relative的影響,比如:o

視覺化格式模型 模型與外邊距疊加

可以參考《精通CSS 高階WEB標準解決方案》第三章。 視覺化格式模型 視覺化格式模型要掌握的3個最重要的CSS概念是 浮動、定位、盒模型。 這些概念控制在頁面上安排和顯示元素的方式, 形成CSS的基本佈局。 主要學習內容: 盒模型的複雜性和特點 如何以及為什麼使用外邊距 絕對定位

JavaSE 學習筆記之Java概述

environ 電子 6.0 run javase 有一點 架構 spa form 一、Java的三種技術架構: JAVAEE:Java Platform Enterprise Edition,開發企業環境下的應用程序,主要針對web程序開發; JAVASE:Java P

隱馬爾可夫模型

回溯 一是 描述 數學 函數 觀測 tran 隱藏 之間 隱馬爾可夫模型   隱馬爾可夫模型(Hidden Markov Model,HMM)是一種統計模型,廣泛應用在語音識別,詞性自動標註,音字轉換,概率文法等各個自然語言處理等應用領域。經過長期發展,尤其

設計模式學習筆記 C#代碼

內容 編程 繼承 color 模式 c# 派生類 ive spa 《深入淺出設計模式》學習筆記第一章 原始需求和設計 事情是這樣開始的,公司需要做一套程序,鴨子,設計如下: 一個鴨子父類,多個派生類,三個可override的方法。 第一次需求變更 我們要會飛的鴨子!!!!

FPGA軟硬協同設計學習筆記及基礎知識

擴展性 產生 新的 pll 多個 分配 每次 調用 span 一、FPGA軟件硬件協同定義: 軟件:一般以軟件語言來描述,類似ARM處理器的嵌入式設計。硬件定義如FPGA,裏面資源有限但可重配置性有許多優點,新的有動態可充配置技術。

多線程編程學習筆記——線程同步

als 執行 homepage auto using 發的 進行 read 函數 接上文 多線程編程學習筆記-基礎(一) 接上文 多線程編程學習筆記-基礎(二) 接上文 多線程編程學習筆記-基礎(三) 就如上一篇文章(多線程編程學習筆記-基礎(三))

並發模型——Future模式

消費者 新的 ring 代理模式 while color 模型 框架 exception 多線程開發可以更好的發揮多核cpu性能,常用的多線程設計模式有:Future、Master-Worker、Guard Susperionsion、不變、生產者-消費者 模式; j

matlab學習筆記之常用命令

plot 我們 all 查看 學習 ear tla clear 但是 一.清除命令。   1.clear all;%清除所有變量,通常在matlab的工作區;另外斷點也會被清除掉   2.close all;%關閉所有窗口(除了編輯器窗口、命令窗口、幫助窗口)   3.cl

Spark MLlib模型 支持向量機【Support Vector Machine】

ssi p s ext edi sgd 訓練集 turn cati eight 目錄   支持向量機原理   支持向量機代碼(Spark Python) 支持向量機原理   待續... 返回目錄 支持向量機代碼(Spark Pytho

vue.js實戰學習——內置指令

name 初始 節點 刪除 html元素 data post 編譯 16px 註:此內容摘抄自:梁灝的《Vue.js實戰》 註:記得要引入vue.js才能運行哦,文章中貼出的代碼直接復制是不行的,html css js 都放在了一起,而且也沒有引用vue.js。 1.v

如何“謹慎”使用“數據驅動”的風控模型-- 數據篇

數據驅動 數據分析 人工智能 數據質量 如何“謹慎”使用“數據驅動”的風控模型(一)-- 數據篇 人工智能時代來臨,2017年“數據驅動”在整個信貸生態圈熱度陡增,無論是金融機構、助貸機構、征信機構、大數據廠商等,無不在各大論壇、峰會、沙龍、融資中宣傳各自“數據驅動”的理

【Linux Nginx實戰】之初識Nginx

Nginx LNMP 實戰 1.Nginx是什麽? nginx是一款高性能的HTTP和反向代理服務器軟件,第一個開源版本誕生於2004年,雖然誕生較晚但經過十多年的發展,已經成為非常流行的web服務器軟件,下圖是w3techs公布的全球網站服務器軟件統計報告 2.Nginx為什麽流行? 首先,ng

HTML學習筆記 w3sCss盒子模型陰影div的一些使用案例 第十節 原創 參考使用表

idt pac cin head src 模型圖 div 盒子模型 樣式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">