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值,可以构建出各种复杂的现代网页布局 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速卖通API数据清洗实战:从原始JSON到结构化商品数据库

下面将详细介绍如何把速卖通 API 返回的原始 JSON 数据清洗并转换为结构化商品数据库。 1. 数据获取 首先要借助速卖通 API 获取商品数据&#xff0c;以 Python 为例&#xff0c;可使用requests库发送请求并得到 JSON 数据。 import requests# 替换为你的 API Key 和 Secret …

【零基础入门unity游戏开发——2D篇】2D物理系统 —— 2D刚体组件(Rigidbody2D)

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

Collectors.toMap / list 转 map

前言 略 Collectors.toMap List<User> userList ...; Map<Long, User> userMap userList.stream().collect(Collectors.toMap(User::getUserId, Function.identity()));假如id存在重复值&#xff0c;则会报错Duplicate key xxx, 解决方案 两个重复id中&#…

热门面试题第13天|Leetcode 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数

222.完全二叉树的节点个数&#xff08;优先掌握递归&#xff09; 需要了解&#xff0c;普通二叉树 怎么求&#xff0c;完全二叉树又怎么求 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0222.%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8…

关于Object.assign

Object.assign 基本用法 Object.assign() 方法用于将所有可枚举属性的值从一个或者多个源对象source复制到目标对象。它将返回目标对象target const target { a: 1, b: 2 } const source { b: 4, c: 5 }const returnedTarget Object.assign(target, source)target // { a…

GitHub高级筛选小白使用手册

GitHub高级筛选小白使用手册 GitHub 提供了强大的搜索功能&#xff0c;允许用户通过高级筛选器来精确查找仓库、Issues、Pull Requests、代码等。下面是一些常用的高级筛选用法&#xff0c;帮助你更高效地使用 GitHub 搜索功能。 目录 搜索仓库搜索Issues搜索Pull Requests搜…

手动集成sqlite的方法

注意到sqlite有backup方法&#xff08;https://www.sqlite.org/backup.html&#xff09;。 也注意到android中sysroot下&#xff0c;没有sqlite3的库&#xff0c;也没有相关头文件。 如果要使用 sqlite 的backup&#xff0c;那么就需要手动集成sqlite代码到项目中。可以如下操…

蓝桥杯真题 2109.统计子矩阵

原题地址:1.统计子矩阵 - 蓝桥云课 问题描述 给定一个 NMNM 的矩阵 AA, 请你统计有多少个子矩阵 (最小 1111, 最大 NM)NM) 满足子矩阵中所有数的和不超过给定的整数 KK ? 输入格式 第一行包含三个整数 N,MN,M 和 KK. 之后 NN 行每行包含 MM 个整数, 代表矩阵 AA. 输出格…

蓝桥杯—最少操作数

一.题目 分析:每次可以进行三次操作&#xff0c;求在n步操作后可以达到目标数的最小n&#xff0c;和最短路径问题相似&#xff0c;分层遍历加记忆化搜索防止时间复杂度过高&#xff0c;还需要减枝操作 import java.util.HashSet; import java.util.LinkedList; import java.ut…

Linux内核NIC网卡驱动实战案例分析

以下Linux 内核模块实现了一个虚拟网络设备驱动程序&#xff0c;其作用和意义如下&#xff1a; 1. 作用 &#xff08;1&#xff09;创建虚拟网络设备对 驱动程序动态创建了两个虚拟网络设备&#xff08;nic_dev[0]和nic_dev[1]&#xff09;&#xff0c;模拟物理网卡的功能。这两…

Trae初使用心得(Java后端)

1.前提 2025年3月3日&#xff0c;字节跳动正式官宣“中国首个 AI 原生集成开发环境&#xff08;AI IDE&#xff09;”Trae 国内版正式上线&#xff0c;由于之前项目的原因小编没有及时的去体验&#xff0c;这几日专门抽空去体验了一下感觉还算可以。 2.特点 Trade重在可以白嫖…

[项目]基于FreeRTOS的STM32四轴飞行器: 十二.角速度加速度滤波

基于FreeRTOS的STM32四轴飞行器: 十二.滤波 一.滤波介绍二.对角速度进行一阶低通滤波三.对加速度进行卡尔曼滤波 一.滤波介绍 模拟信号滤波&#xff1a; 最常用的滤波方法可以在信号和地之间并联一个电容&#xff0c;因为电容通交隔直&#xff0c;信号突变会给电容充电&#x…

UNIX网络编程笔记:TCP、UDP、SCTP编程的区别

一、核心特性对比 特性TCPUDPSCTP连接方式面向连接&#xff08;三次握手&#xff09;无连接面向连接&#xff08;四次握手&#xff09;可靠性可靠传输&#xff08;重传、确认机制&#xff09;不可靠传输可靠传输&#xff08;多路径冗余&#xff09;传输单位字节流&#xff08;…

Python爬虫异常处理:自动跳过无效URL

爬虫在运行过程中常常会遇到各种异常情况&#xff0c;其中无效URL的出现是较为常见的问题之一。无效URL可能导致爬虫程序崩溃或陷入无限等待状态&#xff0c;严重影响爬虫的稳定性和效率。因此&#xff0c;掌握如何在Python爬虫中自动跳过无效URL的异常处理技巧&#xff0c;对于…

C++语法学习的主要内容

科技特长生方向&#xff0c;主要学习的内容为 一&#xff0c;《C语法》 二&#xff0c;《数据结构》 三&#xff0c;《算法》 四&#xff0c;《计算机基础知识》 五&#xff0c;《初高中的数学知识》 其中&#xff0c;《C语法》学习的主要内容如下: 1,cout输出语句和键盘…

3、孪生网络/连体网络(Siamese Network)

目的: 用Siamese Network (孪生网络) 解决Few-shot learning (小样本学习)。 Siamese Network并不是Meta Learning最好的方法, 但是通过学习Siamese Network,非常有助于理解其他Meta Learning算法。 这里介绍了两种方法:Siamese Network (孪生网络)、Trplet Loss Siam…

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.2.1从零编写类GPT-2模型架构(规划模块与代码组织)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.2.1 从零编写类GPT-2模型架构(规划模块与代码组织)1. 模型架构设计规划1.1 架构核心组件2. 模块化设计实现2.1 输入处理模块2.1.1 分词与嵌入2.1.2 位置编码2.2 解码块设计2.2.1 多头注意力子层2.2.…

消息队列(Kafka及RocketMQ等对比联系)

目录 消息队列 一、为什么使用消息队列&#xff1f;消息队列有什么优点/缺点&#xff1f;介绍下Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优点缺点&#xff0c;如何取舍&#xff1f; 1.公司业务场景是什么&#xff0c;这个业务场景有什么挑战&#xff0c;如果不用MQ有什么麻…

Android 13系统定制实战:基于系统属性的音量键动态屏蔽方案解析

1. 需求背景与实现原理 在Android 13系统定制化开发中&#xff0c;需根据设备场景动态屏蔽音量键&#xff08;VOLUME_UP/VOLUME_DOWN&#xff09;功能。其核心诉求是通过系统属性&#xff08;persist.sys.roco.volumekey.enable&#xff09;控制音量键的响应逻辑&#xff0c;确…

解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《深度探秘&#xff1a;AI界的007》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是Docker 2、什么是Ollama 二、准备工作 1、操…