CSS中display属性的使用

本文深入解析CSS中的display属性,涵盖块元素、行内元素及inline-block的特性与区别,详细阐述display:none与visibility:hidden的差异,以及display:table-cell在布局中的应用技巧,包括图片垂直居中、等高布局、自动平均划分元素和去除inline-block间的空格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 块元素与行内元素

常见的块元素:div p h1~h6 p hr ul ol
常见的行元素: span strong em
特点:
块元素一独占一行,可以对其设置height和width可以定义四个方向的margin值。
行元素可以与其他元素位于一行,无法设置height和width,可以定义margin-left和margin-right。
inline-block元素具有block和inline的特性。

二 display介绍

display:none|block|inline-block|table|table-cell等

display:none可以用来隐藏元素。

列子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>display</title>
    <style>
     .div1,
     .div2,
     .div3
       {
           display: inline-block;
           text-align: center;
           width: 60px;
           height: 60px;
           font-size: 36px;
           border: 1px solid black;
       }

    </style>
</head>
<body>
<div class="warp">
    <div class="div1">A</div>
    <div class="div2">B</div>
    <div class="div3">C</div>
</div>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
设置div2的display为none。

display:none和visibility:hidden的区别

在这里插入图片描述

display:none隐藏后不占据原来的未知也就是说元素直接消失了。
visibility:hidden 隐藏后元素依然占据原来的位置。

display:table-cell

该设置可以让元素以表格单元的形式出现,也就是说tabel-cell元素具备td的特点。
display:table-cell可以实现以下功能

  • 图片垂直居中于元素
