青训营X豆包MarsCode CSS学习

45 阅读3分钟

深入了解CSS(上)

CSS选择器优先级

  1. 根据选择器的特异度(Specialty): 计算选择器的特异度,特异度越高,优先级越高。 特异度的计算方法:

    • 元素选择器(Element Selector):div
    • 类选择器(Class Selector):.class
    • ID选择器(ID Selector):#id
    • 伪类选择器(Pseudo-class Selector)::hover
    • 伪元素选择器(Pseudo-element Selector):::before
    • 属性选择器(Attribute Selector):[type="text"]

    id选择器的优先级最高,其次是类选择器,再次是元素选择器。

  2. 选择组合类选择器(Combined Selector):例如:.class1.class2

    选择组合类选择器的优先级会比单个类选择器的优先级高,它会覆盖掉单个选择器中的样式。

CSS继承

  1. 继承:当一个元素没有指定某个样式时,它会从其父元素继承该样式。例如:
<p >This is a <span>paragraph</span>.</p>
<style>
p {
  color: red;
}
</style>

在上面的代码中,span元素没有指定color样式,因此它会从p元素继承color样式。(一般用于文本样式的继承)

  1. 显示继承:使用inherit关键字可以将父元素的样式直接应用到子元素上。例如:
<div>
  <p>This is a <span>paragraph</span>.</p>
</div>
<style>
div {
  color: red;
}
p {
  color: inherit;
}
</style>

在上面的代码中,p元素的color样式使用了inherit关键字,因此它会直接继承div元素的color样式。

  1. 初始值:CSS中每个属性都有初始值,当元素没有指定该属性时,它会使用初始值。也可以使用initial关键字来设置初始值。

CSS盒模型

  1. 盒模型:CSS盒模型是指CSS中用来控制元素的大小、位置和外观的模型。CSS盒模型由四部分组成:边框border、内边距padding、内容content、外边距margin

  2. 宽度,高度:CSS中有三种设置宽度的方式:

    • widthheight属性:设置元素的宽,高度,单位可以是像素px、百分比%(容器有指定的宽高度时,百分比才会生效)、em等,也可以是auto(根据内容自动调整宽高度)。注:width属性设置的是内容区的宽度,paddingborder会使得内容区的宽度增加。
  3. 内边距:padding属性用来设置元素的内边距,可以设置四个方向的内边距padding-top,padding-right,padding-bottom,padding-left,单位可以是像素px、百分比%(相对于容器的宽度)、em等。

  4. 边框:border属性用来设置元素的边框,可以设置边框的宽度border-width、样式border-style,如实线border-style:solid、颜色border-color。四个方向。例子:

div {
  border: 1px solid black;
}

border-box:设置元素的边框和内边距包含在内容区的宽度内。 box-sizing:设置元素的盒模型,可以设置content-box(默认值)、border-box

  1. 外边距:margin属性用来设置元素的外边距,可以设置四个方向的外边距margin-top,margin-right,margin-bottom,margin-left,单位可以是像素px、百分比%(相对于容器的宽度)、em等。 例子:
div {
  margin: auto; /* 居中 */
}