css布局

1.display

display總結(jié):https://developer.mozilla.org/en-US/docs/Web/CSS/display
blockdiv,p,form,html5中的新元素:header,footer,section
inlinespan,a
nonescript
display:none;//javascript中在不刪除元素的情況下隱藏或顯示元素
display:none;不保留元素的本來空間
visibility:hidden;會保留
list-item
table
inline-block
flex

制作水平菜單:li元素改成inline

2.margin:auto;

水平居中:
給塊級元素設(shè)置width鞠抑,再設(shè)置左右外邊距為auto,可水平居中
缺點(diǎn):當(dāng)瀏覽器窗口比元素的寬度窄時(shí)驶社,瀏覽器會顯示一個(gè)水平滾動條來容納頁面
改進(jìn)方法:
用max-width代替width
(所有主流瀏覽器包括IE7+在內(nèi)均支持max-width)

3.盒模型

.little{
  width:500px;
  margin:20px auto;
}
    .big{
        width:500px;
        margin:20px auto;
        padding:50px;
        border-width:10px;
    }

改進(jìn)方法:
CSS屬性:box-sizing
加了box-sizing:border-box;后奔脐,此時(shí)內(nèi)邊距和邊框不再增加它的寬度
(box-sizing是新屬性,要注意加前綴星澳,課啟用特定瀏覽器實(shí)驗(yàn)中的特性)
改進(jìn)后:

.little {
  width: 500px; 
  margin: 20px auto; 
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box; 
               box-sizing: border-box;
.big {
  width: 500px;
  margin: 20px auto; 
  padding: 50px;
  border: solid blue 10px; 
  -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
                box-sizing: border-box;
}
*{
/*支持IE8+*/
-webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
                box-sizing: border-box;
}

4.position

position的值:
static:默認(rèn)值疚顷,任意 position: static;的元素不會被特殊的定位。
relative:和static表現(xiàn)一樣禁偎,除非加了額外的屬性腿堤;在一個(gè)相對定位(position屬性的值為relative)的元素上設(shè)置 top、right如暖、bottom和left
屬性會使其偏離其正常位置笆檀。其他的元素則不會調(diào)整位置來彌補(bǔ)它偏離后剩下的空隙。
fixed:相對于視窗定位盒至,即使頁面滾動误债,它還會在相同的位置
固定定位的元素不會保留它原本在頁面應(yīng)有的空隙浸船。
移動瀏覽器對fixed支持很差
解決方案:http://bradfrostweb.com/blog/mobile/fixed-position/
absolute:與fixed類似,區(qū)別是相對于最近的positioned祖先元素寝蹈。如果絕對定位的元素沒有positioned的祖先元素李命,則是相對于文檔的body,且會隨著頁面的滾動而移動
positioned值指的是除了static的值以外的值

5.position例子

.container {
  position: relative;
}
nav { 
  position: absolute;
  left: 0px;
  width: 200px;
}
section { 
  /* position is static by default */ 
  margin-left: 200px;
}
footer {
  position: fixed; 
  bottom: 0; 
  left: 0;
  height: 70px;
  background-color: white;
  width: 100%;
}
body {
  margin-bottom: 120px;
}

這個(gè)例子在容器比nav元素高時(shí)可以正常工作箫老,
比nav高度低的時(shí)候封字,nav會溢出到容器外邊

6.float

float,可用于實(shí)現(xiàn)文字環(huán)繞圖片

img { 
  float: right;  
  margin: 0 0 1em 1em;
}

7.clear

clear屬性用于控制浮動
具體表現(xiàn)參考:http://zh.learnlayout.com/clear.html

8.清除浮動(clearfix hack)

(現(xiàn)代瀏覽器:chrome耍鬓,火狐4阔籽,Opera,Safari牲蜀,)
當(dāng)浮動內(nèi)容比非浮動內(nèi)容高時(shí)笆制,需要加清除浮動

.clearfix{
   overflow: auto;
}

參考鏈接:http://www.w3school.com.cn/cssref/pr_pos_overflow.asp

.clearfix{
  /*專門為ie6的*/
   overflow: auto;
   zoom: 1;
}

某些瀏覽器需要特殊解決方式,下面的鏈接中的基本可解決所有主要的瀏覽器的問題

9.百分比寬度

百分比是相對于包含塊的計(jì)量單位

10.媒體查詢

響應(yīng)式設(shè)計(jì)(Responsive Design)讓網(wǎng)站針對不同的瀏覽器和設(shè)備響應(yīng)不同的顯示效果的策略涣达。
媒體查詢?yōu)轫憫?yīng)式設(shè)計(jì)的工具

