///施工中///

选择器

选择器可以合并,要合并的选择器之间用逗号隔开。

通用选择器

1
2
3
4
*
{
    属性:值;
}

元素选择器

1
2
3
4
p
{
    属性:值;
}

id选择器

1
2
3
4
#elementid
{
    属性:值;
}

类选择器

1
2
3
4
5
6
7
8
9
10
/*选择单个类*/
元素名.类名
{
    属性:值;
}
/*选择同时为多个类的元素*/
元素名.类名A.类名B
{
    属性:值;
}

组合选择器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*选择元素A的所有后代中的元素B*/
元素A 元素B
{
    属性:值;
}
/*选择元素A的儿子中的元素B*/
元素A > 元素B
{
    属性:值;
}
/*选择与元素A同级且邻接的元素B*/
元素A + 元素B
{
    属性:值;
}
/*选择与元素A同级,且在其之后的元素B*/
元素A ~ 元素B
{
    属性:值;
}

伪类选择器

1
2
3
4
元素:伪类
{
    属性:值;
}

伪元素选择器

1
2
3
4
元素::伪元素
{
    属性:值;
}

属性选择器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*选择设置了指定属性的元素*/
元素[属性]
{
    属性:值;
}
/*选择设置了指定属性及其值的元素*/
元素[属性="值"]
{
    属性:值;
}
/*选择设置了指定属性,且该属性包含指定值的元素*/
元素[属性~="值"]
{
    属性:值;
}
/*同上,但值不一定是完整单词*/
元素[属性*="值"]
{
    属性:值;
}
/*选择设置了指定属性,且以指定值开头的元素*/
元素[属性|="值"]
{
    属性:值;
}
/*同上,但值不一定是完整单词*/
元素[属性^="值"]
{
    属性:值;
}
/*同上,但是以指定值结尾*/
元素[属性$="值"]
{
    属性:值;
}

属性

资源的引用方式:

1
url("资源路径")

背景

背景的简写格式:

1
2
3
4
body
{
    background: background-color background-image background-repeat background-attachment background-position;
}

background-color,background-image 指定元素背景;
background-repeat 设置背景重复方式;
background-position 指定背景图像位置,接受预设参数或x,y两个参数;
background-attachment 指定背景是否固定;
background-size 设定背景尺寸,单参数时保留宽高比缩放宽度;
background-origin 指定背景的开始定位盒子;
background-clip 设定背景的绘制盒子。
背景可以有多个图片,上述属性可接受多个参数,第一个图片是最上层图层,依次设置即可。
opacity 指定整个元素的不透明度。
background-image ,可以赋值 linear-gradient 设置渐变:

1
linear-gradient(方向/角度(0deg=to top),颜色A,颜色B (颜色B比例),...)

也可以用 repeating-linear-gradient 设置重复线性渐变;
可以赋值 radial-gradient 设置径向渐变:

1
radial-gradient(渐变形状 渐变结束位置 at 渐变中心x 渐变中心y,颜色A,颜色B (颜色B比例),...)

同理可用 repeating-radial-gradient 设置重复径向渐变。
box-shadow 设定整个元素的阴影,用法与 text-shadow 一致。

边框

边框的简写格式:

1
2
3
4
p
{
    border: border-width border-style border-color;
}

其中的 border 也可为 border-left 等。
当处理不同数目的参数时:

  • 一个参数:全部应用;
  • 两个参数:先上下再左右;
  • 三个参数:先上,再下,最后左右;
  • 四个参数:由上开始,顺时针遍历。

border-style 指定边框形式,是边框的必需项;
border-width 设定边框厚度;
border-color 设定边框颜色;
border-radius 设定边框圆角半径。
也可以用图像设置边框,这时把 border-color 设为 transparent

1
2
3
4
5
p
{
    border: 10px solid transparent;
    border-image: url("border.png") 10 round;
}

边距

设定的边距会拓展原有的宽高。

外边距 margin

在普通文档流的垂直外边距中,当外边距相邻接(或元素包含)时,邻接的边距会发生合并,合并后的边距取二者的最大值。
margin 具有和 border 相同的赋值方式。
设定为 auto 时,令该元素在父容器中水平居中;
设定为 inherit 时,该元素的 margin 继承自父元素。

内边距 padding

padding 也有与 border 相同的赋值方式。
margin 一致,padding 可以运用 inherit,但 auto 无效。
当进行如下设定时,padding不会影响元素的预设宽高:

1
2
3
4
div
{
    box-sizing:border-box;
}

宽高

widthheight 分别用于设定元素宽高;
如此设定的宽高不包括边距。
也可以用 max-widthmax-height / min-widthmin-height 指定最大/最小宽高并覆盖前两项。

轮廓

轮廓的简写格式:

1
2
3
4
p
{
    outline: outline-width outline-style outline-color;
}

