display有哪些属性值呢?

详解display属性

display属性的作用

  在CSS中display属性表示“显示框类型”,即不同的盒模型。简单来说,可以把块级盒子转成内联盒子,也可以把内联盒子转成块级盒子。

<style>
.box1{ display:inline; background:gold;}
.box2{ display:block; background:skyblue;}
</style>
<div class="box1">块1</div>
<div class="box1">块2</div>
<span class="box2">内联1</span>
<span class="box2">内联2</span>

在这里插入图片描述

  可以看到,div具备了内联盒子的特性,而span则具备了块级盒子的特性。

  display属性大概可分为以下几类进行学习:

  • display-outside 外部值
  • display-inside 内部值
  • display-listitem 列表值
  • display-internal 属性值
  • display-box 显示值
  • display-legacy 混合值
  • global 全局值

display-outside(外部值)

  外部值就是定义自身元素的外部表现,而不影响其内的子元素。

  • block:表示块级盒子 像

    等默认就是块级盒子。

  • inline:表示内联盒子 像 、等默认就是内联盒子。
  • run-in:实验性质的属性,浏览器支持不好。

display-inside(内部值)

  和外部值相反,内部值就是定义子元素布局的。像flex、grid这些设置都会影响到子元素的布局形式,

  • flow-root:一个BFC的块级盒子(注:BFC后面小节会讲解)。
  • table:带有内部表格布局的块级盒子。
  • flex:带有内部弹性布局的块级盒子。
  • grid:带有内部网格布局的块级盒子。

display-listitem(列表值)

  list-item属性值是生成一个容纳内容和单独的列表行内元素盒的块级盒子,目的是为了用div去代替<ul> <li>标签之类的,<li>元素默认就是list-item;

display-internal(属性值)

在这里插入图片描述

  一些和table布局、ruby搭配一起控制页面布局的属性值,因为使用的比较少,这里不展开探讨。

display-box(显示值)

  • contents:只影响其内容的样式生效,比如:字体大小、文字颜色等;但是像背景色、边框是不会生效的。
  • none:从盒子树中移除,包括其所有后代元素。

display-legacy(混合值)

  • inline-block:对外表现成内联盒子,对内表现成块级盒子
  • inline-table:对外表现成内联盒子,对子元素表现成表格盒子
  • inline-flex:对外表现成内联盒子,对子元素表现成弹性盒子
  • inline-grid:对外表现成内联盒子,对子元素表现成网格盒子

  下面通过代码来演示一下inline-block的特性:

<style>
.box{ display:inline-block; width:100px; height:100px; background:gold;}
</style>
<div class="box">块1</div>
<div class="box">块2</div>
<span class="box">内联1</span>
<span class="box">内联2</span>

在这里插入图片描述

  可以看到,盒子即具备了块级盒子的特性(支持宽高)又具备了内联盒子的特性(横向排列)。 关于inline-flexinline-grid的特性会在相关章节中进行讲解。

global(全局值)

  • inherit:继承父元素的display属性
  • initial:不管父元素怎么设定,恢复到浏览器最初始时的display属性
  • unset:unset混合了 inherit 和 initial。如果父元素设值了,就用父元素的设定,如果父元素没设值,就用浏览器的缺省设定。
