CSS对元素的分类
文章目录
- 概述
- 置换元素/非置换元素
- 置换元素
- 非置换元素
- 行内元素/块级元素/行内块级元素
- 行内元素
- 块级元素
- 行内块级元素
概述
CSS
从两个维度上将HTML
元素进行了分类:
- 从元素内容的表现形式上,将元素分为:置换元素、非置换元素。
- 从元素自身的显示方式上,将元素分为:行内元素、块级元素、行内块级元素。
要清楚理解元素内容和元素自身的区别:
- 讨论元素内容的时候,元素就是个容器,里面装的东西就是要关注的内容
- 讨论元素自身的时候,内容不重要,它的位置、宽高、内外边距才是重点
置换元素/非置换元素
重点关注元素内容的渲染效果:内容来源、如何创建。
浏览器渲染HTML
文档,创建元素内容的时候,分两种情况:
- 可以直接从元素标签中获得元素内容。比如
<p>内容区</p>
,直接渲染内容区
就能创建好<p>
元素的内容,这种元素就是非置换元素 - 需要引入额外对象,才能创建好元素内容。比如
<img src="photo.png" />
,需要额外加载图片,才能创建好<img>
元素的内容,再比如<button>按钮</button>
,浏览器要引入一个按钮组件,才能创建好<button>
元素的内容,这种元素就是置换元素。
在HTML
文档中,大部分是都非置换元素,只有少数几个置换元素:<img>
、<select>
、<textarea>
、<input>
、<button>
、<iframe>
、<video>
、<audio>
、<embed>
、<object>
置换元素
特点:
- 从
HTML
源码文档中看元素标签,只能看到元素自身,看不到具体的元素内容 - 修改元素某些属性值,就可以改变元素内容,比如
<input>
的type
属性,<img>
的src
属性 - 元素自身一般拥有固定尺寸(宽、高、宽高比),部分元素有
height
和width
属性 CSS
渲染模型美化不了元素内容,只能对元素自身进行美化
非置换元素
特点:
- 从
HTML
源码文档中看元素标签,可以同时看到元素自身和具体的元素内容 - 严格遵循
CSS
渲染模型机制,元素自身和元素内容都可以被CSS
美化
行内元素/块级元素/行内块级元素
重点关注元素自身的渲染效果:位置、宽高、内外边距。
这种分类方式跟CSS
属性display
有直接关系,该属性可选值有很多,这里只涉及其中三个:
- 行内元素:用
display: inline
渲染的元素 - 块级元素:用
display: block
渲染的元素 - 行内块级元素:用
display: inline-block
渲染的元素
浏览器会为每个HTML
元素赋予一个默认的display
属性值,主动改变这个值就可以改变默认的元素分类,比如:
- 用
display: block
修饰<a>
元素,就把行内元素变成了块级元素 - 用
display: inline
修饰<div>
元素,就把块级元素变成了行内元素
行内元素
特点:
- 在父元素文档流中不会独占一行,左右两边可以出现其它行内元素
- 不能控制高度
height
和宽度width
,默认高度和宽度分别为元素内容的高度和宽度 - 仅能在左右两个方向上控制外边距
margin
和内边距padding
,上下两个方向不能控制 - 行内元素中不能放置块级元素,否则会被
CSS
渲染出来一些很奇怪的样式效果
在特点1中,相邻行内元素之间会存在空白间隙的问题,可参考其它文章解决。
在特点2中,如果行内元素同时也是置换元素,就可以控制元素的宽高,这是特例。
常见行内元素:<img>
、<a>
、<label>
、<span>
、<strong>
、<small>
、<em>
、<i>
、<b>
、<abbr>
、<br>
、<dfn>
、<code>
、<kbd>
、<q>
、<samp>
、<sub>
、<sup>
、<var>
、<city>
、<iframe>
块级元素
特点:
- 在父元素文档流中独自占据一整行,左右两边不会出现其他元素
- 可以控制高度
height
和宽度width
,默认高度为元素内容高度,默认宽度为父元素100%
宽度 - 可以在上下左右四个方向上控制外边距
margin
和内边距padding
常见块级元素:<h1>
、<h2>
、<h3>
、<h4>
、<h5>
、<h6>
、<ol>
、<ul>
、<li>
、<dl>
、<dt>
、<dd>
、<div>
、<form>
、<fieldset>
、<legend>
、<article>
、<header>
、<main>
、<footer>
、<figure>
、<blockquote>
、<figcaption>
、<hr>
、<p>
、<pre>
行内块级元素
既有行内元素特点,又有块级元素特点:
- 在父元素文档流中不会独占一行,左右两边可以有其它元素(行内元素特点)
- 可以控制高度
height
和宽度width
(块级元素特点),默认高度和宽度分别为元素内容的高度和宽度(行内元素特点) - 可以在上下左右四个方向上控制外边距
margin
和内边距padding
(块级元素特点)
常见行内块级元素:<button>
、<input>
、<textarea>
、<select>
相关文章:

