CSS|青训营笔记

51 阅读3分钟

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

1.选择器的特异度

image.png 判断哪条规则生效?

image.png

解释:

因为,在 1 中,id 选择器有 1个(#nav),类与伪类共有 2个(.list 与 :link),元素与伪元素共有 2个(li 与 a)。所以在 1 中的特异度为 122。

在 2 中,id 选择器有 0个,类与伪类共有 2个(.hd 与 .links),元素与伪元素共有 2个(ul 与 a)。所以在 2 中的特异度为 22。

因为,在 1 中的特异度为 122 大于 在 2 中的特异度为 22 。 所以,在 2 中的选择器的优先级更高。

2.CSS选择器的优先级顺序:

基本原则: 一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越精确,它的优先级就越高。

复杂的计算方法:
用1表示派生选择器的优先级
用10表示类选择器的优先级
用100表示ID选择器的优先级

3.CSS的布局(Layout)

块级元素vs行级元素

块级行级
不和其他盒子并列摆放和其他行级盒子一起放在一行或拆开成多行
适用所有的盒模型属性盒模型中的width、height不适用
生成块级盒子生成行级盒子 内容分散在多个行盒中
body、article、div、main、section、h1-6、p、ul、li等span、em、strong、cite、code等
display:blockdisplay:inline

4、Flex布局

Flex是Flexible Box的缩写 flex布局表示弹性布局,可以为盒状模型提供最大的灵活性。

任何一个元素都可以指定为flex布局。采用flex布局的元素被称作容器。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

容器的一些属性: 有六个常用属性设置在容器上,分别为:

  • flex-direction
  • flex-wrap
  • flew-flow
  • justify-content
  • align-items
  • align-content

flex-direction 属性设置容器主轴的方向

包含四个属性值:

row: 默认值,表示沿水平方向,由左到右。

row-reverse :表示沿水平方向,由右到左

column:表示垂直方向,由上到下

column-reverse:表示垂直方向,由下到上

.wrap{ flex-direction:row | row-reverse | column | column=reverse; }

flex-wrap属性

flex-wrap属性用于设置当项目在容器中一行无法显示的时候如何处理

包含三个属性值:

nowrap:表示不换行

说明:设置的项目的宽度就失效了,强行在一行显示

wrap:正常换行,第一个位于第一行的第一个

wrap-reverse:向上换行,第一行位于下方

.wrap{ flex-wrap:nowrap | wrap | wrap-reverse; }

flex-flow属性

flex-flow属性是flex-deriction和flex-wrap属性的简写,默认值为[row nowrap];,

第一个属性值为flex-direction的属性值

第二个属性值为flex-wrap的属性值

justify-content 属性

justify-content属性用于设置项目在容器中的对齐方式。

.wrap{ justify-content: flex-start | flex-end | center |space-between | space-around }