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

資訊專欄INFORMATION COLUMN

CSS display 屬性詳解

xingqiba / 3378人閱讀

摘要:如果項(xiàng)目只有一根軸線,該屬性不起作用。后兩個屬性可選。彈性比為的子代占據(jù)父代框的空間是彈性比為的同級屬性的兩倍。其默認(rèn)值為,也就是不具有彈性。此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示柵格模型,類似柵格模型,類似轉(zhuǎn)自屬性詳解作者

display的所有屬性
{/* CSS 1 */
display: none;
display: inline;
display: block;
display: list-item;
/* CSS 2.1 */
display: inline-block;
display: table;
display: inline-table;
display: table-cell;
display: table-column;
display: table-column-group;
display: table-footer-group;
display: table-header-group;
display: table-row;
display: table-row-group;
display: table-caption;
/* CSS 2.1 */
/* CSS 3 */
display: inline-list-item;
display: flex;
display: box;
display: inline-flex;
display: grid;
display: inline-grid;
display: ruby;
display: ruby-base;
display: ruby-text;
display: ruby-base-container;
display: ruby-text-container;
/* CSS 3 */
/* Experimental values */
display: contents;
display: run-in;
/* Experimental values */
/* Global values */
display: inherit;
display: initial;
display: unset;}

下面就display的重要屬性進(jìn)行講解,并配合一些相關(guān)的例子

基本屬性 display: none

none 是 CSS 1 就提出來的屬性,將元素設(shè)置為none的時候既不會占據(jù)空間,也無法顯示,相當(dāng)于該元素不存在。

該屬性可以用來改善重排與重繪,同時我也經(jīng)常用它來做模態(tài)窗等效果。

display: inline

inline也是 CSS 1 提出的屬性,它主要用來設(shè)置行內(nèi)元素屬性,設(shè)置了該屬性之后設(shè)置高度、寬度都無效,同時text-align屬性設(shè)置也無效,但是設(shè)置了line-height會讓inline元素居中


同時從上圖可以看到兩個inline標(biāo)簽之間出現(xiàn)了奇怪的間隔,改間隔的原因是div換行產(chǎn)生的換行空白,解決辦法

將兩個inline標(biāo)簽寫到一行


  
123
123

或者使用一點(diǎn)技巧

zhan
123

實(shí)測chome49瀏覽器只用設(shè)置父元素的font-size為0即可。
目前有很多原生的元素都是inline的,span、a、label、input、 img、 strong 和em就是典型的行內(nèi)元素元素。
鏈接:http://www.css88.com/archives...

display: block

設(shè)置元素為塊狀元素,如果不指定寬高,默認(rèn)會繼承父元素的寬度,并且獨(dú)占一行,即使寬度有剩余也會獨(dú)占一行,高度一般以子元素?fù)伍_的高度為準(zhǔn),當(dāng)然也可以自己設(shè)置寬度和高度。

在設(shè)計(jì)的過程中有時需要設(shè)計(jì)一個div寬高都是整個屏幕,整個時候?qū)挾群芎迷O(shè)置,可是高度一般很難設(shè)置,因?yàn)轫撁嬉话愣际强梢詽L動的,所以高度一般可變,所以這個時候可以使用一個小技巧,如下。

 

基本原理:div繼承的是父元素body的高度,body是繼承html的高度,html是繼承的瀏覽器屏幕的高度。

display: list-item

此屬性默認(rèn)會把元素作為列表顯示,要完全模仿列表的話還需要加上 list-style-position,list-style-type

111111 222222 333333

效果圖如下:

通過上面樣式設(shè)置,就能仿出一個類似的列表,一定要在div上加padding,因?yàn)槟J(rèn)的列表之前的·在box外面

display: inline-block

inline-block為 CSS 2.1 新增的屬性。 inline-block既具有block的寬高特性又具有inline的同行元素特性。 通過inline-block結(jié)合text-align: justify 還可以實(shí)現(xiàn)固定寬高的列表兩端對齊布局,如下例子:

111111
222222
333333
111111
222222
333333
 
 
 
 
 

效果圖如下:


text-align: justify 屬性會使行內(nèi)元素兩端對齊,但是要求這些行內(nèi)元素總寬度至少占滿一行,所以在總寬度不足一行的時候這個屬性沒用,因此在最后需要加上一些占位符。
詳情可以查看 張鑫旭老師的博客
Tip: inline-block會形成一個BFC

