定位后的行内元素可以设置宽高吗

定位后的行内元素可以设置宽高吗,第1张

相对定位之后的行内元素是依然不可以设置宽高的,需要加display:block设置;但是绝对定位后的行内元素就可以直接设置了。(这里说的设置是指width生效,而不是单纯的写上了而已)。

教程 *** 作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

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专有的,不管其它浏览器什么事情,这个想法应该也不成


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11632352.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存