tft每日頭條

 > 圖文

 > display如何操作

display如何操作

圖文 更新时间:2024-10-11 05:29:08

大家都知道display可以轉換元素類型,但是大多人其實對于display的屬性值,比較熟悉的隻是block和inline以及inline-block和none,對于其他屬性值,了解都比較一般,在平時開發過程中也不太用得到其他的屬性值,但是每次用這個屬性的時候,腦海裡都會冒出來,其他的屬性值,設置了會是怎麼樣、有什麼樣的特點,這個奇奇怪怪的想法,所以找了個時間,寫下這篇文章, 跟我有相同可愛想法的夥伴,如果感興趣的,可以駐步瞄一眼喲;

一、css規定,元素類型有兩大類,一類是塊狀元素,一類是行内元素,首先了解一下兩種元素類型的特征:塊狀元素特征:
  • 塊狀元素可以正确解釋盒模型的屬性width,height,padding,margin,border
  • 塊狀元素前後帶有換行符,所以自占一行,在垂直方向一個接一個的放置;
  • 塊狀元素一般作為容器、盒子使用;
  • 塊狀元素默認情況下,寬度與父元素同寬,高度根據内容而定,沒有内容,高度為0;
行内(内聯)元素特征:
  • 行内元素不能正确解釋盒模型的屬性,width、height執行無效,padding、border、margin解釋時,左右解釋沒有問題,上下解釋不正确;
  • 行内元素在一行内從左往右依次排列;
  • 行内元素默認情況下,寬度和高度都根據内容而定;
二、元素類型的轉換

display屬性:規定元素應該生成的框的類型(改變元素的類型,使用display屬性)。

ps:以下就是每個屬性的詳解了,啦啦啦啦啦啦啦;

屬性值詳解:

1、none:此元素不會被顯示;

(1) none此單詞的意思是沒有一個、毫無的意思;所以當display的屬性值設置為none的時候,表示的是沒有框類型,沒有框類型的元素,是無法在浏覽器中顯示的,就實現隐藏元素的作用了;

示例如下:

html結構:

<div></div> <p>我是p,測試div消失後,會不會占據浏覽器空間</p>

css樣式:

<style> div{ width:100px; height:100px; background:violet; /*設置div的屬性值為none,觀察div是否會隐藏不可見*/ display: none; } p{ background:yellowgreen } </style>

display如何操作(全面解析display屬性)1

以上代碼效果可以看出,div設置none之後,實現了完全消失并且不占據浏覽器的空間效果;

(2)有很多标簽,display的屬性值默認是none,比如 head meta style link等等;

display如何操作(全面解析display屬性)2

display如何操作(全面解析display屬性)3

(3)項目應用中,做二級導航效果或者鼠标懸停效果動态時,會經常用到這個屬性值,下次我們寫一個好玩的二級效果再來展示這個屬性值的作用;

2、block:此元素将顯示為塊級元素,此元素前後會帶有換行符。

示例如下:

html結構: <em>我原本是行内元素</em> css樣式: <style> em{ width:100px; height:100px; background:tomato; /*em本來是行内元素元素,現在使用display屬性轉換為塊狀元素 */ display: block; } </style>

display如何操作(全面解析display屬性)4

3、inline 默認。此元素會被顯示為内聯元素,元素前後沒有換行符。

示例如下:

html結構: <div>我原本是塊狀元素</div> <span>用來測試的行内元素span</span> css樣式: <style> div{ width:80px; height:80px; background:coral; /*div标簽本來是塊狀元素,現在使用display屬性轉換為行内元素;*/ display: inline; } span{ background:cornflowerblue } </style>

display如何操作(全面解析display屬性)5

display如何操作(全面解析display屬性)6

4、inline-block 行内塊元素(CSS2.1 新增的值)

說明:行内塊元素既具備行内元素的特性也具備塊狀元素的特性,具備行内元素前後沒有換行符可以在一行内并列顯示的特性,具備塊狀元素可以正确解釋盒模型屬性的特性。

示例如下:

div塊狀元素,span行内元素,使用此屬性值轉換為行内塊元素;

html結構: <div>我原本是塊狀元素</div> <span>我原本是行内元素</span> css樣式: div,span{ /*div塊狀元素,span行内元素,使用此屬性值轉換為行内塊元素;*/ display: inline-block; } div{ width:100px; height:100px; background:tomato; } span{ width:100px; height:100px; background:turquoise; }

display如何操作(全面解析display屬性)7

5、list-item 此元素會作為列表顯示。

