属性文档,文字属性,字体属性,display,overflow,背景相关属性
1. CSS属性文档
由于浏览器版本、CSS版本等问题,查询某些CSS是否可用
2. 常见CSS属性
2.1. width
宽度
默认值为 auto,由浏览器决定大小
2.2. height
- 高度
2.3. color
- color属性用来设置文本内容的
前景色- 包括文字、装饰线、边框、外轮廓等的颜色
3. CSS颜色的表示方法
- 在CSS中,颜色,有以下几种表示方法
- 颜色关键字
- RGB表示法
3.1. 颜色关键字
- 不区分大小写的标识符,它表示一个具体的颜色
- 可以表示哪些颜色呢?
- https://developer.mozilla.org/zh-CN/docs/Web/CSS/color_value#%E8%AF%AD%E6%B3%95
3.2. RGB的表示方法
RGB是一种色彩空间,通过R(red,红色)、G(green,绿色)、B(blue,蓝色)三原色来组成了不同的颜色
也就是通过调整这三个颜色不同的比例,可以组合成其他的颜色
RGB各个原色的取值范围是 0~255
RGB颜色可以通过以#为前缀的十六进制字符,函数(rgb()、rgba())标记表示
方式一:十六进制符号
#RRGGBB[AA]R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F);A是可选的
比如,#ff0000等价于#ff0000ff;
方式二:十六进制符号
#RGB[A]R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F)
三位数符号(#RGB)是六位数形式(#RRGGBB)的减缩版
- 比如,#f09和#ff0099表示同一颜色
四位数符号(#RGBA)是八位数形式(#RRGGBBAA)的减缩版
- 比如,#0f38和#00ff3388表示相同颜色
方式三:函数符
rgb[a](R, G, B[, A])- R(红)、G(绿)、B (蓝)可以是
<number>(数字),或者<percentage>(百分比),255相当于100% - A(alpha)可以是0到1之间的数字,或者百分比,数字1相当于100%(完全不透明)
4. 文字属性
4.1. text-decoration
用于设置文字的装饰线
- decoration是装饰/装饰品的意思
text-decoration有如下常见取值
- none:无任何装饰线
- 可以去除a元素默认的下划线
- underline:下划线
- overline:上划线
- line-through:中划线(删除线)
- none:无任何装饰线
a元素有下划线的本质是被添加了text-decoration属性
4.2. text-transform
用于设置文字的大小写转换
- Transform单词是使变形/变换(形变)
text-transform有几个常见的值
- capitalize:(使…首字母大写, 资本化的意思)将每个单词的首字符变为大写
- uppercase:(大写字母)将每个单词的所有字符变为大写
- lowercase:(小写字母)将每个单词的所有字符变为小写
- none:没有任何影响
实际开发中用JavaScript代码转化的更多
4.3. text-indent
用于设置第一行内容的缩进
- text-indent: 2em;
- 刚好是缩进2个文字
- em:相对于字体的大小
可以操作的元素
- textarea,span,a,input,img
4.4. text-align
直接翻译:设置文本的对齐方式
MDN:
定义行内内容(例如文字)如何相对它的块父元素对齐常用的值
- left:左对齐
- right:右对齐
- center:正中间显示
- justify:两端对齐
注意点:
如果需要让文本水平居中,text-align属性设置在文本
所在标签的父元素W3C中的解释
- This shorthand property sets the ‘text-align-all’ and ‘text-align-last’ properties and describes how the
inline-level contentof a block is aligned along the inline axis if the content does not completely fill - 定义
行内级元素的对齐方式 text-align-last设置最后一行的对齐方式
- This shorthand property sets the ‘text-align-all’ and ‘text-align-last’ properties and describes how the
4.4.1. 图像居中
1 | <style> |
4.4.2. div居中
1 | <style> |
4.4.3. justify值

1 | <style> |
4.5. text-shadow
text-shadow 用于给文字添加阴影效果
shadow的常见格式如下
1
text-shadow = none | [ <color>? && <length>{2,3} ]#
- 每个阴影都有两到三个
<length>参数,以及一个与阴影颜色相关的<color>参数 - 前两个
<length>参数,是以“文字中心”为原点的坐标轴,分别为 x 轴<offset-x>和 y 轴<offset-y>的值 - 如果有第三个
<length>参数,则第三个数值为形成阴影效果的半径的数值<blur-radius>
- 每个阴影都有两到三个
offset-x
- 必选。指定水平偏移量,若是负值则阴影位于文字左侧
offset-y
- 必选。指定垂直偏移量,若是负值则阴影位于文字上方
blur-radius
- 可选。如果没有指定,则默认为 0。值越大,模糊半径越大,阴影越大越淡
color
- 可选。阴影的颜色。可以在偏移量之前或之后指定
举例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15/* offset-x | offset-y | blur-radius | color */
text-shadow: 1px 1px 2px black;
/* color | offset-x | offset-y | blur-radius */
text-shadow: #fc0 1px 0 10px;
/* offset-x | offset-y | color */
text-shadow: 5px 5px #558abb;
/* color | offset-x | offset-y */
text-shadow: white 2px 5px;
/* offset-x | offset-y
/* Use defaults for color and blur-radius */
text-shadow: 5px 10px;测试文字的阴影
拓展
- 阴影可以叠加设置,每组阴影取值之间以逗号隔开
1
2/* 右下方向添加阴影 */
text-shadow: 13px 20px 12px red,20px 30px 10px green;
4.6. letter-spacing
- 设置单词字母之间的间距
- 默认是0,可以设置为负数
4.7. word-spacing
- 设置单词之间的间距
- 默认是0,可以设置为负数
5. 字体属性
5.1. font-size
决定文字的大小
常用的设置
具体数值+单位
比如100px
也可以使用em单位(不推荐)
页面1个字符大小的基准值,基准值根据浏览器,用户自定义标准的不同而不同
1em代表100%,2em代表200%,0.5em代表50%
百分比
- 基于父元素的font-size计算,比如50%表示等于父元素font-size的一半
注意点
- chrome默认文字大小是16px
- 单位需要设置,否则无效
1 | h1{ |
5.2. font-family
用于设置文字的字体名称
- 可以设置1个或者多个字体名称
- 浏览器会选择列表中第一个该计算机上有安装的字体
- 或者是通过 @font-face 指定的可以直接下载的字体
常见字体
特点 场景 常见系列字体 无衬线字体(sans-serif) 文字笔画粗细均匀,并且首尾无装饰 在网页中大多采用无衬线字体 在mac中将显示有黑体,在Windows中将显示为微软雅黑 衬线字体(serif) 文字笔画粗细不均,并且首尾有笔锋装饰 报刊书籍中应用广泛 宋体,Times New Roman 等宽字体(monospace) 每个字母或文字的宽度相等 一般用于程序代码编写,有利于代码的阅读和编写 Consolas,fira code 常见取值
具体字体1,具体字体2,…,字体系列
具体字体:微软雅黑,黑体,宋体,楷体等
字体系列:sans-serif,serif,monosapce等
渲染规则
- 从左到右按照顺序查找,如果未安装该字体,则显示下一个字体
- 如果不支持,此时会根据操作系统,显示最后字体系列的默认字体
注意点
- 如果字体名称中存在多个单词,推荐使用引号包裹
- 最后一项字体系列不需要引号包裹
- 网页开发时,尽量使用系统常见自带字体,保证不同用户浏览网页都可以正确显示
淘宝使用的字体
1
2
3body, button, input, select, textarea {
font: 12px/1.5 tahoma, arial, 'Hiragino Sans GB', '\5b8b\4f53', sans-serif;
}
5.3. Web fonts - 自定义字体
5.3.1. 认识Web字体
font-family
- 需要提供一个或多个字体种类名称,浏览器会在列表中搜寻,直到找到它所运行的系统上可用的字体
- 这样的方式完全没有问题,但是对于传统的web开发人员来说,字体选择是有限的
- 这就是所谓的 Web-safe 字体
- 并且这种默认可选的字体并不能进行一些定制化的需求
比如书法等字体样式, 系统的字体肯定是不能实现的
是否依然可以在网页中使用这些字体呢? 使用Web Fonts
5.3.2. Web fonts的工作原理
首先,需要通过一些渠道获取到希望使用的字体(不是开发来做的事情)
- 对于某些收费的字体,需要获取到对应的授权
- 对于某些公司定制的字体, 需要设计人员来设计
- 对于某些免费的字体, 需要获取到对应的字体文件
其次,CSS代码当中使用该字体(重要)
最后,在部署静态资源时, 将HTML/CSS/JavaScript/Font一起部署在静态服务器中
用户的角度
- 浏览器一个网页时, 因为代码中有引入字体文件,字体文件会被一起下载下来
- 浏览器会根据使用的字体在下载的字体文件中查找、解析、使用对应的字体
- 在浏览器中使用对应的字体显示内容
5.3.3. 使用Web Fonts
获取字体文件
- 在字体天下网站下载一个字体
- 使用字体
使用过程
- 将字体放到对应的目录中
- 通过@font-face来引入字体, 并且设置格式
- 使用字体
注意:@font-face 用于加载一个自定义的字体
1 | @font-face{ |
5.3.4. web-fonts的兼容性
| eot | otf/ttf | woff | woff2 | svg | |
|---|---|---|---|---|---|
| IE 8-11 | √ | ||||
| IE 9-11 | √ | √ | √ | ||
| Edge 12-14 | √ | √ | |||
| Firefox 40-45 | √ | √ | √ | ||
| Chrome 43-49 | √ | √ | √ | ||
| Safari 8-9 | √ | √ | √ | ||
| Opera 32-35 | √ | √ | √ | ||
| IOS Safari 8.4-9.1 | √ | √ | √ | ||
| Android 4.4-44 | √ | √ | |||
| Chrome for Android 46 | √ | √ | √ |
.ttf 是TrueType字体
- 在开发中某些浏览器可能不支持该字体, 所以为了浏览器的兼容性问题,需要有对应其他格式的字体
TrueType字体:拓展名是 .ttf
OpenType/TrueType字体:拓展名是 .ttf、.otf,建立在TrueType字体之上
Embedded OpenType字体:拓展名是 .eot, OpenType字体的压缩版
SVG字体:拓展名是 .svg、 .svgz
WOFF表示Web Open Font Format web开放字体:拓展名是 .woff,建立在TrueType字体之上
https://font.qqe2.com/# 网站来生产对应的字体文件
5.3.5. web fonts兼容性写法
使其具备很强的兼容性
1
2
3
4
5
6
7
8
9
10
11
12
13
14@font-face {
font-family: "myfont";
/* IE9 */
src: url("./fonts/lato-regular.eot");
src:
/* IE6-8 */
url("./fonts/lato-regular.eot?#iefix") format("embedded-opentype"),
/* chrome,firefox */
url("./fonts/lato-regular.woff") format("woff"),
/* chrome,firefox,opera,safari,android */
url("./fonts/lato-regular.ttf") format("truetype"),
/* ios 4.1- */
url("./fonts/lato-regular.svg#uxfonteditor") format("svg");
}这被称为”bulletproof @font-face syntax(刀枪不入的@font-face语法)“
- 这是 Paul Irish早期的一篇文章提及后@font-face开始流行起来 (Bulletproof @font-face Syntax)
src用于指定字体资源
- url指定资源的路径
- format用于帮助浏览器快速识别字体的格式
5.4. font-weight
用于设置文字的粗细
常见的取值
- 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900,每一个数字表示一个重量
- normal:等于400
- bold:等于700
- strong、b、h1~h6等标签的font-weight默认就是bold
注意点:
- 不是所有字体都提供了九种粗细,因此部分取值页面中无变化
- 实际开发中,以正常,加粗两种取值使用最多
1 | h1{ |
5.5. font-style
用于设置文字的常规、斜体显示
- normal:常规显示
- italic(斜体):用字体的斜体显示(通常会有专门的字体)
- oblique(倾斜):文本倾斜显示(仅仅是让文字倾斜)
em、i、cite、address、var、dfn等元素的font-style默认就是italic
5.6. font-variant
可以影响小写字母的显示形式
- variant是变形的意思
可以设置的值如下
- normal:常规显示
- small-caps:将小写字母替换为缩小过的大写字母
5.7. line-height
作用
- 控制行间距
- 给一行上下增加间距
- 设置文本的行高
取值
- 数字+px
- 倍数(font-size的倍数)
应用
- 让单行文本垂直居中可以设置line-height:文字父元素高度
- 网页精准布局时,会设置line-height: 1,可以取消上下间距
行高可以先简单理解为一行文字所占据的高度
行高的严格定义是两行文字基线(baseline)之间的间距
基线(baseline):最底部对齐的线

注意区分height和line-height的区别
- height:元素的整体高度
- line-height:元素中每一行文字所占据的高度
5.8. font-连写 swsf
font是一个缩写属性
- font 属性可以用来作为 font-style, font-variant, font-weight, font-size, line-height 和 font-family 属性的简写
- font-style font-variant font-weight font-size/line-height font-family
规则
- font-style、font-variant、font-weight可以随意调换顺序,也可以省略
- /line-height可以省略,如果不省略,必须跟在font-size后面
- font-size、font-family不可以调换顺序,不可以省略
省略要求:只能省略前几个,如果省略了相当于设置了默认值
注意点:
- 要么把单独的样式写在连写的下面
- 要么把单独的样式写在连写的里面
MDN形式语法
1
2
3
4
5
6
7
8font =
[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-stretch-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] |
caption |
icon |
menu |
message-box |
small-caption |
status-bar
6. 背景属性
6.1. background-color
背景颜色
属性值:关键字,rgb表示法,rgba表示法,#十六进制
注意点
- 背景颜色默认值是透明的:rgba(0,0,0,0),transparent
- 背景颜色不会影响盒子大小,并且还能看清盒子的大小和位置,一般在布局中会习惯先给盒子设置背景颜色
6.2. linear-gradient
背景线性渐变
1
2
3
4
5background: linear-gradient(起始方向,颜色1,颜色2,...);
background: -webkit-linear-gradient(left,red,blue);
background: -webkit-linear-gradient(left top,red,blue);背景渐变必须添加浏览器私有前缀
起始方向可以是方位名词,或者度数,如果省略默认就是top
6.3. background-image
background-image用于设置元素的背景图片
会盖在(不是覆盖)background-color的上面
属性值:background-image: url(‘图片路径’);
如果设置了多张图片
- 设置的第一张图片将显示在最上面,其他图片按顺序层叠在下面
注意点
- 背景图片中url可以省略引导
- 背景图片默认在水平和垂直方向平铺
- 背景图片仅仅是指给盒子起到装饰效果,类似于背景颜色,是不能撑开盒子的
6.4. background-repeat
- background-repeat用于设置背景图片是否要平铺
- 常见的取值有
| 取值 | 效果 |
|---|---|
| repeat | 默认值-水平和垂直方向都平铺 |
| no-repeat | 不平铺 |
| repeat-x | 沿着水平方向平铺 |
| repeat-y | 沿着垂直方向平铺 |

6.5. background-size
- background-size用于设置背景图片的大小
- 取值
| 取值 | 场景 |
|---|---|
| auto | 默认值,以背景图本身大小显示 |
| 数字+px | 简单方便,常用 |
| 百分比 | 相对于当前盒子自身的宽高百分比 |
| contain | 包含,将背景图片等比例缩放,直到不会超出盒子的最大 |
| cover | 覆盖,将背景图片等比例缩放,直到刚好填满整个盒子没有空白 |
6.6. background-position
background-position用于设置背景图片在水平、垂直方向上的具体位置
属性值 - background-position: 水平方向位置 垂直方向位置;
方位名词
水平方向
left,center,right
垂直方向
top,center,bottom
如果只设置了1个方向,另一个方向默认是center
数字+px(坐标)
坐标系
原点(0,0) - 盒子的左上角
x轴 - 水平向右
y轴 - 垂直向下
操作
将图片左上角与坐标点重合即可
注意点
- 方位名词取值和坐标取值可以混使用,第一个取值表示水平,第二个取值表示垂直

6.7. background-attachment
- background-attachment 决定背景图像的位置是在视口内固定,或者随着包含它的区块滚动
- 可以设置以下3个值
- scroll
- 此关键属性值表示背景相对于元素本身固定, 而不是随着它的内容滚动
- local
- 此关键属性值表示背景相对于元素的内容固定
- 如果一个元素拥有滚动机制,背景将会随着元素的内容滚动
- fixed
- 此关键属性值表示背景相对于视口固定
- 即使一个元素拥有滚动机制,背景也不会随着元素的内容滚动
- scroll
6.8. background-连写 CIRPSA
background是一系列背景相关属性的简写属性
语法
1
2
3
4
5
6
7background = [ <bg-layer># , ]? <final-bg-layer>
<bg-layer> = <bg-image>||<bg-position>[/<bg-size>]?||<repeat-style>||<attachment>||<box>||<box>
<final-bg-layer> = <'background-color'>||<bg-image>||<bg-position>[/<bg-size>]?||<repeat-style>||<attachment>||<box>||<box>
<box> = border-box | padding-box | content-box顺序
background: color image repeat position/size attachment;
省略问题
- 可以按照需求省略
- 在pc端,如果盒子大小和背景图片大小一样,此时可以直接写成
background: url()
注意点
- background-size可以省略,如果不省略,/background-size必须紧跟在background-position的后面
- 其他属性也都可以省略,而且顺序任意
- 如果需要设置单独的样式和连写,要么把单独的样式写在连写的下面,要么把单独的样式写在连写的里面
6.9. img标签和background-image区别
在网页中展示展示一张图片
直接写上img标签
- img标签不设置宽高默认以原尺寸显示
div+背景图片
- 需要设置div宽高,因为背景图片只是装饰的css样式
利用background-image和img都能够实现显示图片的需求,在开发中该如何选择?
img background-image 性质 HTML元素 CSS样式 图片是否占用空间 ✅ ❌ 浏览器右键直接查看地址 ✅ ❌ 支持 CSS Sprite ❌ ✅ 更有可能被搜索引擎收录 ✅(结合alt属性) ❌ 总结
- img,作为网页内容的重要组成部分,比如广告图片、LOGO图片、文章配图、产品图片
- background-image,可有可无。有,能让网页更加美观。无,也不影响用户获取完整的网页内容信息
6.10. 精灵图 Sprite
什么是CSS Sprite
- 是一种CSS图像合成技术
- 将各种小图片合并到一张图片上,然后利用CSS的背景定位来显示对应的图片部分
- 也称为CSS雪碧、CSS精灵
使用CSS Sprite的好处
- 减少网页的http请求数量,加快网页响应速度,减轻服务器压力
- 减小图片总大小
- 解决了图片命名的困扰,只需要针对一张集合的图片命名
Sprite图片制作(雪碧图、精灵图)
- 方法1:Photoshop, 设计人员提供
- 方法2:https://www.toptal.com/developers/css/sprite-generator
精灵图如何使用?
- 精灵图的原理是通过只显示图片的很小一部分来展示的
- 通常使用背景
- 设置对应元素的宽度和高度
- 设置精灵图作为背景图片
- 调整背景图片的位置来展示
如何获取精灵图的位置
使用步骤
- 创建一个盒子
- 将小图片的宽高设置给盒子
- 将精灵如设置为盒子的背景图片
- 分别取
负值设置给盒子的background-position: x y
1
2
3
4
5.sprite{
width: 26px;
height: 13px;
background: url('./images/taobao.png') 0 -264px;
}
7. display
CSS中有个display属性,能修改元素的显示类型,有4个常用值
- block:让元素显示为块级元素
- inline:让元素显示为行内级元素
- inline-block:让元素同时具备行内级、块级元素的特征
- none:隐藏元素
事实上display还有其他的值, 比如 flex,用于响应式布局
7.1. block
显示特点
- 独占父元素的一行
- 可以随意设置宽高
- 高度默认由内容决定
代表标签
div,p,h系列,ul,li,dl,dt,dd,form,header,aside,nav,footer,...
7.2. inline
显示特点
- 跟其他行内级元素在同一行显示
- 不可以随意设置宽高
- 宽高都由内容决定
代表标签
a,span,b,u,i,s,strong,ins,em,del...
7.2.1. 行内非替换元素
- 和其他的行内级元素在同一行显示
- 不可以设置宽度和高度
- 代表标签
- a,span,strong,i,…
7.2.2. 行内非替换元素的注意事项
以下属性对行内级非替换元素不起作用
- width、height、margin-top、margin-bottom
以下属性对行内级非替换元素的效果比较特殊
- padding-top、padding-bottom、上下方向的border
7.2.3. 行内替换元素
- 和其他的行内级元素在同一行显示
- 可以设置宽度和高度
- 代表标签
- img,input
7.3. inline-block
显示特点
- 跟其他行内级元素在同一行显示
- 可以随意设置宽高
- 可以这样理解
- 对外来说,它是一个行内级元素
- 对内来说,它是一个块级元素
代表标签
input,textarea,button,select...
7.4. none
- 元素不显示出来, 并且也不占据位置, 不占据任何空间(和不存在一样)
8. overflow
- overflow用于控制内容溢出时的行为
- visible:溢出的内容照样可见
- hidden:溢出的内容直接裁剪
- scroll:溢出的内容被裁剪,但可以通过滚动机制查看
- 会一直显示滚动条区域,滚动条区域占用的空间属于width、height
- auto:自动根据内容是否溢出来决定是否提供滚动机制
9. cusor
cursor可以设置鼠标指针(光标)在元素上面时的显示样式
cursor常见的设值
取值 说明 auto 浏览器根据上下文决定指针的显示样式,比如根据文本和非文本切换指针样式 default 由操作系统决定,一般就是一个小箭头 pointer 一只小手,鼠标指针挪动到链接上面默认就是这个样式 text 一条竖线,鼠标指针挪动到文本输入框上面默认就是这个样式 none 没有任何指针显示在元素上面 move 十字光标,提示用户可以移动