display: table

table 此元素會作為塊級表格來顯示(類似table),表格前后帶有換行符。CSS表格能夠解決所有那些我們在使用絕對定位和浮動定位進(jìn)行多列布局時所遇到的問題。例如,display:table的CSS聲明能夠讓一個HTML元素和它的子節(jié)點(diǎn)像table元素一樣。使用基于表格的CSS布局,使我們能夠輕松定義一個單元格的邊界、背景等樣式, 而不會產(chǎn)生因?yàn)槭褂昧?b>table那樣的制表標(biāo)簽所導(dǎo)致的語義化問題。

利用table的特性,我們能夠輕易的實(shí)現(xiàn)三欄布局,并且能夠兼容IE8,如下是使用table屬性,實(shí)現(xiàn)三欄布局的例子:

head1
head2
head3
123
123
123

效果如下圖:

CSS2.1表格模型中的元素,可能不會全部包含在除HTML之外的文檔語言中。這時,那些“丟失”的元素會被模擬出來,從而使得表格模型能夠正常工作。所有的表格元素將會自動在自身周圍生成所需的匿名table對象,使其符合table/inline-table、table-row、table-cell的三層嵌套關(guān)系。

所以在一般情況下我們也可以不寫外面的table-row元素以及table元素。

display: inline-list-item

我在MDN上面看到有這個屬性,但是我實(shí)際嘗試發(fā)現(xiàn)這個屬性是不能使用的,在 http://caniuse.com/#search=in... 上面也沒有找到這個元素的兼容性,所以應(yīng)該是不能使用的,支持度全無

display: flex

flex是一種彈性布局屬性
注意,設(shè)為Flex布局以后,子元素的float、clearvertical-align屬性將失效。
主要屬性有兩大類:容器屬性和項(xiàng)目的屬性

容器屬性

flex-direction: 屬性決定主軸的方向(即項(xiàng)目的排列方向)。

flex-wrap: 默認(rèn)情況下,項(xiàng)目都排在一條線(又稱”軸線”)上。flex-wrap屬性定義,如果一條軸線排不下,如何換行。

flex-flow: 屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,默認(rèn)值為row nowrap。

justify-content: 屬性定義了項(xiàng)目在主軸上的對齊方式。

align-items: 屬性定義項(xiàng)目在交叉軸上如何對齊。

align-content: 屬性定義了多根軸線的對齊方式。如果項(xiàng)目只有一根軸線,該屬性不起作用。

項(xiàng)目屬性

order: 定義項(xiàng)目的排列順序。數(shù)值越小,排列越靠前,默認(rèn)為0。

flex-grow: 定義項(xiàng)目的放大比例,默認(rèn)為0,即如果存在剩余空間,也不放大。

flex-shrink: 屬性定義了項(xiàng)目的縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將縮小。

flex-basis: 屬性定義了在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main
size)。瀏覽器根據(jù)這個屬性,計(jì)算主軸是否有多余空間。它的默認(rèn)值為auto,即項(xiàng)目的本來大小。

flex: 屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認(rèn)值為0 1 auto。后兩個屬性可選。

align-self:
屬性允許單個項(xiàng)目有與其他項(xiàng)目不一樣的對齊方式,可覆蓋align-items屬性。默認(rèn)值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。

以上關(guān)于flex的基礎(chǔ)知識基本是從阮一峰老師那copy過來的,有興趣的同學(xué),可以到阮一峰老師的博客深入閱讀
http://www.ruanyifeng.com/blo...
http://www.ruanyifeng.com/blo...

實(shí)例:實(shí)現(xiàn)一個固定寬度但內(nèi)容可變的列表

目前我有一個需求,有一個列表頁,左側(cè)固定,右側(cè)固定,總寬度固定,但是左側(cè)的內(nèi)容可能會增加,右側(cè)的內(nèi)容也可能會增加,要求平時一行展示,增加的時候兩行展示,左側(cè)兩行,右側(cè)還是一行,并且都居中。

先上效果圖,不然可能會迷糊:

為了實(shí)現(xiàn)上述效果,代碼如下

 
  • 累積的分為:123
    123 x 10
  • 累積的分為:1234
    x 10
display: -webkit-box

由于某X5瀏覽器某些版本還不支持最新版的flex布局,所以為了保證良好的運(yùn)行,建議還是使用display: box,box和flex布局的主要差別如下:

容器屬性