(1) 此屬性值表示将元素顯示為列表項标簽,li标簽默認的display的屬性值是list-item,display的屬性值為list-item的标簽也屬于塊狀元素;

示例如下:

display如何操作(全面解析display屬性)8

(2) li标簽作為列表項标簽,前面會有列表項标記,下面給div标簽設置為list-item,div也會有列表項标記

html結構: <ul> <div>div0</div> <li>li1</li> <li>li2</li> <li>li3</li> </ul> css樣式: ul{ background:tomato } ul li{ border:1px solid turquoise } div{ /*給div标簽設置為list-item*/ display: list-item; }

display如何操作(全面解析display屬性)9

6、run-in 此元素會根據上下文作為塊級元素或内聯元素顯示。

(1) 目前很少有浏覽器支持run-in這個屬性值,并且在開發過程中用不到這個屬性值,不予過多的研究;

display如何操作(全面解析display屬性)10

7、table 此元素會作為塊級表格來顯示(類似 <table>),表格前後帶有換行符。

(1)table标簽默認的元素類型是table,顯示為塊級表格,可以設置大小并且單獨占據一行;(2)當table标簽的元素類型是table時,并且設置寬度和高度之後,後代td标簽的寬度和高度,默認是由table根據内容的多少去分配的;

display如何操作(全面解析display屬性)11

(3) table屬于塊狀元素,但是對比别的塊狀元素,有自己的特點, table會單獨占據一行,但是在沒有設置width的情況下,不會與父元素同寬,而是根據内容而定;

html結構: <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table> <span>我是行内元素span</span> css樣式: table{ border:2px solid red; } table td{ border:1px solid chocolate; background:darkcyan } span{ background:cornflowerblue }

display如何操作(全面解析display屬性)12

(3)其他标簽設置display的屬性值為table,也不會具有表格的特性;

html結構: <div> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </div> css樣式: div{ height:300px; width:300px; border:2px solid red; /*将div設置為表格類型*/ display: table; } div td{ border:1px solid chocolate; background:darkcyan } span{ background:cornflowerblue }

display如何操作(全面解析display屬性)13

8、inline-table 此元素會作為内聯表格來顯示(類似 <table>),表格前後沒有換行符。

(1)将table顯示為行内表格,具有行内塊元素的特征,可以和别的行内元素從左往右顯示也可以設置寬度和高度;

html結構:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table> <span>我是行内元素span</span>

css樣式:

table{ border:2px solid red; /*将table設置為inline-table*/ display: inline-block; } table td{ background:darkcyan; } span{ background:cornflowerblue }

display如何操作(全面解析display屬性)14

(2)将table标簽設置為inline-table之後,td标簽的寬度就不能是table根據内容去分配了,需要單獨給td設置width和height屬性實現,不然td的大小就是内容的大小

HTML結構:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table> <span>我是行内元素span</span>

css樣式:

table{ border:2px solid red; /*将table設置為inline-table*/ display: inline-block; width:300px; height:300px; } table td{ background:darkcyan; } span{ background:cornflowerblue }

display如何操作(全面解析display屬性)15

9、table-caption 此元素會作為一個表格标題顯示(類似 <caption>)

(1)caption标簽display的屬性值是table-caption,能設置寬度高度盒模型屬性等,屬于塊狀元素;

html結構:

<table> <caption>我是表格的标題标簽</caption> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

table{ border:2px solid red; width:300px; height:300px; } table td{ background:darkcyan; } table caption{ width:400px; height:50px; background:cyan; margin:10px 0; padding:10px; line-height:50px; }

display如何操作(全面解析display屬性)16

(2)其他标簽也可以設置此屬性值,但是不具備表格标題的作用

10、table-header-group 此元素會作為一個或多個行的分組來顯示(類似 <thead>)。

  • thead标簽display的屬性值是table-header-group;
  • thead标簽的大小根據table自動分配,或者根據td而定,本身不能設置大小或者邊距
  • 其他标簽可以設置此屬性值,但是不具備表頭标簽的作用

html結構:

<table> <thead> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </thead> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

table{ border:2px solid red; } table td{ background:darkcyan; width:100px; height:100px; } table thead{ /*以下屬性設置無效*/ height:60px; width:400px; margin:100px; }

display如何操作(全面解析display屬性)17

11、table-row-group 此元素會作為一個或多個行的分組來顯示(類似 <tbody>)。

  • tbody标簽display的屬性值是table-row -group;
  • tbody标簽的大小根據table自動分配,或者根據td而定,本身不能設置大小或者邊距
  • 其他标簽可以設置此屬性值,但是不具表格主體标簽的作用

