文本和字体属性
特点:
-
行内元素不支持设置宽度和高度
-
行内元素可设置padding,垂直方向的padding不会影响布局,但是会产生相应的视觉效果
-
行内元素可设置border,垂直方向的border不会影响布局,但是会产生相应的视觉效果
-
行内元素可设置margin,垂直方向的margin不影响布局,但是会产生相应的视觉效果
字体属性
字体大小(font-size)
- font-size实际上设置的是字体的高度,这是为了保证CSS的视觉效果
单位:
-
px像素:相对于显示器屏幕分辨率而言,几乎所有的浏览器的font-size默认大小都是16px,除非用户去修改偏好设置,通常最小设置10px
-
相对em:会根据其父级元素的字体大小来计算
-
百分比:也是相对于其父级元素的字体大小设置
-
rem:单位值固定,它是指相对根元素的字体大小的单位,相对单位
字体颜色(color)
-
color属性可设置文本内容的前景色
-
默认情况下文本渲染为黑色,链接除外(它的颜色为活力蓝)
-
color属性主要主要可以用英语单词、十六进制、rgb( )、rgba()等表示方法
-
英语单词表示法,必如color :red;仅用于学习时临时设置一下颜色,工作时基本不用这样的形式,为追求精确
-
关键字表示法(开发不常用)
-
rgb函数表示法
-
rgb接受3个数值,每个数值分别代表红、绿、蓝的比例
-
每种颜色的范围在(0~255)/(0%~100%)之间
-
语法:rgb(红,绿,蓝);其中(255,255,0)纯黄,(0,255,255)青色,(255,0,255)紫红色,(0,0,0)黑色,(255,255,255)白色
-
-
rgba()函数表示法——rgb的加强版
-
在rgb的基础上增加了控制透明度的阿尔法通道
-
其中1代表不透明,0代表完全透明
-
也可写百法比参数,100%代表不透明,0%代表完全透明
-
-
十六进制法
-
六位十六进制的数字构成
-
语法:#红色(2位)绿色(2位)蓝色(2位)
-
每个数字有16种不同的可能
-
0-9,a-f,0表示没有颜色,f表示颜色最浓
-
每两位颜色对应RGB中的红绿蓝颜色#ff0000对应(255,0,0)
-
-
hsl()函数表示法
-
H:色相(0deg~360deg)
-
S:饱和度 颜色的浓度(0~100%)
-
L:亮度 颜色的亮度(0~100%)
-
根据色轮来表示颜色的一种方法
-
角度:红色在0deg,绿色在顺时针方向三分之一圆(120°),蓝色在三分之二圆(240°)
-
deg(degree)度数
-
-
hsla()函数表达式
- 他的关系跟rgb()和rgba()之间的关系相同,都是再接受一个透明度的参数
字体类型(族)(font-family)
-
字体可以设置列表形式,一般英语字体放到前面,后面的字体是前面的字体的“后备”字体
字体名称中有空格,必须用引号包裹
多个字体间使用“,”隔开,字体生效时优先使用第一个,第一个无法使用时使用第二个
-
目前字体设置领域,字体大致分为两大类
-
Serif(有衬线),多用于网页正文、内容等大量文字内容区域
-
Sans Serif(无衬线),多用于文章的标题、表格。宣传海报等一些要求文字醒目的领域
-
Serif 衬线字体 Sans Serif 非衬线字体 monospace 等宽字体——指定字体类别,浏览器会自动使用该类别下的字体 -
有衬线(Serif)和无衬线(Sans Serif)
-
有衬线壁画开始、结束的地方有额外的装饰,而且笔画粗细会有所不同,中文字体中的宋体就是一种最标准的有衬线字体,衬线的特征非常明显,字形结构也和手写的楷书一致,因此宋体一直被称为最合适的正文字体之一
-
没有那些额外的装饰,而且壁画粗细差不多,无衬线字体性木,适合用于标题、广告、海报、需要醒目但不需要长时间阅读的地方
-
-
-
随着现代生活和流行趋势的变化,如今的人们越来越喜欢用无衬线字体,因为它们看上去“更干净”
-
常见汉字字体
-
字体通常必须用户计算机中已经安装好的字体,所以一般来说设置为微软雅黑和宋体较多,设置为其他字体较少
-
设置为用户电脑中没有的字体:必须自己定义新字体,这需要添加字体文件用户加载网页时就会同时下载这些字体文件
定义字体
-
字体文件根据操作系统和浏览器不同有eot、woff2、woff、tff、svg文件格式,需同时拥有这全部五种
-
当我们拥有字体文件后,就可以用@font-face定义字体
//在CSS文件最上方或style标签最上方
@font-face{
font-family:"自定义的字体名字";
src:url(字体路径 本地/服务器);
}
使用时正常引用即可
问题
-
加载速度减慢,服务器的字体提供给用户使用
-
版权问题
阿里巴巴普惠体
-
阿里巴巴提供了一套免费商用授权的普惠字体,网址:www.iconfont.cn/webfont
-
使用阿里巴巴普惠字体也省去了下载字体的麻烦
字体粗细(font-weight)
-
设置字体的粗细程度,支持关键字和整百数100~900
-
通常用normal和bold两个值
| 示例 | 意义 |
|---|---|
| font-weigh t: normal; | 正常促销,与400等值 |
| font-weight : bold; | 加粗,与700等值 |
| font-weight : lighter; | 更细,大多数中文字体不支持 |
| font-weight : border; | 更粗,大多数中文字体不支持 |
字体样式(font-style)
| 示例 | 意义 |
|---|---|
| font-style :normal; | 取消倾斜,如把天生倾斜的i、em等标签设置为不倾斜 |
| font-style :italic; | 设置为倾斜字体(常用),带有倾斜属性的字体才可以进行设置倾斜操作 |
| font-style :oblique; | 设置为倾斜字体(用常规字体模拟,没有带倾斜属性的字体也可以设置倾斜,该操作不常用) |
字体是否为小型大写字母(font-variant)
-
normal:默认值(正常显示)
-
small-caps:小型大写字母
写法:font-variant :small-caps;
字体的复合属性
一般直接在body内设置进行全局文字的初始化
基本型
- font :font-size font-family;
复杂型
- font :font-style font-weight font-size/line-height font-family;
文本属性
行高(line-height)
行高:控制每一段文字的高度,文字会在这个行高内垂直居中显示,可以被继承
文本的行高默认是文字的1.32倍
行高(line-height)=文字大小(font-size)+上下行间距(在文字上下平均分配)
- 目前没有课直接控制行间距的样式,一般通过控制行高来调整行间距
单位
-
px像素
-
百分数:表示字号的倍数
- 注意:若其父元素用的是百分比或em,其子元素继承的是计算后和得到的像素值,不会与其自身字体大小形成比例
-
没有单位的数值,表示字号的倍数,子元素直接继承该比例,最推荐的写法
单行文本垂直水平居中
- 设置行高=盒子高度,即可实现文本垂直居中
垂直对齐(vertical-align)
只针对与行内元素
基线:文本中,字母x下方两个角形成的线叫做基线
vertical-align:
可接受像素值,正值向上,负值向下
-
baseline 默认基线对齐
-
middle 中线对齐 一般在图文混排中使用
-
top 顶部对齐
-
bottom 底部对齐
处理盒子中图片底部与盒子之间的间隙
-
将vertical-align设置为任一个不是baseline的值即可
-
给父级font-size:0;盒子中不包含其他同一行的行内元素文字
-
display:block;将图片转换为块级元素
文本缩进(text-indent)
单位:
-
em字符:文本进行首行缩进若干个字符宽度
- 1em是一个中文字符,2个英文字母
-
px像素:缩进若干个像素
缩进可为负值,正值向右该属性可继承
文本阴影(text-shadow)
通过该属性可以向文本添加一个或多个阴影
-
第一个参数 水平阴影的位置(可以是负值,正值向右偏移)
-
第二个参数 垂直阴影的位置(可以是负值,正值向下偏移)
-
第三个参数 阴影模糊距离
-
第四个参数 阴影的颜色
文本对齐(text-align)
针对标签内的文本、行内元素、行内块元素文本水平对齐,设置时要设置在父元素上,此属性可继承
-
left 默认左对齐
-
center 居中对齐
-
right 右对齐
-
justify 两边对齐 它会在单词间平均分布间距已达到两边恰好对齐消除毛边,印刷行业常用
文本装饰(text-decoration)
-
none 默认值 定义标准文本
-
underline 下划线
-
overline 上划线
-
line-through 贯穿线
可同时设置多种线,用空格空开即可
大小写变换(text-transform)
-
none 默认,定义带有大写字母和小写字母的标准的文本
-
uppercase 将所有字母大写
-
lowercase 将所有字母小写
-
capitalize 每个单词的首字母变成大写
控制字母和单词的间距(word-spacing和letter-spacing)
word-spacing 控制词间距 很少用
- 在默认值的基础上添加或减少一定的量
letter-spacing 控制字符间距
- 对于小写英文,人为控制字母间距并非好事,由于大多数字体设计的初衷就是让人更加容易的辨别整个单词,中文的字间距也可通过该属性进行设置
空白处理(white-space)
-
normal 默认
-
nowrap:文本不会换行,在同一行上继续,即使超出文本所在容器宽度
-
pre:保留空白
强制换行(word-break)
-
normal 默认
-
break-all 允许在单词内进行换行
文本溢出(text-overflow)
-
clip 修剪文本
-
ellipsis 修jian部分用省略号来代替
单行溢出处理
-
white-space:nowrap;不换行
-
overflow:hidden;溢出隐藏
-
text-overflow:ellipsis;溢出部分用…代替
多行溢出处理(了解)
border: 3px solid skyblue ;
overflow: hidden;/*溢出隐藏时*/
text-overflow: ellipsis;/*溢出省略*/
display : -webkit-box;/*兼容写法css3金子属性弹性盒模型的前身*/
-webkit-box-orient : vertical;/*从上往下换行*/
-webkit-line-clamp: 3;/*多于2行省略的*/