CSS知识点——可替换元素vs不可替换元素

2024-04-25 12:26:28

替换元素:

其中有类特殊的元素:如img,input,select,textarea,button,label等,他们被称为可替换元素(Replaced element)。他们区别一般inline元素(相对而言,称non-replaced element)是:这些元素拥有内在尺寸(intrinsic dimensions),他们可以设置width/height属性且他们中间没有实质性的内容,也即在代码中不会直接显示(文本内容)。替换元素是浏览器根据其标签的元素与属性来判断显示具体的内容。替换元素可增加行框高度,但不影响line-height,内容区高度值 = padding-top + padding-bottom + margin-top + margin-bottom + height。要想替换元素居中,可以设置line-height = height, vertral-align = middle
(vertical-align:middle,是将元素行内框的垂直中点与父元素基线上0.5ex处的一点对齐。)他们的性质同设置了display:inline-block的元素一致。意思就是这些所谓的可替换元素即内联块

或许有朋友对非置换元素(non-replaced element)有点疑惑,稍微帮助大家理解一下。非置换元素,W3C 中没有给出明确的定义,但我们从字面可以理解到,非置换元素对应着置换元素(replaced element),也就是说我们搞懂了置换元素的含义,就懂了非置换元素。置换元素,W3C中给出了定义:

“An element that is outside the scope of the CSS formatter, such as an p_w_picpath, embedded document, or applet”

从定义中我们可以理解到,置换元素(replaced element)主要是指 img, input, textarea, select, object 等这类默认就有 CSS 格式化外表范围的元素。进而可知,非置换元素(non-replaced element)就是除了 img, input, textarea, select, object 等置换元素以外的元素。

替换元素:替换元素是浏览器根据其标签的元素与属性来判断显示具体的内容
比如:<input /> type="text" 的是,这是一个文本输入框,换一个其他的时候,浏览器显示就不一样。(X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替换元素,这些元素都没有实际的内容。

替换元素可增加行框高度,但不影响line-height,内容区高度值 = padding-top + padding-bottom + margin-top + margin-bottom + height。
要想替换元素居中,可以设置line-height = height, vertral-align = middle
(vertical-align:middle,是将元素行内框的垂直中点与父元素基线上0.5ex处的一点对齐。)

非替换元素:(X)HTML 的大多数元素是不可替换元素,他们将内容直接告诉浏览器,将其显示出来
比如<p>p的内容</p>、<label>label的内容</label>;浏览器将把这段内容直接显示出来。

非替换元素添加padding-top或padding-bottom,不影响行框高度,但内容区高度会变化,margin-top,margin-bottom对行框没有任何影响。添加左右边距会影响非替换元素水平位置。要使非替换元素在父元素框内居中,可以设定line-height = 父元素框的高度。行内非替换元素上设置的内边距不会影响行高计算;因此,如果一个元素既有内边距又有背景,从视觉上看可能会延伸到其他行,有可能还会与其他内容重叠。

转载于:https://blog.51cto.com/jiangtian/1694074

CSS知识点——可替换元素vs不可替换元素相关推荐

  1. 可替换元素和非替换元素

    可替换元素和非替换元素 可替换元素replaced element也称作可置换元素,其展现效果不是由CSS来控制的,这些元素是一种外部对象,它们外观的渲染,是独立于CSS的.非置换元素non-repl ...

  2. [html] 可替换元素和不可替换元素有什么不同的特点?

    [html] 可替换元素和不可替换元素有什么不同的特点? 可替换元素的内容由元素的某些属性的值决定不可替换元素的内容由子节点的内容决定 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, ...

  3. CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景

    全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ...

  4. 替换元素和非替换元素的学习

    替换元素和非替换元素的学习 @(元素)[妙瞳] 引言 元素是文档结构的基础,在CSS中,每个元素生成了一个包含了元素内容的框(box,也翻译为"盒子").但是不同的元素显示的方式会 ...

  5. 【学习笔记】block、inline(替换元素、不可替换元素)、inline-block的理解

    本文转载 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).blo ...

  6. 替换元素与非替换元素

    最近看了一道面试题,问替换元素和非替换元素的差异是什么,当我看到题目的时候就感觉自己还是差的太远了,甚至都没听说过这个名词,接下来我就记录一下个人浅显理解的关于替换元素(replaced elemen ...

  7. html元素两种分类。替换元素和不可替换元素;块级元素和行内元素

    根据元素本身特点来分类: 替换元素 替换元素根据其标签和属性来决定元素的具体显示内容.有<img><input><textarea><select>&l ...

  8. [html] html元素哪些标签是不可替换元素?哪些是可替换元素?

    [html] html元素哪些标签是不可替换元素?哪些是可替换元素? 可替换元素(replaced element)的展现效果不是由 CSS 来控制的.这些元素是一种外部对象,它们外观的渲染,是独立于 ...

  9. CSS之排列系列--块级元素、内联元素、内联块元素--区别/详解

    原文网址:CSS之排列系列--块级元素.内联元素.内联块元素--区别/详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍CSS的块级元素(block).内联元素(inline)和内联块元素(inl ...

最新文章

  1. 人群分析--Beyond Counting: Comparisons of Density Maps for Crowd Analysis Tasks
  2. Java 并发总结——AQS
  3. mobx中跟新了数据视图没变化_【第1781期】MobX 简明教程
  4. Java用freemarker导出word
  5. 【华为云技术分享】华为云多元计算+AI 打造企业级智能数据湖
  6. 手机上有没有学python的软件-盘点几个在手机上可以用来学习编程的软件
  7. 如何在Mac上设置QLab工作区
  8. 我已经不用 try catch 处理异常了!太辣鸡了!
  9. java quic kcptun_Server-网络加速Kcptun
  10. 虎牙与斗鱼达成合并协议;希尔顿集团大中华区南部地区总部迁入深圳新址 | 美通企业日报...
  11. QAM调制原理_锁相环(PLL)基本原理 PLL电路常见构建模块
  12. 使用IDA静态分析解密《舰娘Collection》的lua脚本
  13. RTL8762DW手环烧录方法
  14. vue播放flv格式视频
  15. Linux磁盘空间管理利器--ncdu(为你的 系统瘦身)
  16. 1024happyCTF
  17. 面试算法高频压轴题——灯泡开关问题
  18. Apex英雄手游国服何时上线 Apex英雄手游和端游互通吗
  19. 最新的服务器cpu有国产的吗,浪潮发布国产飞腾CPU服务器 已达业界主流水平
  20. m6000查看端口状态_M6000日常查看维护命令 -

热门文章

  1. Xshell连接不上虚拟机Linux系统
  2. 使用C#中的ref关键字,用2个简单例子来说明
  3. 进击的 JavaScript 之(七) 原型链
  4. GentleNet使用之详细图解[语法使用增强版]
  5. 黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)
  6. windows系统中的常用网络命令
  7. JavaScript基础系列---闭包及其应用
  8. forget word a out 1
  9. 基于koajs的web项目构建-心得篇
  10. 学习Java需要达到的25个目标