@media screen and (min-width:600px) {
     nav { 
        float: left; width: 25%;
    }
    section {
        margin-left: 25%;
    }
}
@media screen and (max-width:599px) {
    nav li {
        display: inline;
    }
}

參考鏈接:

移動端自適應(yīng):

<meta name="viewport" content="width=device-width,initial-scale=1"/>

移動端的代碼一般都把寬度寫成百分比在辆,圖片寬度寫成百分比會根據(jù)屏幕自動縮放,寫一個(gè)最大值即可度苔。

11.網(wǎng)格鋪滿瀏覽器

  1. 使用浮動(較困難)
.box {
  float: left;
  width: 200px; 
  height: 100px; 
  margin: 1em;
}
.after-box {
  clear: left;
}
  1. inline-block(較容易)
.box2 {
  display: inline-block; 
  width: 200px;
  height: 100px; 
  margin: 1em;
}

使IE6和IE7支持inline-block:
inline-block會觸發(fā)hasLayout
https://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/

12.inline-block布局

  • vertical-align屬性會影響到inline-block元素匆篓,要設(shè)置成top
  • 需設(shè)置每一列的寬度
  • 若html源代碼中元素之間有空格,則列和列之間會產(chǎn)生空隙

13.column

實(shí)現(xiàn)文字的多列布局:

.three-column {
  padding: 1em;
  -moz-column-count: 3;
  -moz-column-gap: 1em;
  -webkit-column-count: 3;
  -webkit-column-gap: 1em; 
  column-count: 3;
  column-gap: 1em;
}

注意:CSS columns是新標(biāo)準(zhǔn)寇窑,需要使用前綴鸦概,IE9和Opera Mini不支持

14.flexbox

暫時(shí)還沒有接觸過,mark一下甩骏,下邊是非常牛的布局

.container { 
  display: -webkit-flex; 
  display: flex;
}
.initial { 
  -webkit-flex: initial; 
  flex: initial; 
  width: 200px; 
  min-width: 100px;
}
.none { 
  -webkit-flex: none;
  flex: none; 
  width: 200px;
}
.flex1 { 
  -webkit-flex: 1; 
  flex: 1;
}
.flex2 { 
  -webkit-flex: 2;
  flex: 2;
}
布局效果.png

垂直居中布局

.vertical-container { 
  height: 300px; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-justify-content: center; 
  justify-content: center;
}

15.框架

blueprint
Bootstrap

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窗市,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子饮笛,更是在濱河造成了極大的恐慌咨察,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎浇,死亡現(xiàn)場離奇詭異扎拣,居然都是意外死亡赴肚,警方通過查閱死者的電腦和手機(jī)素跺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來誉券,“玉大人指厌,你說我怎么就攤上這事∮桓” “怎么了踩验?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵鸥诽,是天一觀的道長。 經(jīng)常有香客問我箕憾,道長牡借,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任袭异,我火速辦了婚禮钠龙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘御铃。我一直安慰自己碴里,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布上真。 她就那樣靜靜地躺著咬腋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睡互。 梳的紋絲不亂的頭發(fā)上根竿,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音湃缎,去河邊找鬼犀填。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嗓违,可吹牛的內(nèi)容都是我干的九巡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蹂季,長吁一口氣:“原來是場噩夢啊……” “哼冕广!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起偿洁,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤撒汉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后涕滋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睬辐,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年宾肺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溯饵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锨用,死狀恐怖丰刊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情增拥,我是刑警寧澤啄巧,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布寻歧,位于F島的核電站,受9級特大地震影響秩仆,放射性物質(zhì)發(fā)生泄漏码泛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一澄耍、第九天 我趴在偏房一處隱蔽的房頂上張望弟晚。 院中可真熱鬧,春花似錦逾苫、人聲如沸卿城。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑟押。三九已至,卻和暖如春星掰,著一層夾襖步出監(jiān)牢的瞬間多望,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工氢烘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怀偷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓播玖,卻偏偏與公主長得像椎工,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蜀踏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案维蒙? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • title: CSS布局date: 2016-09-14 22:55tags: CSS 0x00 display ...
    曼路x_x閱讀 618評論 0 0
  • 原文地址: http://tt-ghost.github.io/2016/07/14/css布局那點(diǎn)事 說到布局,...
    艾特TT閱讀 529評論 0 2
  • 參考資料: learn css layout 1. display 每個(gè)元素都有一個(gè)默認(rèn)的 display 值果覆,這...
    唐唐_sugar閱讀 226評論 0 0
  • 前言 因?yàn)橐趫F(tuán)隊(duì)內(nèi)作一次技術(shù)分享颅痊,想了幾個(gè)題目,最后還是決定系統(tǒng)總結(jié)一下我在CSS布局這方面的知識局待。一是這個(gè)題目...
    Samhanx閱讀 624評論 0 6