CSS学习笔记

37 阅读3分钟

CSS

选择器

  • Cascading Style Sheets
  • 用来定义页面元素的样式
    • 设置字体和颜色
    • 设置位置和大小
    • 添加动画效果

image.png

页面使用css的三种方式

  • 外链:引入css
  • 嵌入:在style标签里面编辑
  • 内联:标签直接编辑

CSS 工作过程

image.png

选择器Selector

  • 找出页面中的元素,以便给他们设置样式
  • 使用多种方式选择元素
    • 按照标签名、类名或id
    • 按照属性
    • 按照DOM树中的位置

通配选择器*

匹配所有

标签选择器

使用标签设置样式

id选择器

保持唯一性

类选择器 class

比较常用的选择器

属性选择器(多样性)

根据属性是某个特定的值设置样式

伪类选择器

  • 不急于标签和属性定位元素
  • 几种伪类
    • 状态伪类:这个元素处于某一种状态
    • 结构型伪类

组合

image.png

选择器组

image.png

颜色

  • 颜色名称
  • 十六进制
  • RGB
  • RGBA
  • HSL
  • HSLA

字体

  • font-family
  • web font: 解析会有性能开销

选择器的特异度

image.png

继承

某些属性会自动继承其父元素的计算值,除非显式指定一个值

显式继承

inherited 关键字来让原本不可以继承的属性来可以继承

初始值

  • CSS中,每个属性都有一个初始值
    • background-color:的初始值为transparent
    • margin-left的初始值为0
  • 可以使用initial关键字显式重置为初始值
    • background-color:initial

CSS取值过程

image.png

image.png

image.png

布局相关技术

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

盒模型

image.png

  • width
    • 指定content box宽度
    • 取值为长度、百分数、auto
    • auto 由浏览器根据其他属性确定
    • 百分数相对于容器的content box宽度
  • height
    • 指定content box高度
    • 取值为长度、百分数、auto
    • auto 由浏览器根据其他属性确定
    • 百分数相对于容器的content box高度
    • 容器有指定的高度时,百分数才生效
  • padding
    • 指定元素四个方向的内边距
    • 百分数相对于容器的宽度
  • border
    • 指定容器边框样式、粗细和颜色
    • 多种方向、属性 自由组合
  • margin
    • 指定元素四个方向
    • 取值为长度、百分数、auto
    • 百分数相对于容器宽度
  • overflow
    • auto
    • hidden
    • scroll

块级元素

body、article、div、main、section、h1-6、p、ul、li等

行级元素

sapn、em、strong、cite、code等

image.png

行级排版上下文
  • Inline Formatting Context(IFC)
  • 只包含行级盒子的内容会创建一个IFC
  • IFC内的排版规则
    • 盒子在一行内水平拜访
    • 一行放不下时,换行显式
    • text-align决定一行内盒子的水平对其
    • vertical-align决定一个盒子在行内的垂直对齐
    • 避开浮动元素
块级排版上下文
  • Block Formatting Context(BFC)
  • 某些容器会创建一个BFC
    • 根元素
    • 浮动、绝对定位、inline-block
    • Flex子项和Grid子项
    • overflow值不是visible的块盒
    • display:flow-root
BFC内的排版规则
  • 盒子从上到下拜访

  • 垂直margin合并

  • BFC内盒子的margin不会与外面的合并

  • BFC不会和浮动元素重叠