深入理解CSS:inline元素与line-height、float、absolute的关系

0 下载量 16 浏览量 更新于2024-08-27 收藏 160KB PDF 举报
"本文讲述了关于CSS中的inline元素、line-height、float和absolute定位之间的故事,强调了行内元素特性及其与布局相关的知识点。" 在前端开发中,CSS是我们构建网页布局的重要工具。本文以一个引人入胜的故事形式,探讨了行内元素(如`<span>`、`<a>`等)与`line-height`、`float`和`absolute`定位的关系,揭示了它们在网页设计中的重要性。 首先,行内元素是网页布局的基础组成部分,它们按照文本流自然排列,不会占据独立的块级空间。例如,`<p>`标签中的文本就是典型的行内元素。行内元素的特点包括:宽度(width)和高度(height)设置无效,上下`margin`和`padding`无效,但左右的`margin`和`padding`有效。这些特性使得行内元素在布局中显得相对灵活,但也因此容易被开发者忽视其潜在的影响力。 `line-height`属性在行内元素中扮演着关键角色。它定义了行内元素之间垂直间距,而不是元素自身的高度。当一个行内元素没有内容时,其高度几乎为零,只有在包含内容(如文字)时,`line-height`才会使元素呈现出明显的高度。例如,一个空的`<div>`在浏览器中几乎不可见,但一旦添加文字,`line-height`就会使`div`产生高度,这是因为文字的存在实际上设置了行高。 接下来,文章提到了`float`属性。`float`常用于创建浮动布局,可以让元素脱离正常文本流,并向左或向右移动,允许其他内容环绕其周围。这在创建多列布局或者图像与文本混排时非常有用。然而,浮动元素会影响周围元素的布局,可能会导致父元素高度塌陷,需要通过清除浮动(clear:both)来解决。 最后,`absolute`定位是一种绝对定位方式,它将元素从正常文档流中移除,并相对于最近的非 static 定位祖先元素进行定位。这种定位方式在创建复杂布局和弹出框等场景中十分常见。但需要注意,绝对定位的元素会脱离其所在行,可能导致原本的行内元素布局发生改变。 总结来说,理解行内元素、`line-height`、`float`和`absolute`定位是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 上传