深入理解CSS:inline、line-height与布局秘密

0 下载量 50 浏览量 更新于2024-08-30 收藏 160KB PDF 举报
"深入理解inline元素、line-height、float与absolute定位在CSS布局中的应用" 在Web开发中,CSS布局是构建网页设计的关键部分。本文将深入探讨行内元素(inline)、line-height、浮动(float)以及绝对定位(absolute)这四个概念之间的交互,帮助你更好地理解和运用它们。 首先,行内元素如`<span>`、`<a>`等,它们在布局中遵循文本流,不接受宽度(width)和高度(height)的设置,但可以接受边距(margin)和填充(padding)。然而,行内元素的`margin`仅对水平方向起作用,`padding`则会影响元素的尺寸,但不会改变内容区域的高度。在示例代码中,`<span>`元素的宽高设置并未影响其实际表现,这是行内元素的基本特性。 接着,line-height属性决定了行内元素之间垂直间距的大小。在无内容的`<div>`中,当添加文字时,`div`的高度由line-height决定,而不是内容本身。这是因为默认情况下,`div`虽然被设置为块级元素,但内部的文字使其表现为行内行为。因此,line-height不仅影响文本的排列,也会影响到包含这些文本的行内块元素的高度。 浮动(float)是CSS布局中一个重要的概念,常用于创建多列布局。当一个元素设置了`float: left`或`float: right`,它会脱离正常文本流,向左或向右移动,直到碰到容器的边缘或另一个浮动元素。这种浮动特性使得后续元素可以围绕它排列。在上述例子中,没有文字的`<div>`因为空白而“消失”,实际上是由于没有内容产生line-height,而添加文字后,line-height的存在使得`div`重新显现。 最后,绝对定位(absolute)是一种定位方式,元素会相对于最近的非 static 定位祖先元素进行定位。使用`position: absolute`时,元素会脱离正常文档流,不再影响周围元素的位置,可以自由地设置宽高和位置。这对于创建复杂的层叠布局非常有用,但需要注意的是,绝对定位的元素可能会导致父元素的高度塌陷,需要通过`position: relative`、`clearfix`或者`min-height`等方法来解决。 理解inline元素的行为、line-height的影响、浮动的作用以及绝对定位的原理,是提升CSS布局技能的关键。在实际开发中,灵活运用这些特性可以创造出丰富多样的网页布局效果。对于初学者,深入研究这些概念并结合实践,将有助于提高代码质量和设计能力。

*{ margin: 0; padding: 0; } html,body{ height: 100%; } body{ width: 100%; background-image:radial-gradient(#22002a,#01001f) } a{ text-decoration: none; } #movie_info{ width: 990px; margin: 0 auto; padding-bottom: 60px; box-sizing: border-box; } #movie_info .info{ width: 100%; padding-bottom: 15px; border-bottom: 1px dotted rgb(255,255,255,0.3); } #movie_info .info img{ float: left; box-shadow: 0 0 6px #C4C4C4; margin-top: 36px; } table{ margin-top: 20px; margin-right: 10px; float: right; color: white; font-size: 13px; } table,tr,td,th{ border: none; } th{ font-size: 22px; text-align: left; height: 38px; line-height: 38px; color: #fdfed2; } td{ width: 240px; line-height: 24px; } table a{ display: block; width: 100px; height: 30px; line-height: 30px; border-radius: 5px; color: #FFFFFF; text-align: center; margin-top: 15px; } table .lookInfo{ background-image:linear-gradient(#9ac534,#427e22) ; } table .buy{ background-image:linear-gradient(#ff8b45,#ff5200) ; } table .score{ color: #f2a32e; } table .score .star{ margin-left: 15px; display: inline-block; width: 103px; height: 20px; background: url(../images/star_big.png) left -80px no-repeat; } table .score em{ font-size: 28px; color: #f2a32e; } #movie_info .info:after,#movie_info ul:after{ content: ""; display: block; clear: both; } /*猜你喜欢*/ #movie_info .like{ position: relative; } #movie_info .like span{ position: absolute; top: 10px; left: 25px; display: block; width: 100px; height: 30px; line-height: 30px; border-radius: 2px; background:rgb(220,216,216, 32%); color: #FFFFFF; text-align: center; font-size: 12px; } #movie_info .like ul{ width: 990px; height: 190px; position: absolute; top: 50px; left: 25px; overflow: hidden; } #movie_info .like ul:after{ content: ""; display: block; clear: both; } #movie_info .like li{ width: 119px; text-align: center; float: left; margin-right: 20px; font-size: 12px; color: #e1ab5b; line-height: 20px; cursor: pointer; } #movie_info .like li img{ width: 119px; height: 168px; }。每行代码加上注释

2023-06-01 上传