css display 屬性

jiangjie1105發表於2019-09-24

CSS display 屬性

1.css 所有屬性

/* 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;

複製程式碼

2.css基本屬性

1.display: none

none 是 CSS 1 就提出來的屬性,將元素設定為none的時候既不會佔據空間,也無法顯示,相當於該元素不存在。

2.display:inline

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

3.display:block

設定元素為塊級元素,如果不指定寬高,就會預設繼承父元素的高度,並且獨佔一行,即使寬度有剩餘也會獨佔一行,高度一般以子元素撐開的高度為準,當然也可以自己設定寬度和高度。

4.display:list-item

此元素預設會把元素當做列表顯示,要完全模仿列表的話還需要加上list-style-position,list-style-type

5.display:inline-block

inline-block為 CSS 2.1 新增的屬性。 inline-block既具有block的寬高特性又具有inline的同行元素特性。 通過inline-block結合text-align: justify 還可以實現固定寬高的列表兩端對齊佈局。

6.display:table

table 此元素會作為塊級表格來顯示(類似table),表格前後帶有換行符。CSS表格能夠解決所有那些我們在使用絕對定位和浮動定位進行多列布局時所遇到的問題。例如,display:table的CSS宣告能夠讓一個HTML元素和它的子節點像table元素一樣。使用基於表格的CSS佈局,使我們能夠輕鬆定義一個單元格的邊界、背景等樣式, 而不會產生因為使用了table那樣的製表標籤所導致的語義化問題。

6.display:flex

flex是一種彈性佈局屬性 注意,設為Flex佈局以後,子元素的float、clear和vertical-align屬性將失效。 主要屬性有兩大類:容器屬性和專案的屬性

關於flex佈局 我整理了xmind如下

css display 屬性

容器屬性

flex-direction: 屬性決定主軸的方向(即專案的排列方向)。

flex-wrap: 預設情況下,專案都排在一條線(又稱”軸線”)上。

flex-wrap屬性定義,如果一條軸線排不下,如何換行。

flex-flow: 屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,預設值為row nowrap。

justify-content: 屬性定義了專案在主軸上的對齊方式。

align-items: 屬性定義專案在交叉軸上如何對齊。

align-content: 屬性定義了多根軸線的對齊方式。如果專案只有一根軸線,該屬性不起作用。

專案屬性

order: 定義專案的排列順序。數值越小,排列越靠前,預設為0。

flex-grow: 定義專案的放大比例,預設為0,即如果存在剩餘空間,也不放大。

flex-shrink: 屬性定義了專案的縮小比例,預設為1,即如果空間不足,該專案將縮小。

flex-basis: 屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為auto,即專案的本來大小。

flex: 屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,預設值為0 1 auto。後兩個屬性可選。

align-self: 屬性允許單個專案有與其他專案不一樣的對齊方式,可覆蓋align-items屬性。預設值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同於stretch。

相關文章