*{box-sizing:border-box;}“盒子”基本上是HTML元素的构建块,它由四个主要块组成:边距(margin)、边框(border)、填充(padding)和内容(content)。2.1、边距边距在所选元素及其周围的所有元素之间添加空白空间,并且不会影响元素内容的大小。现在有个巧妙的小秘密,从边框的外边缘开始,margin-top将选定的元素向下推动而不移动其他元素,而margin-bottom将所述元素保持在原位并向下推动其他元素。margin-left将所选元素推到右侧,并且不移动其他元素,而margin-right将所述元素保持在原位并将其他元素推到右侧。虽然一开始可能听起来令人困惑,但它的工作原理是这样的,因为HTML是从上到下、从左到右呈现的。我强烈建议在开发工具中使用边距,以便更好地了解它的工作原理。现在提出一个开创性的问题:假设我有两个块元素——A和B,A在B之上——如果我添加margin-bottom:15px;会发生什么;到A和margin-top:10px;给B?如果您认为它们之间的距离为25像素,我很抱歉地通知您您错了。为什么?因为边距崩溃!基本上,如果您有两个方向相反的边距,则只会渲染较大的边距(在本例中为15px),而另一个将被忽略。所以在我们的例子中,A和B仅相隔15px。我知道这需要消化很多,但我保证其他属性没有那么复杂。2.2、边框边框定义了元素边缘的外观,它还带走了内容并将内容向内推。因此,如果我们有一个*px的元素,添加一个10px的边框将为我们留下90*90px的内容。2.3、填充padding在元素的边界内添加空白空间——不是空白,这意味着如果元素具有背景颜色,它将不会受到影响——从内容大小中移除,并将其向内推。使用与上面相同的示例,拥有10像素的边框和10像素的内边距将为我们留下80x80像素的内容。2.4、内容内容基本上就是计算完padding和border后剩下的空间。它是文本或图像或子HTML元素开始出现在所选元素中的位置。3、定位我知道你试过给top:50px;你的元素,想知道为什么它没有移动,我们都去过那里。这就是为什么我们需要讨论position属性,它允许您控制元素的位置。3.1、static所有HTML元素都是position:static;默认情况下。这意味着您不能使用top、left、right、bottom属性来移动它们,它们仍然可以使用margin、flexbox等来移动。但在某些情况下,您只想将该元素稍微移动到没有在它周围移动元素,这就是为什么position:relative;接下来即将到来。3.2、relative好的,但相对于什么?位置:相对;意味着元素将相对于其原始位置放置,而与边距不同,不会移动它周围的任何其他元素。通过使用relative,您现在可以使用top、left、right和bottom属性来重新定位您的元素。3.3、absolute我建议您将以下句子阅读10遍,因为一开始它很混乱。位置:绝对;相对于最近的非位置定位所选元素:静态;parent(如果没有这样的元素,它相对于body放置),并将元素从HTML流中取出,导致元素浮动在其他元素之上。您绝对应该只在创建需要浮动在其他元素之上的东西(例如弹出或关闭按钮)时才使用此属性,通常,您使用该属性的次数越少越好。3.4、Fixed位置:固定;与absolute类似,它使元素浮动在其他元素之上。但是,它始终是相对于正文放置的,即使您滚动页面,它也会保持在原来的位置。4、选择器尽管我很想讨论这个话题,但已经有上千篇关于它的文章了,我没有太多要补充的,我最喜欢的一篇是MDN官方文档,(
转载请注明:http://www.guyukameng.com/aspnet/aspnet/2022-07-08/15705.html