今天偶尔在做一个锚点连接的时候,发现一个a元素是0x0的放在页面。当然这样做也是有目的的,不让其看出页面这个位置有什么。为什么有的行内元素可以设置宽高

就好奇心的设置它的宽高,结果发现没什么用,只有转化为块元素才能起效。虽然这是一个刚开始工作时就知道的一些知识点,但是我当时就以为简单就没有去深入看看这些。现在遇到感觉挺神奇,所以就参考一些资料写下这篇博客。

html中有一类元素比较特殊,虽然他们属于行内元素,但是他们是可以设置宽高的,如img|input|select|textarea|button|label等,他们被称为可置换元素(Replaced element)。他们区别一般inline元素(相对而言,称non-replaced element)是:这些元素拥有内在尺寸(intrinsic dimensions),他们可以设置width/height属性。他们的性质同设置了display:inline-block的元素一致。

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

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

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

写完也算是记录一下,有些知识看似简单,其实还是有很多道理在里面的。参考博客:点击打开链接

相关文章: