深入CSS | 青训营笔记

56 阅读2分钟

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

选择器优先级

根据选择器特异度增加优先级:

屏幕截图_20230118_095647.png

可以先用简单的标签或类选择器生成一些基础样式,再增加优先级设置特定样式:

屏幕截图_20230118_095933.png

继承

某些元素会自动继承父元素的值,一般文字样式是可继承的,盒模型是不继承的,对于某些默认不继承的元素可以设置显性继承inherit

## 初始值

  • CSS中每个元素都有一个初始值
    • background-color初始值为transparent
    • margin-left 初始值为0
  • 可以设置initial属性重置初始值

css求值过程

d82fa411bf0944069e556c842a30f3e8_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp

布局

布局是什么

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

屏幕截图_20230118_101400.png

长宽以及边距设置

屏幕截图_20230118_101523.png

当设置box-sizing为border-box时border与padding归为width与height中

屏幕截图_20230118_101939.png

margin设置auto时可以实现水平居中

border有多种属性可调式    示例

overflow

  • visible可见,内容超出展示框
  • hidden 隐藏,内容隐藏入展示框
  • auto,scroll给展示框添加滚动条,auto需设置最大宽高

行级与块级

屏幕截图_20230118_103035.png

display属性

  • block
  • inline
  • inline-block本身是行级,可以设置宽高,与其他盒子同一行显示,作为一个整体不会被拆散
  • none排版时忽略

屏幕截图_20230118_103340.png

排版

常规流

  • 根元素,浮动和绝对定位的元素会脱离常规流
  • 其他元素都在常规流之内
  • 常规流中的盒子。在某种排版上下文中布局

行级排版上下文

屏幕截图_20230118_103839.png

块级排版上下文

屏幕截图_20230118_103850.png

BFC内的排版规则

  • 盒子从上到下摆放
  • 垂直margin合并
  • BFC内的margin不会与外面的合并
  • BFC不会和浮动元素重叠

FLEX BOX

flex-direction

屏幕截图_20230118_104544.png

屏幕截图_20230118_104554.png

justify-content

屏幕截图_20230118_104605.png

align-items

屏幕截图_20230118_104614.png

align-self

控制单一元素的排列方式

屏幕截图_20230118_104931.png

order

控制元素的排列顺序

屏幕截图_20230118_105005.png

flexibility (子元素的收缩)

  • flex-grow剩余空间的伸展能力
  • flex-shrink空间不足的收缩能力
  • flex-basis没有伸展或收缩时的基础长度

总结

屏幕截图_20230118_105344.png

Grid Box

几乎从来不用

屏幕截图_20230118_105551.png

屏幕截图_20230118_105630.png

屏幕截图_20230118_105642.png

屏幕截图_20230118_105652.png

float浮动

屏幕截图_20230118_105816.png

实现文字环绕效果

position属性

  • static默认非定位元素
  • relative相对自身原本位置偏移,不脱离文档
  • absolute相对非static父级元素绝对定位
  • fiexed相对视口绝对定位

屏幕截图_20230118_110452.png

屏幕截图_20230118_110503.png