CSS对元素的分类
文章目录 概述置换元素/非置换元素置换元素非置换元素 行内元素/块级元素/行内块级元素行内元素块级元素行内块级元素 概述 CSS从两个维度上将HTML元素进行了分类: 从元素内容的表现形式上,将元素分为:置换元素、非置换元素。从元素自身的显…...

力扣第五十四题——螺旋矩阵
内容介绍 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:matrix …...

中创算力:以知识产权转化运用促进高质量发展
创新是引领发展的第一动力,保护知识产权就是保护创新。为深入实施知识产权公共服务普惠工程,促进知识产权公共服务更好服务高水平科技,国家知识产权局发布关于全面提升知识产权公共服务效能的指导意见。 在政策落地过程中,如何精…...

C语言9~10 DAY(合集)
数组的概念 什么是数组 数组是相同类型,有序数据的集合。 数组的特征 数组中的数据被称为数组的元素,是同构的 数组中的元素存放在内存空间里 (char player_name[6]:申请在内存中开辟6块连续的基于char类型的变量空间) 衍生概念&#x…...

【Kubernetes】应用的部署(一):金丝雀部署
应用的部署(一):金丝雀部署 在项目迭代开发过程中,经常需要对应用进行上线部署。上线部署策略主要有 3 种:金丝雀部署、蓝绿部署 和 滚动部署。 金丝雀部署 也被叫作 灰度部署。金丝雀部署过程:先让一部分…...

1.面试准备篇
筛选简历 找实习用处不大 简历注意事项 注意职业技能和项目经历 职业技能 黄金位置 针对性 引导面试官提问 只写会的 不会的不能写 项目描述 主要设计… 展示指标 找练手项目 来源:Gitee 或者github 主要关注点:功能实现、常见问题、系统设计 面试过程 一面…...

Spring: try-catch 是否还会回滚
问题出现: try-catch 语句 依旧会抛出如下错误 org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnlyat org.springf…...

spdlog日志库--基础介绍
文章目录 1. 简介1.1. spdlog代码特点1.2. 说明1.3. spdlog架构 2. spdlog的安装2.1. 使用包管理器安装2.2. 使用源码安装2.3. 仅使用头文件 3. 相关概念3.0 常用的头文件3.1. level_enum3.2. sink3.3. logger3.4 格式输出3.5 对齐方式3.6 截断3.7 字符串格式化fmt 4. 特性4.1.…...

【网络】网络编程套接字(二)
网络编程套接字(二) 文章目录 1.单执行流的TCP网络程序1.1服务端创建套接字1.2服务端绑定1.3服务端监听1.4服务端获取链接1.5服务端处理请求1.6客户端创建套接字1.7客户端连接服务器1.8客户端发起请求 2.多进程版的TCP网络程序2.1单执行流的弊端2.2多进…...

1.1、centos stream 9安装Kubernetes v1.30集群 环境说明
最近正在学习kubernetes,买了一套《Kubernetes权威指南 从Docker到Kubernetes实践全接触(第六版)》这本书讲得很好,上下两册,书中k8s的版本是V1.29,目前官网最新版本是v1.30。强烈建议大家买一套看看。 Kubernetes官网地址&#x…...

Redis3
目录 什么是缓存穿透?怎么解决? 什么是缓存雪崩?怎么解决? 如何保证数据库和缓存的数据一致性? 如何保证Redis服务高可用? 哨兵的作用 Redis虚拟槽分区有什么优点? 为什么Redis集群最大槽…...

Oracle数据巡检 - 设计巡检模板
设计巡检模板 明确巡检数据库等信息 包括数据库种类、版本、架构、数量等,例如 Oracle DG和Oracle RAC数据库巡检项肯定会有差异,Oracle 11g和12c版本巡检内容也会有所不同。 明确巡检项 这一块需要结合自身的运维经验,列出详尽的巡检项&…...

优盘未格式化数据恢复实战指南
在数字时代,优盘(USB闪存驱动器)作为便携存储媒介,承载着无数重要的文件与数据。然而,当您插入优盘准备访问资料时,却遭遇了“驱动器未被格式化”的提示,这无疑是一场突如其来的数据危机。本文将…...

【python基础】python基础习题练习(一)
文章目录 一. python语言简介二. python基本语法与常用函数三. python基本数据类型一.选择题二.编程题四. python组合数据类型一.选择题二.简答题三.编程题一. python语言简介 查看python是否安装成功的命令是:python -vPython IDE有:pyCharm、Spyder、Jupter NotebookPython…...

GESP 4级样题 ---> 绝对素数
这题需要判断一个数和它的反转后的数是否都为素数。 可以转成 string 后 reverse 一下。 AC CODE: #include <bits/stdc.h> using namespace std; typedef long long LL; bool isPrime(int x){if(x<2) return false;for(int i2;i*i<x;i){if(x%i0) re…...

