
HTML中,标签可分为块级元素标签和行内元素标签。
什么是块级元素?
总是在新行上开始;
高度,行高以及外边距和内边距都可控制;
宽度缺省是它的容器的100%,除非设定一个宽度。
它可以容纳内联元素和其他块元素
什么是行内元素(内联元素)?
和其他元素都在一行上;
高,行高及外边距和内边距不可改变;
宽度就是它的文字或图片的宽度,不可改变
内联元素只能容纳文本或者其他内联元素
将行内元素转换为块级元素,以设置宽高
一般情况下,行内元素是不能直接设置width和height的,不具有物理属性,这也是它不占据一行的原因。
但我们可以通过设置display:block或者display:inline-block样式,将其转换为块级元素或行内块元素,进而设置宽高。
行内元素在设置浮动后可以设置高宽":关键词:行内 元素 设置 浮动 后 可以 设置 高 宽平时经常给<a><span>这样的行内元素设置浮动float:left
or
float:right,浮动了之后还可以给它们设置高度啊宽度啊。这点大家都知道,但是为什么呢?为什么行内元素在浮动之后就可以设置高宽了呢。
引用下曹刘阳写的《编写高质量代码-web前端开发修炼之道》一书中看到的一句话:
position:absolute和float会隐式地改变display类型,不论之前什么类型的元素(display:none除外),只要设置了position:absolute
、 float中任意一个,都会让元素以display:inline-block的方式显示:可以设置长宽,默认宽度并不占满父元素。
这样似乎可以解释的通,元素都隐式地将display变为inline-block,但是ie6\7的css解析器并没有display:inline-block这个属性,只支持display:inline,这样就说不通了。
又想到了,float会触发haslayout,haslayout为true的情况下,元素可以控制自身的布局,但是haslayout是ie专有的,不管其它浏览器什么事情,这个想法应该也不成
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)