博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端面试的坑】HTML行内置换元素与非置换元素的区分
阅读量:4093 次
发布时间:2019-05-25

本文共 1136 字,大约阅读时间需要 3 分钟。

什么是置换元素?

一个 内容 不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,被称之为置换元素。

也可以理解为,浏览器根据元素的标签和属性,来决定元素的具体显示内容。

例如:浏览器根据标签的src属性显示图片。根据标签的type属性决定显示输入框还是按钮。

置换元素在其显示中生成了框,这也就是有的内联元素能够设置宽高的原因。

html中的<img><input><textarea><select><object>都是置换元素,这些置换元素往往没有实际内容,即是一个空元素。

什么是非置换元素?

w3c并没有给出明确的非置换元素的解释,但能确定的是除置换元素之外,所有的元素都是非置换元素。

浏览器中的大多数元素都是非置换元素,即其内容直接展示给浏览器。

例如

标签里的内容会被浏览器直接显示给用户。

行内级置换和非置换元素的宽度定义

对于行内级非置换元素,宽度设置是不适用的。

对于行内级置换元素来说,其宽度的设置需遵循以下几点:

  • 若宽高的计算值都为 auto 且元素有固有宽度,则 width 的使用值为该固有宽度;

    典型的例子是:拥有默认宽高的 input 当宽度的计算值为auto时,则宽度使用值为其默认的固有宽度

  • 若宽度的计算值为 auto 且元素有固有宽度,则 width 的使用值为该固有宽度;

    例子同上

  • 若宽度的计算值为 auto 且高度有 非auto 的计算值,并且元素有固有宽高比,则 width 的使用值为 高度使用值 * 固有宽高比;

    典型的例子:img 当只定义了其高度值时,其宽度将会根据固有宽高比进行等比设置

  • 除此之外,当 width 的计算值为 auto 时,则宽度的使用值为 300px

    典型的例子:比如iframe, canvas

    这里是引用

其它类型的置换元素,其宽度的定义都参照行内置换元素的定义。

行内级置换和非置换元素的高度定义

对于行内级非置换元素,高度设置是不适用的。

对于行内级置换元素来说,其高度的设置需遵循以下几点:

  • 若宽高的计算值都为 auto 且元素有固有高度,则 height 的使用值为该固有高度;
  • 若高度的计算值为 auto 且元素有固有高度,则 height 的使用值为该固有高度;
  • 若高度的计算值为 auto 且宽度有 非auto 的计算值,并且元素有固有宽高比,则 height 的使用值为:宽度使用值 / 固有宽高比;
  • 若高度的计算值为 auto 且上述条件完全不符,则 height 的使用值 不能大于150px,且宽度不能大于长方形高度的2倍。

其它类型的置换元素,其高度的定义都参照行内置换元素的定义。

转载地址:http://fxvii.baihongyu.com/

你可能感兴趣的文章
Android中AsyncTask的简单用法
查看>>
Jenkins 启动命令
查看>>
剑指offer算法题分析与整理(三)
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
WAV文件解析
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
QT打开项目提示no valid settings file could be found
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
fastcgi_param 详解
查看>>
Winform多线程
查看>>
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
《PostgreSQL技术内幕:查询优化深度探索》养成记
查看>>
剑指_复杂链表的复制
查看>>