display: box 該顯示樣式的新值可將此元素及其直系子代加入彈性框模型中。Flexbox 模型只適用于直系子代。

box-orient 值:horizontal | vertical | inherit
框的子代是如何排列的?還有兩個值:inline-axis(真正的默認(rèn)值)和 block-axis,但是它們分別映射到水平和垂直方向。

box-pack 值:start | end | center | justify 設(shè)置沿 box-orient
軸的框排列方式。因此,如果 box-orient 是水平方向,就會選擇框的子代的水平排列方式,反之亦然。

box-align 值:start | end | center | baseline | stretch 基本上而言是 box-pack
的同級屬性。設(shè)置框的子代在框中的排列方式。如果方向是水平的,該屬性就會決定垂直排列,反之亦然。

項(xiàng)目屬性

box-flex 值:0 | 任意整數(shù) 該子代的彈性比。彈性比為 1 的子代占據(jù)父代框的空間是彈性比為 2 的同級屬性的兩倍。其默認(rèn)值為0,也就是不具有彈性。

用box改造上述例子
基本只修改了容器元素li的屬性,如下所示

li{
  display: -webkit-box;
  -webkit-box-orient:horizontal;
  -webkit-box-pack: justify;
  -webkit-box-align: center;
  padding: 10px 0;
  margin-bottom: 10px;
  border: 1px solid;
}
display: inline-flex

我發(fā)現(xiàn)在chrome條件下設(shè)置了inline-flex,其子元素全部變成了inline模式,設(shè)置flex并沒有什么用,不知道是不是我寫的有問題,目前沒找到這個屬性的用法

123
123
其他

以下屬性是實(shí)驗(yàn)性質(zhì)的,支持度都很低,不建議使用,知道就行。

run-in: 此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示;

grid: 柵格模型,類似block

inline-grid: 柵格模型,類似inline-block

ruby, ruby-base, ruby-text, ruby-base-container,ruby-text-container

contents

轉(zhuǎn)自:CSS display 屬性詳解 作者: zhanfang

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

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

相關(guān)文章

  • Cssdisplay:inline-block用法詳解

    摘要:從上面的這個分析,也不難理解為什么下,對塊元素設(shè)置屬性無法實(shí)現(xiàn)的效果。這時塊元素僅僅是被觸發(fā)了,而它本就是行布局,所以觸發(fā)后,塊元素依然還是行布局,而不會如中塊元素呈遞為內(nèi)聯(lián)對象。display:block就是將元素顯示為塊級元素 block元素的特點(diǎn)是: 總是在新行上開始; 高度,行高以及頂和底邊距都可控制; 寬度缺省是它的容器的100%,除非設(shè)定一個寬度 , , , , 和...

    _ipo 評論0 收藏0
  • 詳解css中的display屬性(行內(nèi)元素和塊級元素)

    摘要:在中,和就是典型的行內(nèi)元素元素。內(nèi)聯(lián)元素不單獨(dú)占一行,給他設(shè)置寬高是沒有用的。在中和就是塊級元素。此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示。此元素會作為塊級表格來顯示類似,表格前后帶有換行符。 display屬性 首先,所有主流瀏覽器都支持 display 屬性。其次,我們都知道display 屬性規(guī)定元素應(yīng)該生成的框的類型。默認(rèn)值:inline 我們常用的display屬性值...

    figofuture 評論0 收藏0
  • CSS display 屬性詳解

    摘要:如果項(xiàng)目只有一根軸線,該屬性不起作用。后兩個屬性可選。彈性比為的子代占據(jù)父代框的空間是彈性比為的同級屬性的兩倍。其默認(rèn)值為,也就是不具有彈性。此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示柵格模型,類似柵格模型,類似轉(zhuǎn)自屬性詳解作者 display的所有屬性 {/* CSS 1 */ display: none; display: inline; display: block; disp...

    馬永翠 評論0 收藏0
  • CSS display 屬性詳解

    摘要:后兩個屬性可選。此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示柵格模型,類似柵格模型,類似 原文地址:http://zhanfang.github.io/2016/07/22/display屬性詳解轉(zhuǎn)載請注明地址及作者: zhanfang 最近瞎忙了好長一段時間,一直沒時間寫文章,想深入學(xué)習(xí)一下css的相關(guān)屬性,所以有了這篇文章,如有錯誤請指針。 display的所有屬性 /* CSS ...

    DevYK 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<