CSS | 青训营笔记

73 阅读3分钟

这是我参与「第四届青训营」笔记创作活动的的第2天

今天一直在路上坐高铁加上换乘,导致看课程断断续续的,还好前面讲的是基础,又在不能做笔记的条件下,用脑子再梳理了一遍;但是关于布局我一直有点混乱,所有记下了很多笔记,理解清晰了许多!

课程收获

1.判断哪条规则生效

根据选择器的特异度:#(id)(伪类)、.E(标签)数量的比较

2.属性继承(与盒模型相关的都不可继承

显示继承:inherit,继承的是其父元素的计算值(不是百分比)

3. 属性初始

显示重置为初始值:initial,每个元素都有一个初始值

4.布局相关技术

常规流:

  • 盒子模型

width/height:content box的宽度/高度,取值方式有长度、百分数(相对于容器的content box来说(有指定高度才生效)、auto

padding(内边距):上右下左,百分数相对于容器的witdh和height

border:三种属性(border-width、border-style、border-color),style样式(none、solid、dashed、dotted),方向上右下左,得到不同的形状

margin(外边距):

ps1. margin:auto,当左右都为auto,实现水平居中;
2. margin collapse,垂直上取两元素的最大margin

  • box-sizing:border-box 模型
* {
        box-sizing:border-box;
  }

content溢出处理方式overflow

  • visible
  • hidden
  • scroll

display方式

  • display:block;块级盒子不和其他盒子并列,全部使用
  • display:inline:行级可以和其他盒子放在一行,width、height不适用 ,
  • display:inline-block,一个图片,里面内容inline,整体block

行级排版上下文: 只包含行级盒子的容器规则:一行内水平,一行不够换行凑,text-align决定水平对齐, vertical-align决定行内垂直对齐,避开float元素

块级排版上下文

  • 什么会创建一个BFC: 根元素;浮动、绝对定位、inline-block、Flex和Grid子项 overflow不是visible的块盒;display:flow-root

  • BFC内排版规则:

  1. 盒子从上到下
  2. margin居中
  3. BFC内的盒子的margin不会与外面合并(eg.两个元素放在div并将overflow设置为hidden)
  4. BFC不会和浮动元素重叠->清除浮动
  • Flex Box

display:flex

根据方向确定主轴justify-content、侧轴align-items,特殊设置align-self

Flexibolity

flex-grow:伸展,将多出来的空间按比例分别分配扩大

flex-shrink:压缩,压缩后按按比列压缩

flex-basis:原本宽高

flex:grow、shrink、basis
  • Grid布局(二维布局):

display:grid

grid-template划分格子 :grid-template-columns/rows

grid line划网格线

grid-area(理解得不是很到位)

浮动:float

不常用,仅用来改变图片与文字的位置关系,现能更安全实现

绝对定位:position

  • static默认
  • relative偏离不脱离文档流(被认为还在原应在位置)
  • absolute绝对定位(被认为不存在,不影响其他元素)
  • fixed相对于视口绝对(eg滚动固定)

建议:MDN和W3C CSS规范

关于大项目

  • 熟悉了一下github desk的使用
  • 小组成员完成一个小demo,目前已经分工,已clone队友的项目来看代码、了解架构、熟悉代码,将进行个人分工代码的编写任务