深入CSS(上)-笔记DAY3|青训营

43 阅读2分钟

深入CSS(上)

多条选择器选择同一个元素,哪个生效——特异度

选择器的特异度:id(#)、(伪)类(.)、标签(E) 分别的个数,id的优先级最高

  • 例如 .btn.primary 会覆盖 .btn
  • 可以用做基础样式和特殊样式,需要特殊时,给它一个特殊的类,将基础样式覆盖掉 复用

继承

  • 某些属性会自动继承其父元素的计算值,除非显示指定一个值
  • 一般和文字相关的属性都可以继承
  • 例如strong标签的元素的父元素为p

显示继承

  • inherit可以将不可继承的属性显示继承
  • *{
        box-sizing:inherit;
    }
    

初始值

  • 一直没有找到可以继承的值,或者是不可继承的且没有设置属性,就会使用初始值
  • 可以使用initial关键字显式重置为初始值
  • background-color的初始值为transparent
  • margin-left的初始值为0

CSS求值过程

  • 计算值:浏览器在不进行实际布局的情况下,所得到的最具体的值,比如60%
  • 使用值:进行实际布局时使用的值,不会再有相对值或关键字,

布局

  • 确定内容的大小和位置的算
  • 依据元素、容器、兄弟节点和内容等信息来计算

布局相关技术

  • 常规流:行级、块级、表格布局、FlexBox、Grid布局
  • 浮动
  • 绝对定位

width

  • 指定 content box 宽度
  • 取值为长度、百分数、auto
  • auto由浏览器根据其他属性确定
  • 百分数相对于容器的 content box 宽度

height

  • 指定 content box 高度
  • 取值为长度、百分数、auto
  • auto取值由内容计算得来
  • 百分数相对于容器的 content box 高度
  • 容器有指定高度时百分数才生效

padding

  • 指定元素四个方向的内边距
  • 百分数相对于容器的宽度(不管是上下还是左右)

border

  • 指定容器边框样式、粗细和颜色
  • 三种属性:border-width border-style border-color
  • 四个方向:border-top border-right border-bottom border-left
  • border-right:2px dotted red;
    
  • border-width:1px 2px 3px 4px;
    border-style:solid;
    border-color:green blue;
    
  • border-left-width:1px;
    

margin

  • 指定元素四个方向的外边距
  • 取值可以是长度、百分数、auto
  • 百分数相对于容器宽度
  • 当margin-left为auto,margin-right也为auto时,水平居中
  • 只会在上面元素的margin-bottom和下面元素的margin-top中取大的来留中间的间距,不会将两者相加