outline 具有与 border 相同的简写属性及其必要性,且从边框向外绘制,但其不影响元素的宽高。
outline-offset 设定轮廓与边框间的距离。

文本

color 设定文本颜色;
text-align 指定块内文本(水平)对齐方式;
vertical-align 设定行内元素(垂直)对齐方式;
direction 指定文本方向;
text-decoration 设置文本装饰;
text-shadow 用于给文本添加阴影,可以设定多个阴影,格式如下:

1
2
3
4
p
{
    text-shadow: 水平大小 垂直大小 模糊大小 阴影颜色;
}

text-transform 批量转换文本字母;
text-indent 指定文本首行缩进;
letter-spacing 指定文本字符间距(0为标准);
line-height 指定行距;
white-space 指定元素内部空白的处理方法;
text-overflow 指定溢出文本的处理方法;
word-wrap 使长单词强制换行以适应容器;
word-break 指定换行规则;
writing-mode 指定文本书写方法。

字体

字体的简写格式:

1
2
3
4
p
{
    font: font-style font-variant font-weight font-size line-height font-family
}

font-family 指定文本字体,可接受多个参数,参数之间用逗号隔开,多单词参数用双引号括起来:

1
2
3
4
p
{
    font-family: "Times New Roman",Times,serif;
}

font-style 指定斜体文本;
font-weight 指定字体粗细;
font-variant 指定字体显示是否为小型大写字母;
font-size 设置字体大小。

链接

链接的四个常用伪类:

  1. a:link 未访问链接;
  2. a:visited 已访问的链接;
  3. a:hover 鼠标悬停的链接;
  4. a:active 被点击的链接。

列表

列表的简写格式:

1
2
3
4
ul
{
    list-style: list-style-type list-style-position list-style-image;
}

list-style-type 用于指定列表项标记的类型,对有无序列表有分别的支持;
list-style-image 将图像作为列表项标记;
list-style-position 指定列表项标记位置。

表格

HTML中的表格不自带边框,表格边框也具有和 border 相同的赋值方式,对 tablethtd 分别赋值。
table
border-collapse 指定边框是否融合。
thtd
text-align 设定单元格内容水平对齐方式;
vertical-align 设定单元格内容垂直对齐方式;
padding 设定单元格内容与边框距离。
tr
tr:hover 伪类为鼠标悬停时的表格行;
tr:nth-child(even) 伪类及其参数为所有偶数行。

布局控制

display 用于修改默认布局方式:

  • block 设置为块级;
  • inline 设置为行内;
  • none 从布局中删除元素;
  • inline-block 取消行内元素对宽高设置的无视。

visibility 仅用于修改可见性,不影响布局;
position 指定元素的定位方法,与 topbottomrightleft 一起使用;
z-index 指定元素的图层关系,当 position 不为 static 时才起作用;
overflow 用于指定内容过多时的处理方式,overflow-xoverflow-y 分别指定对左右/上下溢出时的处理方式;
float 指定元素的水平浮动方式,与 position 不同,float 并不会使元素完全脱离文档流;
clear 指定该元素要避开哪些浮动元素,并从此元素开始清除对应的浮动;
clearfix 解决元素浮动后父容器高度塌陷:

1
2
3
4
5
6
7
/*在父容器应用clearfix类*/
.clearfix
{
    content:"";
    clear:both;
    display:table;
}

计数器

counter-reset 创建或重置一个计数器变量,同名计数器变量在不同作用域下可以有不同值;
counter-increment 给对应计数器+1;
counter(变量名) 获取单个计数器的值;
counters(变量名,连接符,可选样式) 获取自底向上的所有同名计数器值并用连接符连接;
content 添加预设内容。

transform

2D transform

translate() 接受x,y两个参数,将整个元素向右/下移动对应距离;
rotate() 接受一个角度,旋转整个元素;
scale() 接受两个参数,将整个元素的长/宽拉伸缩放到原来的几倍;
skew() 接受两个角度,按轴线拉伸整个元素。
martix() 组合了 scale()skew()translate()

1
transform: martix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY());

3D transform

规则

特异性

选择器具有特异性,高特异性的选择器优先应用。
行内样式 <style> 具有最高特异性;
对同一选择器:

  • 若有一个id,特异性+100;
  • 每有一个类/属性/伪类,特异性+10;
  • 每有一个元素名/伪元素名,特异性+1。
    特异性的比较自左向右,直到遇到第一个不一样的值为止。

!important

在属性的最后一个值后添加 !important 进行覆写,多个 !important 采用特异性最高的一个。

字体自定义

使用 @font-face 设置自定义字体后,在其它元素中用 font-family 指定字体:

1
2
3
4
5
6
@font-face
{
    font-family:我的自定义字体;
    /*font-weight: bold*/
    src: url("字体路径");
}

同一自定义字体可以设置多条规则适应不同情况。