Day3--字节跳动|青训营

75 阅读3分钟

一些概念

特异度:

更特殊的选择器,它的优先级更高。


继承:

如果没有显式地指定一个值,某些属性会自动继承其父元素的计算值(一般来说,和文字相关的属性是可以继承的,和盒模型相关的属性是不可继承的)

对于不可继承的元素来说,可以使用 inherit 来实现对指定父元素的继承。


初始值:

  • CSS中,每个属性都有一个初始值

    • background-color 的初始值为 transport
    • margin-left 的初始值为 0
  • 类似的,我们可以使用 initial 关键字显式重置为初始值

    • background-color:initial

CSS 盒模型

在CSS中,元素根据其显示方式可以分为行级元素和块级元素。行级元素是指那些在文本行中显示的元素,而块级元素是指占据整个可用宽度的元素。这两种元素在盒模型方面有一些差异。

行级元素的盒模型

行级元素的盒模型相对简单。它们不具有宽度和高度属性,只有水平方向上的内边距(padding)和边框(border)属性。行级元素不会独占一行,它们会按照文本流水平排列。

在行级元素的盒模型中,可以设置的属性有:

  • padding-leftpadding-right:用于控制内容与边框之间的水平间距。
  • border-leftborder-right:用于设置边框的样式、宽度和颜色。
  • margin-leftmargin-right:用于控制元素与相邻元素之间的水平间距(外边距在行级元素中不会导致垂直间距,因为它们不独占一行)。

块级元素的盒模型

块级元素的盒模型相对复杂,因为它们独占一行,可以设置宽度和高度,并且可以在垂直方向上设置内边距、边框和外边距。

在块级元素的盒模型中,可以设置的属性有:

  • width:用于设置元素的宽度。
  • height:用于设置元素的高度。
  • padding:用于控制内容与边框之间的内边距。
  • border:用于设置边框的样式、宽度和颜色。
  • margin:用于控制元素与相邻元素之间的外边距。

border-box 和 content-box

content-box

content-box是默认的CSS盒模型。在content-box模型中,元素的总宽度和总高度仅包括元素的内容区域(即widthheight属性指定的尺寸)。任何边框(border)、内边距(padding)或外边距(margin)都会被额外增加到元素的总宽度和总高度之外。

简而言之,widthheight仅表示元素的内容尺寸,而边框、内边距和外边距都会在其外部额外添加空间。

border-box

border-box是另一种盒模型。在border-box模型中,元素的总宽度和总高度包括元素的内容区域、边框和内边距。换句话说,widthheight属性指定的尺寸会包括边框和内边距的空间,而外边距仍然会在其外部添加。

这使得在border-box模型下更容易控制元素的大小,因为你可以直接设置widthheight属性来确定整个元素的尺寸,而不需要考虑边框和内边距的额外空间。

如何设置盒模型

可以使用CSS的box-sizing属性来设置盒模型的类型:

  • box-sizing: content-box;:使用content-box盒模型。
  • box-sizing: border-box;:使用border-box盒模型。

例如,要将元素设置为border-box盒模型:

css
复制代码
cssCopy code
.element {
  box-sizing: border-box;
  width: 200px;
  padding: 10px;
  border: 2px solid black;
}

在上面的例子中,总宽度将是200px(包括边框和内边距),而不需要额外计算边框和内边距的空间。