大语言模型系列 - Transformer
1. 简介 1.1. 概述 大语言模型Transformer是一种由谷歌公司提出的基于注意力机制的神经网络模型,它在自然语言处理(NLP)领域取得了显著成就,并逐渐被应用于其他领域如语音识别、计算机视觉和强化学习等。 1.2. 学习资源 以下是一些学习大语言模型Transformer的资源地址…...

Java面试之操作系统
1、冯诺依曼模型 运算器、控制器、存储器、输入设备、输出设备 32位和64位CPU最主要区别是一次性能计算多少字节数据,如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下&#…...

springboot船舶维保管理系统--论文源码调试讲解
第二章 相关技术 本次开发船舶维保管理系统使用的是Vue进行程序开发,船舶维保管理系统的数据信息选择MySQL数据库进行存放。 2.1 VUE介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue…...

【机器学习西瓜书学习笔记——神经网络】
机器学习西瓜书学习笔记【第五章】 第五章 神经网络5.1神经元模型5.2 感知机与多层网络学习感知机学习率成本/损失函数梯度下降 5.3 BP神经网络(误差逆传播)5.4 全局最小与局部极小5.5 其他常见神经网络RBF网络RBF 与 BP 最重要的区别 ART网络 第五章 神…...

安装 electron 报错解决
1. 报错 大概率由镜像问题导致 2. 解决 2.1 打开 npm 配置 npm config edit 2.2 添加配置 registryhttps://registry.npmmirror.comelectron_mirrorhttps://cdn.npmmirror.com/binaries/electron/electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron…...

【Material-UI】Icon Button 组件详解
文章目录 一、基础用法1. 禁用状态 二、大小(Sizes)1. 小尺寸(Small)2. 大尺寸(Large) 三、颜色(Colors)1. 主题颜色2. 自定义颜色 四、高级用法和最佳实践1. 无障碍性(A…...

51单片机-第七节-DS1302实时时钟
一、DS1302介绍: 实时时钟芯片,可对年,月,日,周,时,分,秒计时,是一种集成电路。 二、DS1302原理: 1.寄存器定义: Command:操作模式…...

Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序
Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的图书馆座位预约系统微信小程序,适合用于Java毕业设计。 功能介绍 用户 登录 注册 首页 图片轮播 关于我们 公告信息 图书馆信息 图书馆详情 预约选座 收藏 …...

【C++11】:lambda表达式function包装器
目录 前言一,可变参数模板1.1 简单认识1.2 STL容器中的empalce系列相关接口 二,lambda表达式2.1 lambda表达式语法2.2 探索lambda底层 三,包装器3.1 function包装器3.2 bind 四,类的新功能4.1 默认成员函数4.2 关键字default4.3 关…...

[io]进程间通信 -有名、无名管道 区别
有名管道和无名管道的区别 无名管道有名管道 使用场景 亲缘关系进程不相关的任意进程特点 1.固定读端fd[0]写端fd[1] 2.文件IO进行操作 3.不支持lseek()操作 4.数据存储在内核空间 1.文件系统中存在管道文件 2.文件IO操作 3.不支持lseek 4.先进先出 5.数…...

pywinauto:Windows桌面应用自动化测试(七)
前言 上一篇文章地址: pywinauto:Windows桌面应用自动化测试(六)-CSDN博客 下一篇文章地址: 暂无 一、实战常用方法 1、通过Desktop快速获取窗口 通过之前章节我们了解到控制应用的方法为Application࿰…...

RGB++是什么;UTXO是什么;Nervos网络;CKB区块链;
目录 RGB++是什么,简单举例说明 RGB++简介 举例说明 UTXO是什么 定义 功能与特点 使用方式 优缺点 结论 CKB区块链 一、基础属性 二、技术特点 三、经济模型 四、应用场景 Nervos网络 一、网络架构 二、技术特点 三、经济模型 四、应用场景 五、未来展望 …...

轻闪PDF v2.14.9 解锁版下载与安装教程 (全能PDF转换器)
前言 轻闪PDF(原傲软PDF编辑软件)是一款操作简单的全能PDF转换器,轻松实现PDF转换为Word,Excel或其他格式,以及PDF压缩,合并和图片文字识别OCR等功能.这款pdf编辑转换软件几乎支持所有常见文档格式,一键完成PDF与其他文档互相转换,并含有PDF合并,压缩,图片文字识别OCR等增值功…...

mysql 5.7 解析binlog日志,并统计每个类型语句(insert、update、delete)、每个表的执行次数
1、mysqlbinlog工具 使用mysqlbinlog工具将文件中执行语句解析至某个文件中。 /usr/local/mnt/mysql/bin/mysqlbinlog --base64-outputDECODE-ROWS -v /usr/local/mnt/mysql/log/mysql-bin.017278 > binlog017278.sql --base64-outputDECODE-ROWS 参数: 这个…...

MySQL案例:MHA实现主备切换(主从架构)万字详解
目录 MHA 概念 MHA的组成 特点 案例介绍 (1)案例需求 (2)案例实现思路 (3)案例拓扑图 (4)案例环境 案例步骤 基本环境配置 关闭防火墙和内核安全机制 安装数据库 授权…...