css设置元素继承⽗元素宽度_CSS设置HTML元素的⾼度与宽
度的各种情况总结
1.元素不设宽度
第⼀种情况:元素为⽂档流中元素
dd
dd
dd
结论1:把⼦元素定位换成position:relative与上述例⼦表现⼀样,因此在元素不设宽度时,若元素为⽂档流中元素,则此元素继承其⽗元素宽度
第⼆种情况:元素为脱离⽂档流元素
dd
结论2:把⼦元素定位换成position:absolute或position:fixed与上述例⼦表现⼀样,因此在元素不设宽度的情况下,若⼦元素为脱离⽂档流元素,则此元素宽度等于其内容宽度。
2.元素宽度为100%
第⼀种情况:元素为⽂档流中元素
结论3:将上⾯结论1中的例⼦元素宽度换为100%,表现与结论1例⼦的表现⼀样,因此若元素为⽂档流中元素,则⼦元素宽度为⽗元素宽度的的100%。
第⼆种情况:元素为脱离⽂档流元素
(1)元素为浮动元素
CSS Code复制内容到剪贴板
dd
dd
结论4:当元素宽度为100%时,若元素为浮动元素,则此元素宽度为⽗元素宽度的100%。
(2)元素为绝对定位元素
CSS Code复制内容到剪贴板
dd
dd
dd
结论5:当元素宽度为100%时,若元素为绝对定位元素,则元素宽度等于元素的offset-parent宽度的100%
3.元素为固定定位元素
CSS Code复制内容到剪贴板
dd
dd
结论6:当元素宽度为100%时,若元素为固定定位元素,则元素的宽度始终都为body宽度的100%
阶段总结⼀1.在元素不设宽度的情况下:
若元素为普通流中元素,元素宽度等于⽗元素宽度;
若元素不在⽂档流中,元素宽度等于内容宽度;
2.在元素宽度为100%的情况下:
若元素为普通流元素或者浮动元素,元素宽度为⽗元素宽度的100%;若元素为绝对定位元素,元素宽度为元素offset-parent宽度的100%;若元素为固定定位元素,元素宽度始终为body的100%
关于元素⾼度的讨论
根据上⾯关于宽度的讨论,⼤家可以⾃⼰根据此思路进⾏元素⾼度讨论得出结论,这⾥我就直接给出我经过验证得出的结论。若有不当之处,请指正。
阶段总结⼆1.在元素不设⾼度的情况下:
若元素没有内容,则⾼度为0;若元素有内容,元素⾼度为内容⾼度
2.在元素⾼度为100%的情况下:
若元素为普通流元素或者浮动元素,元素⾼度为⽗元素⾼度的100%;若元素为绝对定位元素,元素⾼度为元素offset-parent⾼度的100%;若元素为固定定位元素,元素⾼度始终为body的100%
4.元素的各种定义
css固定定位(1)块级元素与块元素块级元素(block-level elements)
那些视觉上会被格式化成块状的元素,通俗⼀点来说就是那些会换新⾏的元素。display 属性值为:block, list-item, table 值都可以将⼀个元素设置成块级元素。
(2)块元素display属性值为block的元素,是块级元素的⼀个⼦集。
(3)⾏内级元素与⾏内元素
A.⾏内级元素(inline-level elements)⾏内级元素是那些不会为⾃⾝内容形成新的块,⽽让内容分布在同⼀⾏中的元素。display 属性的:inline, inline-table, inline-block 值都可以将⼀个元素设置成⾏内级元素。
B.⾏内元素display属性为inline的元素,是⾏内级元素的⼀个⼦集
(4)置换元素与⾮置换元素
A.置换元素(replaced element)⼀个内容 不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本⾝⼀般拥有固有尺⼨(宽度,⾼度,宽⾼⽐)的元素,被称之为置换元素。这类元素,浏览器根据元素的标签和属性,来决定元素的具体显⽰内容。
常见的置换元素有这些:img,input,textarea,select,button等
B.⾮置换元素(non-replaced element)w3c并没有给出明确的⾮置换元素的解释,但能确定的是除置换元素之外,所有的元素都是⾮置换元素。
5.元素⾼度与宽度的讨论
(1)⾏内级⾮置换元素宽度与⾼度的设置对于⾏内级⾮置换元素时不适⽤的,例如span,a
(2)⾏内级置换元素在前⾯已经结束过关于置换元素的概念,置换元素⼀般都是⼀般拥有固有尺⼨(宽度,⾼度,宽⾼⽐)的元素,因此对于置换元素在不设宽度和⾼度的情况下,元素宽⾼度等于元素⾃⾝固有尺⼨。因此只⽤对当元素宽度或者⾼度设为100%的情况进⾏讨论
A.有固有⽐例的元素对于有固有⽐例的元素来说如果宽度与⾼度的⼀⽅有确定的值,若另⼀⽅并⽆设置值,则另⼀⽅的计算值就由确定的⾼度或者宽度乘以固有⽐例来得到,因此对于有固有⽐例的元素,我们只⽤讨论⾼度与宽度中的⼀⽅即可,例如img元素
B.没有固有⽐例的元素对于没有固定⽐例的元素,元素的宽度或者⾼度不会随另⼀⽅的变化⽽变化,例如input,textarea,select,button等
结论对于⾏内级置换元素:在设宽度为100%的情况下
⽐照上⼀篇的例⼦,可⾃⾏进⾏实验,这⾥我就直接给出结论
若元素为普通流元素或者浮动元素,元素宽度或者⾼度为⽗元素宽度或者⾼度的100%;若元素为绝对定位元素,元素宽度或者⾼度为元素offset-parent宽度或者⾼度的100%;若元素为固定定位元素,元素宽度或者⾼度始终为body的100%
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论