<think>好的,我现在需要回答用户关于CSSdisplay属性有哪些值的问题。用户之前已经问过行内标签,现在想进一步了解display属性的不同取值。首先,我需要回忆display属性的常见值,并确保覆盖所有主要的属性值。 首先,display属性主要控制元素的显示类型,分为外部显示类型和内部显示类型。常见的值包括block、inline、inline-block、none,还有Flexbox和Grid相关的flex、inline-flex、grid、inline-grid,以及表格相关的table、table-row等。另外还有一些不太常用但可能需要的值,如list-item、contents、flow-root等。 接下来,我需要确认每个值的含义和用法是否正确。比如,block元素独占一行,可以设置宽高;inline元素不换行,宽高由内容决定;inline-block结合两者的特性。none会隐藏元素,不占据空间。Flex和Grid用于布局,需要解释它们的作用。表格相关的属性可能用于传统布局,但现在可能更多用Flex或Grid代替。 还要考虑用户可能的疑惑,比如display: none与visibility: hidden的区别,或者flow-root的作用。需要确保回答准确,避免混淆。同时,用户可能想知道每个值的实际应用场景,例如inline-block适合导航菜单项,flex适合响应式布局。 另外,用户之前的问题涉及行内标签,所以可能需要将display属性与之前的行内元素和块级元素联系起来,帮助用户建立联系。例如,提到如何通过display属性改变元素的默认显示类型,如将span设置为block使其表现像div。 需要检查是否有遗漏的属性值,比如run-in(虽然浏览器支持有限)、contents(较新且使用需谨慎)、以及一些实验性的属性值。不过为了不过于复杂,可能只介绍常用和广泛支持的属性值。 最后,组织这些信息,分点说明每个属性值的作用、示例和使用场景,确保结构清晰,用户容易理解。同时,可能需要给出代码示例,比如如何使用display: flex创建一个简单的布局,或者如何用inline-block制作水平菜单。 在整理过程中,还要注意使用中文,避免专业术语错误,并保持口语化,但不过于随意。需要确保回答符合用户可见层的指引,结构清晰,帮助用户逐步理解。</think>以下是CSS中`display`属性的常见属性值及其作用的详细说明,帮助您逐步掌握其用法: --- ### 一、基础显示类型 1. **`display: block`** - **作用**:元素以块级形式显示,独占一行,可设置宽高和边距。 - **示例**:`<div>`、`<p>`、`<h1>` ```html <div style="display: block; width: 200px; background: #eee">块级元素</div> ``` 2. **`display: inline`** - **作用**:元素以内联形式显示,不换行,宽高由内容决定,**无法设置宽高**。 - **示例**:`<span>`、`<a>`、`<strong>` ```html <span style="display: inline; color: red">行内文本</span> ``` 3. **`display: inline-block`** - **作用**:元素水平排列(类似行内元素),但可设置宽高和边距(类似块级元素)。 - **典型用途**:导航菜单按钮、图标列表。 ```css .button { display: inline-block; width: 100px; padding: 10px; } ``` 4. **`display: none`** - **作用**:隐藏元素,且不占据页面空间(与`visibility: hidden`不同,后者隐藏后仍占位)。 ```html <div style="display: none">隐藏内容</div> ``` --- ### 二、布局模式属性 5. **`display: flex`** - **作用**:启用弹性盒子布局(Flexbox),子元素按主轴排列,适合响应式设计。 - **示例**:水平居中布局 ```css .container { display: flex; justify-content: center; } ``` 6. **`display: inline-flex`** - **作用**:容器本身表现为行内元素,内部使用Flex布局。 ```html <span style="display: inline-flex; gap: 10px"> <div>Item1</div> <div>Item2</div> </span> ``` 7. **`display: grid`** - **作用**:启用网格布局(Grid),适合复杂二维布局。 - **示例**:定义两列布局 ```css .container { display: grid; grid-template-columns: 1fr 1fr; } ``` 8. **`display: inline-grid`** - **作用**:容器本身表现为行内元素,内部使用Grid布局。 --- ### 三、表格相关属性 9. **`display: table`** - **作用**:元素行为类似`<table>`标签(替代传统表格标签)。 - **配套属性**: - `table-row`(类似`<tr>`) - `table-cell`(类似`<td>`) ```html <div style="display: table"> <div style="display: table-row"> <div style="display: table-cell">单元格1</div> </div> </div> ``` --- ### 四、其他特殊属性 10. **`display: list-item`** - **作用**:元素显示为列表项(类似`<li>`),可配合`list-style`设置项目符号。 ```css div.custom-list { display: list-item; margin-left: 20px; } ``` 11. **`display: contents`** - **作用**:元素自身不渲染,但其子元素正常显示(常用于移除父容器对布局的影响)。 ```html <div style="display: contents"> <!-- 子元素直接继承祖父容器的布局 --> </div> ``` 12. **`display: flow-root`** - **作用**:创建BFC(块级格式化上下文),解决浮动元素导致的父容器高度塌陷。 ```css .clearfix { display: flow-root; /* 替代overflow: hidden */ } ``` --- ### 五、属性值对比表 | **属性值** | **特点** | **典型应用场景** | |------------------|--------------------------------------|-----------------------------| | `block` | 独占一行,可设置宽高 | 段落、容器 | | `inline` | 水平排列,不可设宽高 | 文本修饰、链接 | | `inline-block` | 水平排列 + 可设宽高 | 导航按钮、图标 | | `flex` | 弹性布局,子元素灵活排列 | 响应式布局、居中对齐 | | `grid` | 二维网格布局 | 复杂页面结构 | | `none` | 完全隐藏元素 | 动态显示/隐藏内容 | --- ### 六、使用建议 - **优先选择现代布局**:使用`flex`或`grid`替代传统的`float`或`inline-block`布局。 - **注意兼容性**:`contents`、`flow-root`等属性需检查浏览器支持情况。 - **调试工具**:通过浏览器开发者工具实时修改`display`值观察效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieyucx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值