为什么有些内联(行内)元素可以设置宽高?

为什么有些内联(行内)元素如img、input可以设置宽高?

在说明之前我们先来了解一些定义。

块级元素和内联元素:

①块级元素总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示。

宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制。

块级元素主要有:

address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li

②内联元素不会以新行开始,和相邻的内联元素在同一行。

一般情况下,宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变,只能改变左右边距。

内联元素主要有:

a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,textarea , tt , u , var

③可变元素,根据上下文关系确定该元素是块元素还是内联元素:

applet , button , del , iframe , ins , map , object , script

一般情况下,行内元素只能包含数据和其他行内元素,而块级元素可以包含行内元素和其他块级元素。

 

置换元素(替换元素)和非置换元素(不可替换元素):

①置换元素

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

浏览器会根据元素的标签和属性,来决定置换元素的具体显示内容。

它们所具有的特征为:在不使用css修饰时,元素的标签和属性也会影响元素的显示。

例如,浏览器会根据标签的src属性的值来读取图片信息并显示出来,而如果查看(x)html代码,则看不到图片的实际内容;标签的type属性决定是显示输入框,还是单选按钮等。

html(5)中的置换元素有