成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

常用CSS布局

mozillazg / 3130人閱讀

摘要:此時(shí),是不好用的,因?yàn)樗荒軕?yīng)用于清除左側(cè)或右側(cè)的浮動(dòng)。而是傲嬌的小公舉,有她自己的布局規(guī)則內(nèi)部的會(huì)在垂直方向,一個(gè)接一個(gè)地放置。用來在內(nèi)部元素超出時(shí)顯示進(jìn)度條。這樣在頁(yè)面高度變化,或者內(nèi)部的高度變化時(shí),都始終可以保持正常的三行布局。

1.導(dǎo)航條垂直居中

導(dǎo)航條nav 從左到右分為 nav-left , nav-mid , nav-mid ,怎樣達(dá)到從左到右依次排列,且全部垂直居中的效果呢?
全部設(shè)置 float:left , 這樣之后才可以方便的使 nav-left, nav-right, nav-right 都垂直居中,只需要設(shè)置一次父元素nav的 line-height 等于它的 height 就可以啦~

1.1 ul>li>a 構(gòu)成的導(dǎo)航條內(nèi)部導(dǎo)航水平居中:
ul設(shè)置 text-align:center;
li和a都設(shè)置 display: inline-block;

2.清除父元素的浮動(dòng)

假設(shè)父元素為 wrap ,未設(shè)置高度,包含三個(gè)子元素 left mid right,需要實(shí)現(xiàn)水平三列布局。
首先,對(duì)left mid right 三部分應(yīng)用 float: left;并設(shè)置合理的寬度,假設(shè)都為30%
這時(shí)由于內(nèi)部元素全部浮動(dòng)而脫離文檔流,導(dǎo)致父包含塊高度無法被撐開,縮成了一條。下面,需要對(duì)父包含塊做清除浮動(dòng)。
此時(shí),clear:both; 是不好用的,因?yàn)樗荒軕?yīng)用于清除左側(cè)或右側(cè)的浮動(dòng)。

方法一、overflow: hidden;

我們需要對(duì)父元素應(yīng)用overflow: hidden; 來清除浮動(dòng)。原理是 overflow 的值只要不是默認(rèn)值visible,就觸發(fā)了 BFC。
而 BFC 是傲嬌的小公舉,有她自己的布局規(guī)則:

內(nèi)部的Box會(huì)在垂直方向,一個(gè)接一個(gè)地放置。
Box垂直方向的距離由margin決定。屬于同一個(gè)BFC的兩個(gè)相鄰Box的margin會(huì)發(fā)生重疊 每個(gè)元素的margin box的左邊,
與包含塊border box的左邊相接觸(對(duì)于從左往右的格式化,否則相反)。即使存在浮動(dòng)也是如此。 BFC的區(qū)域不會(huì)與float
box重疊。 BFC就是頁(yè)面上的一個(gè)隔離的獨(dú)立容器,容器里面的子元素不會(huì)影響到外面的元素。反之也如此。
計(jì)算BFC的高度時(shí),浮動(dòng)元素也參與計(jì)算

注意最后一條,因?yàn)橛?jì)算BFC高度時(shí),浮動(dòng)元素也參與計(jì)算,所以父元素的高度被撐開。而這也正符合包含塊未設(shè)置高度(height: auto;)時(shí)的裁切準(zhǔn)則。因?yàn)榘瑝K高度(height: auto;),所以永遠(yuǎn)不會(huì)出現(xiàn)內(nèi)容超出包含塊的情況,因此overflow:hidden應(yīng)用后,需要計(jì)算內(nèi)部所有元素高度才能進(jìn)行裁切。

補(bǔ)充下哪些元素會(huì)生成BFC:

根元素 
float屬性不為none
position為absolute或fixed
display為inline-block,table-cell, table-caption, flex, inline-flex
overflow不為visible
方法二、clearfix:after{ ... }

clear屬性清除浮動(dòng)通用方案:.clearfix:after{ ... } 實(shí)際上是添加了一個(gè)看不見的元素。

主要代碼:

.clearfix: after {
  content: " ";
  display: block;
  clear: both;
  //用于清除浮動(dòng):設(shè)置了clear:both的塊級(jí)元素可以清除浮動(dòng)
  overflow: hidden;
  visibility: hidden;
}

將clearfix這個(gè)class添加到浮動(dòng)元素的父元素上,就清除了因?yàn)樽釉馗?dòng)縮成一條的父元素的影響,完整代碼見:
jsfiddle栗子

3.水平三列等寬布局

水平三列等寬布局 當(dāng)頁(yè)面寬度變化時(shí),怎樣一直保持三列始終均勻的居中顯示?
(實(shí)在不知道該怎樣簡(jiǎn)潔的描述“均勻的居中”。。。意思就是左右兩列與頁(yè)面之間的間隙,以及列與列之間的間隙,這四塊間隙一樣寬。)
其實(shí)就是考算術(shù)的。按照設(shè)計(jì)稿樣式計(jì)算3個(gè)列以及4個(gè)空隙的百分比寬度,讓它們相加約等于100%,比如 26% * 3 + 5% * 4 = 78% + 20% = 98%

//html
left
middle
right
//css .wrap { margin: 0 auto; width: 400px; background: yellow; overflow: hidden; } .left, .mid, .right { float: left; margin-left: 5%; width: 26%; } .left { background: blue; } .mid { background: pink; } .right{ background: red; }

效果就是下圖介樣子:

更多方法參考這篇文章:頁(yè)面架構(gòu)之等分布局 4.三行自適應(yīng)布局:header(定高) + main(高度自適應(yīng)) + footer(定高) 方法一、position

jsfiddle中的栗子

//html
header
content
//css .header {position: absolute;top: 0;left: 0; width: 100%; height: 100px;background-color: pink;} .footer {position: absolute;bottom:0;left:0; width: 100%;height: 100px;background-color: pink;} .main {position: absolute; top: 100px;left:0; bottom: 100px;right: 0;overflow: auto;background-color: yellow;} .content {height: 1000px;}

header 和footer 的css屬性基本一樣。
main的設(shè)置注意兩點(diǎn):
1.用了同時(shí)設(shè)置top與bottom , left與right,撐開元素的技巧。
2.overflow:auto; 用來在內(nèi)部元素超出時(shí)顯示進(jìn)度條。
這樣在頁(yè)面高度變化,或者內(nèi)部的content高度變化時(shí),都始終可以保持正常的三行布局。

方法二、flex (三行高度自適應(yīng) + 兩列寬度自適應(yīng))

可以直接看 jsfiddle栗子

主要代碼:

//html
header
side
main
//css body { display: flex; flex-flow: column;} .heater, footer { height: 100px; } div.body { flex: 1; display: flex; width: 500px; align-self: center; } //div.body 既做三行flex布局的item,也是兩列flex布局的container .side { width: 200px; } .main { flex: 1; } // 其實(shí)是flex-grow: 1; 占滿剩余寬度的1/n,而這里的n就是1

可以看到我們的div.body還是水平居中的,其實(shí)是我們給.body設(shè)置了一個(gè)定寬 width: 500px; 加上本元素交叉軸上的對(duì)齊方式 align-self: center; 的作用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50683.html

相關(guān)文章

  • CSS常用布局

    摘要:頭部主要內(nèi)容左邊欄右邊欄尾部顯示為頭部主要內(nèi)容左邊欄右邊欄尾部圣杯布局和雙飛翼布局的原理這篇文章講解得比較清楚,我就不再贅述。 ====== 樣例代碼不能顯示,請(qǐng)看原文https://magicly.me/css-layout/ ====== 布局是CSS中一個(gè)很重要的部分,甚至我覺得是最重要也是最難的部分,其他諸如字體大小、顏色等等都是很容易的。最近總結(jié)一下使用過的CSS常...

    aaron 評(píng)論0 收藏0
  • 深入學(xué)習(xí)CSS布局系列(一)布局常用屬性

    摘要:布局涉及到的屬性常用屬性值此元素不會(huì)被顯示它和屬性不一樣。當(dāng)所有父元素中的所有元素脫離文檔流之后,父元素將失去原有默認(rèn)的內(nèi)容高度浮動(dòng)塌陷配合使用屬性規(guī)定元素的哪一側(cè)不允許其他浮動(dòng)元素。 @(CSS技巧)[CSS, 布局] 深入學(xué)習(xí)CSS布局系列(一)布局常用屬性 一直感覺自己對(duì)CSS的各個(gè)屬性很了解,可是在前幾天一次面試后發(fā)現(xiàn)自己真的很多地方感覺自己知道,可是實(shí)際上自己并不是真的理解了...

    Noodles 評(píng)論0 收藏0
  • CSS 常用布局在小程序中的應(yīng)用

    摘要:常用布局在小程序中的應(yīng)用所有布局的根本都是個(gè)基本概念定位浮動(dòng)外邊距操縱我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來進(jìn)行的。具體實(shí)現(xiàn),可以使用微信小程序的單位,以及使用定位浮動(dòng)布局來實(shí)現(xiàn)。 CSS 常用布局在小程序中的應(yīng)用 所有css布局的根本都是3個(gè)基本概念:定位、浮動(dòng)、外邊距操縱 我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來進(jìn)行的。所以我們先來看看什么是正常的文檔流。 正常文...

    garfileo 評(píng)論0 收藏0
  • CSS 常用布局在小程序中的應(yīng)用

    摘要:常用布局在小程序中的應(yīng)用所有布局的根本都是個(gè)基本概念定位浮動(dòng)外邊距操縱我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來進(jìn)行的。具體實(shí)現(xiàn),可以使用微信小程序的單位,以及使用定位浮動(dòng)布局來實(shí)現(xiàn)。 CSS 常用布局在小程序中的應(yīng)用 所有css布局的根本都是3個(gè)基本概念:定位、浮動(dòng)、外邊距操縱 我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來進(jìn)行的。所以我們先來看看什么是正常的文檔流。 正常文...

    CoderDock 評(píng)論0 收藏0
  • CSS常用布局簡(jiǎn)潔解決方案

    摘要:與常人的直覺不符的是,實(shí)際上表示視口寬度的,而不是。與類似,表示視口高度的。存在問題它只適用于在視口中居中的場(chǎng)景基于的解決方案伸縮盒是專門針對(duì)這類需求所設(shè)計(jì)的。 相關(guān)基礎(chǔ)知識(shí) 1.內(nèi)部與外部尺寸模型:(w3c草案)親測(cè)google可支持。(http://w3.org/TR/css3-sizing ) 基于原有CSS尺寸特性,可以使CSS更容易描述內(nèi)容自適應(yīng)以及適應(yīng)固定上下文的盒模型: ...

    2450184176 評(píng)論0 收藏0
  • JS / CSS 常用實(shí)戰(zhàn)代碼片段

    摘要:常用模式片段之摘要第一次看到這個(gè)字眼是在中,即。之后也見到一些別人的代碼里有,它和頁(yè)面的有什么關(guān)系,以及和有何淵源。以前都見過這些詞,但都似懂非懂,今天查了些資料收集了些代碼,做個(gè)完整的理解。 CSS篇 常用模式片段之CSS布局篇 http://jsorz.cn/blog/2016/08/code-patterns-of-css-layout.html 摘要:position 拉伸性質(zhì)...

    sutaking 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<