选择器与盒子模型

94 阅读3分钟

一、选择器

1.结构伪类选择器

(1)作用:根据元素的结构关系查找元系

(2)选择器

选择器 说明
E:first-child 查找第一个E元素
E:last-child 查找最后一个E元素
E:nth-child(N) 查找第一个E元素

(3)E:nth-chid(公式)

作用:根据元素的结构关系查找多个元素

屏幕截图 2024-07-17 091143.png

2.伪元素选择器

(1)作用:创建虚拟元素(伪元素),用来摆放装饰性的内容

(2)选择器

选择器 说明
E::before 在E元素里面前面添加一个伪元素
E::after 在E元素里面前面添加一个伪元素

(3)注意:

  • 必须设置 content:" "属性,用来设置伪元素的内容,如果没有内容,则引号留空即可
  • 伪元素默认是行内显示模式
  • 权重和标签选择器相同

盒子模型

1.盒子模型——组成

  • 内容区域:width&height
  • 内边距:pagging(出现在内容与盒子边缘之间)
  • 边框线:border
  • 外边距:mardin(出现在盒子外面)

1.1边框线

(1)属性名:border

(2)属性值:边框宽度(粗细) 边框样式 边框颜色

屏幕截图 2024-07-17 101519.png

(3)设置单方向边框线

  • 属性名:border-方位名词
  • 1.2内边距

    (1)作用:设置内容与盒子边缘之间的距离

    (2)属性名:padding/padding-方位名词

    (3)多值写法:从顶端顺时针赋值,无值则取其对面值

    屏幕截图 2024-07-17 102536.png

    1.3尺寸计算

    (1)默认情况:盒子尺寸=内容尺寸+border尺寸+内边距尺寸

    (2)结论:给盒子加border或padding会撑大盒子

    (3)解决办法:

    • 手动做减法,减掉border/padding的尺寸
    • 内减模式:box-sizing:border-box

    1.4外边距

    (1)作用:拉开两个盒子之间的距离

    (2)属性名:margin

    (3)提示:与padding属性值写法、含义相同

    (4)版心居中:将宽度设为auto

    2.清除默认样式

    *{
      margin:0;
      padding:0;
      }
    

    3.问题

    3.1元素溢出

    (1)作用:控制溢出元素的内容和显示方式

    (2)属性名:overflow

    (3)属性值

    屏幕截图 2024-07-17 115226.png

    3.2外边距问题——合并现象

    (1)场景:垂直排列的兄弟元素上下margin会合并

    (2)现象:取两个margin中间的较大值生效

    3.3外边距问题——塌陷问题

    (1)场景:父子级的标签,子级的添加上外边距会产生塌陷问题

    (2)现象:导致父级一起向下移动

    (3)解决办法:

    • 取消子级margin,父级设置padding
    • 父级设置overflow-hiding(溢出隐藏)
    • 父级设置border-top

    3.4行内元素——内外边距问题

    (1)场景:行内元素添加margin和padding无法改变元素垂直位置

    (2)解决方法:给行内元素添加line-height可以改变垂直位置

    4.盒子模型——圆角

    (1)作用:设置元素的外边框为圆角

    (2)属性名:border-radius

    (3)属性值:数字+px/百分比

    (4)属性值是圆角半径

    (5)常用模型:

    • 正圆模型:给正方形盒子设置圆角属性值为宽、高的一半/50%
    • 胶囊形状:给长方形盒子设置圆角属性值为盒子高度的一半

    5.盒子模型——阴影

    (1)作用:给元素设置阴影效果

    (2)属性名:box-shadow

    (3)属性值: X轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影

    (4)注意:

    • X轴偏移量和y轴偏移量必须书写
    • 默认是外阴影,内阴影需要添加inset