父元素{
display:table-cell;
vertical-align:middle;
}
子元素{
vertical-align:middle;
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>display:table-cell</title>
    <style>
        div{
            display: table-cell;
            height: 500px;
            width: 800px;
            border: 1px solid red;
            vertical-align: middle;
            text-align: center;
        }
        div img{
            vertical-align: middle;
            text-align: center;
        }


    </style>
</head>
<body>
<div><img src="./美女.jpg" alt="美女"></div>
</body>
</html>

在这里插入图片描述

  • 图片等高布局
    我们知道同一行的td元素的高度是相等的,table-cell也具备这个特性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>等高布局</title>
    <style>
        .div0{
            display: table-row;
        }
        .div1{
            display:table-cell;
            vertical-align: middle;
            text-align: center;
            width: 150px;
            border: 1px solid black;
        }
        .div2{
            display: table-cell;
          width: 400px;
            border: 1px solid deeppink;
            border-left: none;
            padding: 10px;
        }
    </style>
</head>
<body>
<div class="div0">
    <div class="div1"><img src="./美女.jpg" alt="美女"></div>
    <div class="div2"><span>《盗墓笔记》是一本最初连载在起点中文网上的小说,后由中国友谊、时代文艺、上海文化于2007年-2011年陆续出版发行,作者南派三叔。 [1]  《盗墓笔记捌:大结局(上、下)》于2011年12月19日上市,至此《盗墓笔记》系列完结,共出版实体书九本。《盗墓笔记》系列是南派三叔的代表作,其堪称近年来中国出版界的经典之作,获得百万读者狂热追捧。南派三叔也凭此作名满天下,跻身中国超级畅销书作家行列。
2015年,《盗墓笔记》由欢瑞世纪影视传媒股份有限公司改编成为网络剧 [2]  。2016年11月,《盗墓笔记》荣登2016中国泛娱乐指数盛典“中国IP价值榜-网络文学榜top10” [3]  。2017年7月12日,《2017猫片 胡润原创文学IP价值榜》发布,《盗墓笔记》排名第二。 [4] </span></div>
</div>
</body>
</html>

在这里插入图片描述
在该列子中我们没有设置高度,可见display:table-cell可以实现等高布局。

  • 自动平均划分元素
父元素{display:table}
子元素{display:table-cell}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自动平均划分元素</title>
    <style>
        ul{
            display: table;


        }
        li{
            display: table-cell;
            list-style: none;
            height: 60px;
            width: 60px;
            text-align: center;
            line-height: 60px;
        }
        ul li:nth-child(1){background-color: red}
        ul li:nth-child(2){background-color: yellow}
        ul li:nth-child(3){background-color: blue}
        ul li:nth-child(4){background-color: green}
        ul li:nth-child(5){background-color: orange}


    </style>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
</body>
</html>

在这里插入图片描述

  • 去除inline-block之间的空格
    在这里插入图片描述
    设置完inline-block后会出现这种情况
父元素{font-size:0}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>display</title>
    <style>
        .warp{
            font-size: 0;
        }
     .div1,
     .div2,
     .div3
       {
           display: inline-block;
           text-align: center;
           width: 60px;
           height: 60px;
           font-size: 36px;
           border: 1px solid black;
       }

    </style>
</head>
<body>
<div class="warp">
    <div class="div1">A</div>
    <div class="div2">B</div>
    <div class="div3">C</div>
</div>
</body>
</html>

在这里插入图片描述

<think>我们正在讨论CSSdisplay属性。根据用户要求,需要详细介绍display属性用法和功能,并参考提供的引用内容。 引用内容中提到了display属性的多种值,如none、block、inline、inline-block等,以及Flexbox和Grid布局。 我们需要按照系统指令,使用正确的LaTeX格式(行内用$...$,独立公式用$$...$$),但本问题可能不涉及数学公式,因此主要注意代码块和格式。 同时,需要生成相关问题。 结构安排: 1. 开头介绍display属性的基本概念和重要性。 2. 分别介绍常用的属性值:none, block, inline, inline-block, flex, grid等,并给出示例代码。 3. 结合引用内容,强调其重要性和应用场景。 4. 生成相关问题。 注意:引用标识要自然地添加在引用内容的末尾。由于我们参考了提供的引用,但用户提供的引用并不是真正的引用来源,我们按照要求,在相关内容后添加引用标识(如[^1])即可。 由于用户要求使用中文,以下用中文回答。</think>### CSS display属性详解 `display`属性CSS中最核心的布局属性之一,它决定了元素在文档流中的显示方式和布局行为。通过改变display值,可以完全改变元素的渲染方式,实现从简单文本流到复杂网格布局的各种效果[^1][^2]。 #### 一、基本功能与核心值 1. **`display: block`**(块级元素) - 独占一行,宽度默认撑满父容器 - 可设置宽高、内外边距 - 常见元素:`<div>`、`<p>`、`<h1>~<h6>` ```css .block-example { display: block; width: 80%; margin: 10px auto; padding: 15px; } ``` 2. **`display: inline`**(行内元素) - 不独占一行,与其他行内元素并排 - 不可设置宽高,垂直边距无效 - 常见元素:`<span>`、`<a>`、`<strong>` ```css .inline-example { display: inline; color: red; padding: 0 5px; /* 水平有效 */ } ``` 3. **`display: inline-block`**(行内块) - 兼具行内和块级特性 - 可并排显示,同时支持宽高设置 - 典型应用:导航按钮、图标列表 ```css .inline-block-example { display: inline-block; width: 100px; height: 40px; line-height: 40px; text-align: center; } ``` 4. **`display: none`**(隐藏元素) - 完全从文档流中移除 - 不占据任何空间(与`visibility: hidden`区别) ```css .hidden-element { display: none; /* 彻底隐藏 */ } ``` #### 二、现代布局模式 5. **`display: flex`**(弹性盒子) - 一维布局模型,自动分配子元素空间 - 主轴/交叉轴控制,响应式利器 ```css .flex-container { display: flex; justify-content: space-between; align-items: center; } ``` 6. **`display: grid`**(网格布局) - 二维布局系统,行列精确控制 - 适合复杂响应式布局 ```css .grid-container { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 20px; } ``` #### 三、特殊值与应用 7. **`display: table`系列** - 模拟表格行为(`table-cell`, `table-row`等) - 经典应用:垂直居中 ```css .vertical-center { display: table-cell; vertical-align: middle; height: 200px; } ``` 8. **新实验值** - `display: contents`(穿透容器) - `display: flow-root`(创建BFC) - `display: subgrid`(嵌套网格继承) #### 四、使用要点 1. **继承性**:display属性不可继承 2. **层叠影响**:可能改变盒模型计算方式 3. **布局流程**: ```mermaid graph LR A[设置display] --> B[确定显示类型] B --> C[生成盒模型] C --> D[参与格式化上下文] ``` 4. **响应式应用**: ```css /* 移动端优先 */ .responsive-item { display: block; width: 100%; } @media (min-width: 768px) { .responsive-item { display: inline-block; width: 49%; } } ``` > 关键原则:display属性定义了元素**参与格式化上下文的方式**,直接影响文档流计算和渲染性能[^3][^4]。现代CSS布局已从基于浮动的方案转向Flexbox和Grid,这些布局模式都依赖于display属性的正确设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值