当前位置: 首页 > news >正文

css基础-display 常用布局

CSS display 属性详解

属性设置元素是否被视为块级或行级盒子以及用于子元素的布局,例如流式布局、网格布局或弹性布局。

一、基础显示模式

1. block

作用:
  • 元素独占一行
  • 可设置宽高和内外边距
  • 默认宽度撑满父容器
应用场景:
  • 布局容器(div/section/article)
  • 段落文本(p)
  • 列表项(li默认样式)
div {
  display: block;
  width: 80%;
  margin: 0 auto;
}
/* 创建通栏页眉 */
.header {
  display: block;
  width: 100%;
  height: 60px;
  background: #333;
}

1. inline

作用:
  • 元素水平排列
  • 不可设置宽高
  • 宽度由内容决定
应用场景:
  • 文字修饰元素(span/em/strong)
  • 超链接(a)默认样式
  • 行内文本元素
span {
  display: inline;
  color: red;
  /* width: 100px; 无效 */
}

3. inline-block

作用:
  • 兼具块级与行内特性
  • 可设置宽高
  • 元素水平排列
应用场景:
  • 导航菜单项
  • 图标按钮
  • 表单控件对齐
.nav-item {
  display: inline-block;
  width: 120px;
  padding: 10px;
}

二、现代布局模式

1. flex

快速了解CSS弹性布局

主要设置元素

作用:
  • 创建弹性盒子布局
  • 主轴/交叉轴排列控制
  • 子元素弹性伸缩
应用场景:
  • 响应式导航栏
  • 卡片等分布局
  • 垂直居中实现
.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-container {
  display: flex;
  gap: 20px;
  justify-content: space-around;
  align-items: center;
}

1. grid

作用:
  • 创建网格布局
  • 二维布局控制
  • 精确行列定义
应用场景:
  • 仪表盘布局
  • 图片画廊
  • 复杂表单布局
.grid-container {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 20px;
}

三、特殊显示模式

1. none

作用:
  • 元素完全隐藏
  • 不占据文档流空间
应用场景:
  • 动态显示/隐藏元素
  • 响应式隐藏某些内容

.mobile-menu {
  display: none;
}
@media (max-width: 768px) {
  .mobile-menu {
    display: block;
  }
}

table 系列

属性值作用应用场景
table模拟<table>元素表格样式布局
table-row模拟<tr>配合表格布局使用
table-cell模拟<td>/<th>垂直居中解决方案

/* 传统垂直居中方案 */
.vertical-center {
  display: table-cell;
  vertical-align: middle;
  height: 200px;
}

3. list-item

作用:
  • 显示为列表项
  • 生成标记框(如圆点)
应用场景:
  • 自定义列表样式
  • 有序/无序列表改造
.custom-list {
  display: list-item;
  list-style-type: square;
  margin-left: 20px;
}

四、混合模式

1. inline-flex

特点:
  • 行内级弹性容器
  • 外部表现像inline
  • 内部使用flex布局

.inline-flex-container {
  display: inline-flex;
  align-items: center;
}

2. inline-grid

特点:
  • 行内级网格容器
  • 外部表现像inline
  • 内部使用grid布局
.inline-grid-container {
  display: inline-grid;
  grid-template-columns: repeat(3, 100px);
}

其他

1. contents

作用:
  • 元素自身不生成盒子
  • 子元素提升到父级层级
应用场景:
  • 无障碍优化
  • 布局结构调整

示例:

<!-- 移除中间容器层级 -->
<div class="wrapper" style="display: contents">
  <section>直接内容</section>
</div>

2. flow-root

作用:
  • 创建BFC块级格式化上下文
  • 解决浮动塌陷问题
应用场景:
  • 清除浮动
  • 防止外边距合并

📌 使用建议

优先使用现代布局:Flex/Grid > Float/Table

注意浏览器兼容性:

  • Grid布局需要IE11+
  • flow-root需要Chrome58+/Firefox53+

📚 综合对比表

属性值布局维度是否换行尺寸控制典型应用
block一维支持结构容器
inline一维不支持文本元素
inline-block一维支持导航项
flex一维可选支持响应式布局
grid二维可选支持复杂布局
table-cell一维支持

合理选择显示模式:

  • 需要水平排列:inline-block / flex
  • 需要二维布局:grid
  • 隐藏元素优先用opacity: 0 + visibility: hidden代替display: none
  • 避免滥用!important:保持样式可维护性

通过合理组合使用这些display值,可以构建出各种复杂的现代网页布局 🚀

相关文章:

  • 1.企业级AD活动目录核心解析:架构、组件与集成实践
  • 【漫话机器学习系列】154.岭回归(Ridge Regression)
  • 【MySQL笔记】库操作与表操作
  • LabVIEW发电平台数据采集系统
  • 云计算中的DevOps是什么?为什么它很重要?
  • SmolVLM2: 让视频理解能力触手可及
  • 介绍一个测试boostrap表格插件的好网站!
  • MyBatisSystemException:Parameter ‘item‘ not found.
  • Unity/C# 常用XML读写方式详解(LINQ to XML、XmlReader/Writer)
  • SLAM十四讲【一】基本概念
  • GPT-5 将免费向所有用户开放?
  • 记录flutter编译项目遇到的问题
  • 2025年01月02日浙江鼎永前端面试
  • C语言入门教程100讲(6)类型修饰符
  • 如何彻底解决Docker Desktop中Kubernetes无法启动问题
  • 【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?
  • 建筑安全员考试:“时间管理” 关键词统筹的备考规划
  • 考研课程安排(自用)
  • Ubuntu 系统安装 Redis 的详细步骤
  • 一键部署 GPU Kind 集群,体验 vLLM 极速推理
  • 贵州省总工会正厅级副主席梁伟被查,曾任贵州省纪委副书记
  • 上海劳模风采馆焕新升级后重新开放,展示480位劳模先进故事
  • 明星站台“胖都来”背后:百元起录视频,20万可请顶流
  • 美联储宣布维持基准利率不变
  • 中科院院士魏辅文已卸任江西农业大学校长
  • 创新创业50人论坛开幕在即,双创青年为何选择来上海筑梦?