<table> <thead> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </thead> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </tbody> </table>

css樣式:

table{ border:2px solid red; width:300px; height:300px; } table td{ background:darkcyan; } table tbody{ /*以下屬性設置無效*/ height:60px; width:400px; margin:100px; }

display如何操作(全面解析display屬性)18

12、table-footer-group 此元素會作為一個或多個行的分組來顯示(類似 <tfoot>)。

(1)tfoot标簽display的屬性值是table-footer-group;

(2)tfoot标簽的大小根據table自動分配,或者根據td而定,本身不能設置大小或者其他邊距

(3)其他标簽可以設置此屬性值,但是不具表格表尾标簽的作用

HTML結構:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tfoot> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </tfoot> </table>

css樣式:

table{ border:2px solid red; width:300px; height:300px; } table td{ background:darkcyan; } /*以下屬性設置無效*/ table tfoot{ height:60px; width:400px; margin:100px; }

display如何操作(全面解析display屬性)19

13、table-row 此元素會作為一個表格行顯示(類似 <tr>)。

(1) tr标簽display的屬性值是table-row

(2) tr标簽設置height有效,width 邊距設置無效,具體的大小根據table和td而定;

(3) 其他标簽可以設置此屬性值,但是不具表格行标簽的作用

HTML結構:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

table{ border:2px solid red; } table td{ background:darkcyan; } table tr{ border:1px solid chartreuse; margin:20px; height:100px; width:300px; margin:10px; }

display如何操作(全面解析display屬性)20

14、table-cell 此元素會作為一個表格單元格顯示(類似 <td> 和 <th>)

(1)td , th标簽display的屬性值是table-cell

(2)設置寬度、高度、邊框、内邊距有效,外邊距無效,單元格之間的間距,使用border-spacing實現

HTML結構:

<table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

<style> table{ border:2px solid red; border-spacing: 10px; } table td{ background:darkcyan; width:100px; height:100px; } </style>

display如何操作(全面解析display屬性)21

(3)其他标簽可以設置此屬性值,但是不具單元格标簽的作用

html結構:

<table> <tr> <span>1</span> <span>2</span> <span>3</span> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

table{ border:2px solid red; border-spacing: 10px; } table td{ background:darkcyan; width:100px; height:100px; } span{ display: table-cell; width:100px; height:100px; background:darkcyan; }

display如何操作(全面解析display屬性)22

15、table-column-group 此元素會作為一個或多個列的分組來顯示(類似 <colgroup>)。

(1)colgroup 标簽 display的屬性值是table-column-group

(2)此标簽的特點是對列進行分組的,給分組的列設置樣式;

HTML結構:

<table> <colgroup span="1"></colgroup> <colgroup span="2"></colgroup> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

table{ border:2px solid red; border-spacing: 10px; } table td{ background:darkcyan; } table colgroup:nth-child(1){ width:100px; height:100px; background:pink } table colgroup:nth-child(2){ width:50px; height:50px; background:green }

display如何操作(全面解析display屬性)23

16、table-column 此元素會作為一個單元格列顯示(類似 <col>)

(1)col 标簽 display的屬性值是table-column

(2)此标簽的特點是對單元格列設置效果;

HTML結構:

<table> <col span="1"> <col span="2"> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>

css樣式:

<style> table{ border:2px solid red; border-spacing: 10px; } table td{ width:100px; height:100px; } table col:nth-child(1){ background:pink } table col:nth-child(2){ background:green } </style>

display如何操作(全面解析display屬性)24

17、inherit 規定應該從父元素繼承 display 屬性的值。

說明:此屬性值是所有css屬性都有的值,能被繼承的屬性,自然可以繼承,不能被繼承的,設置了此屬性值也不能實現繼承;

18、compact CSS 中有值 compact,不過由于缺乏廣泛支持,已經從 CSS2.1 中删除。

19、marker CSS 中有值 marker,不過由于缺乏廣泛支持,已經從 CSS2.1 中删除。

總結:

通過以上的測試,可以總結出:

display的屬性值為block,table的标簽都為塊狀元素;

display的屬性值為inline,inline-table,inline-block的标簽為行内級元素;

表格中的标簽對應的那些display的屬性值,其他的标簽也可以設置,但是都不具備表格标簽的功能和特征,所以表格中的标簽對應的display的屬性值,不能泛用,相當于一種特殊的存在;

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved