CSS
选择器
基础选择器
| 选择器 | 实例 | 描述 | 
|---|---|---|
| .class | .info | 选择class=info的所有元素 | 
| #id | #name | 选择id=name的所有元素 | 
| * | * | 选择所有元素 | 
| element | p | 选择所有<p>元素 | 
| element,element | div,p | 选择所有<div>与<p>元素 | 
| element element | div p | 选择<div>下的所有<p>元素 | 
| [attribute] | [target] | 选择含有target属性的元素 | 
| element[attribute=value] | link[target=_blank] | 选择所有<link>中属性target=_blank的元素 | 
伪类选择器
清除缓存后失效
| 选择器 | 实例 | 描述 | 
|---|---|---|
| :link | a:link | 所有未访问的链接 | 
| :hover | a:hover | 鼠标指针位于其上的链接 | 
| :visited | a:visited | 已访问的链接 | 
| :active | a:active | 活动的链接(例如点击操作时) | 
| :empty | li:empty | 空的列表 | 
| :root | :root | 文档根元素 | 
| :first-child | p:first-child | 选择后代中的第一个为<p>的元素 | 
| :first-of-type: | p:first-of-type | 选择后代中的第一个类型为<p>的元素 | 
父子选择器
| 选择器 | 实例 | 描述 | 
|---|---|---|
| element>element | div>p | 父元素为<div>的所有<p>子元素 | 
| element+element | div+p | 紧接在<div>后的<p>元素 | 
| element~element | div~p | 前面有<div>的每个<p>元素 | 
内容选择器
| 选择器 | 实例 | 描述 | 
|---|---|---|
| [attribute^=value] | a[src^=”https”] | 以https开头的所有链接 | 
| [attribute$=value] | a[src$=”.pdf”] | 以.pdf结尾的所有链接 | 
| [attribute*=value] | a[src*=”abc”] | 属性中包含abc子串的所有链接 | 
权重
以下样式的权重递增,权重一致时选择后出现的样式:
- 泛选择器(例如,*),权重0000。
 - 类型选择器(例如,h1)和伪元素(例如,::before),权重0001。
 - 类选择器 (例如,.example),属性选择器(例如,[type=”radio”])和伪类(例如,:hover),权重0010。
 - ID 选择器(例如,#example),权重0100。
 - 行间样式,权重1000。
 - !important,权重无穷大。
 
文字排版
- px:像素
 - em:相对于当前元素字体的大小
 - rem:相对HTML根元素的字体大小
 - GoogleFonts提供字体,Font-Awesome提供字体图标。
 
字体,字号,字重,特殊标注
1  | body{  | 
文本阴影
1  | body{  | 
文本空白与溢出处理
1  | body{  | 
段落缩进,间距,对齐
1  | body{  | 
CSS框盒
参考:https://blog.raincorn.top/2020/03/21/CSS_box_model/
- 当存在多个边距时,取最大边距。
 - 边距的简化写法中,遵循顺时针即上、右、下、左。
圆角
1
2
3
4
5
6div{
width: 300px;
height: 300px;
border: solid 2px red;
border-radius: 10px;
} 
Flex布局
采用Flex布局的元素称为容器(flex container),子元素称为项目(flex item)。
声明容器
1  | .box{  | 
容器属性
flex-direction:主轴的方向,默认为row
1
2
3
4.box {
<!-- row:从左到右;row-reverse:从右到左 -->
flex-direction: row | row-reverse | column | column-reverse;
}
flex-warp:元素的换行方式,默认为nowarp
1
2
3
4.box{
<!-- nowarp:不换行;warp:第一行在上的换行;warp-reverse:第一行在下的换行 -->
flex-wrap: nowrap | wrap | wrap-reverse;
}

- flex-flow:flex-direction于flex-warp的简写
1
2
3.box {
flex-flow: <flex-direction> || <flex-wrap>;
} justify-content:主轴元素对齐方式,默认为flex-start
1
2
3
4.box {
<!-- flex-start:左对齐;flex-end:右对齐;center:居中;space-between:两端对齐;space-around:间隔相等对齐 -->
justify-content: flex-start | flex-end | center | space-between | space-around;
}
- align-items:交叉轴对齐方式,默认为stretch
1
2
3
4.box {
<!-- flex-start:上对齐;flex-end:下对齐;center:居中对齐;baseline:以第一行文字为基线对齐;stretch:占满当前容器 -->
align-items: flex-start | flex-end | center | baseline | stretch;
}
项目属性
 - order:属性定义项目的排列顺序,数值越小越靠前,默认为0
1
2
3.item {
order: <integer>;
}
 - flex-grow:项目的放大比例,默认为0,不放大;都为1时均分空间
1
2
3.item {
flex-grow: <number>;
}
 - flex-shrink:项目的缩小比例,默认为1
1
2
3.item {
flex-shrink: <number>;
}
 - flex-basis:项目占据的主轴空间,默认为auto
1
2
3.item {
flex-basis: <length> | auto;
} - flex:为flex-grow,flex-shrink,flex-basis的缩写;auto属性对应 1 1 auto,none属性对应0 0 auto
1
2
3.item {
flex: none | auto | flex-grow flex-shrink flex-basis
} - align-self:与容器属性类似
 
参考资料
本文标题:CSS
文章作者:Raincorn
发布时间:2020-07-08
最后更新:2020-07-28
原始链接:https://blog.raincorn.top/2020/07/08/CSS/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可