CSS字体样式属性
1. font-size:字号大小
2. font-family:字体
3. font-weight:字体粗细 (加粗)
4. font-style:字体风格 (斜体)
5. font:综合设置字体样式 (有顺序)
CSS外观属性
1. color:文本颜色
2. line-height:行间距
3. text-align:水平对齐方式
4. text-indent:首行缩进
5. letter-spacing:字间距
6. word-spacing:单词间距
7. 颜色半透明(css3)
8. 文字阴影(CSS3)
CSS字体样式属性
font-size:字号大小
font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位。其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。具体如下:
font-family:字体
font-family 属性用于设置字体。网页中常用的字体有宋体
、微软雅黑
、黑体
等,例如将网页中所有段落文本的字体设置为微软雅黑,可以使用如下CSS样式代码:
p { font-family:"微软雅黑";}
h4 { font-family:"Microsoft YaHei", tahome, arial, "Hiragino Sans GB";}
可以同时指定多个字体,中间以逗号隔开,表示如果浏览器不支持第一个字体,则会尝试下一个,直到找到合适的字体。
常用技巧:
- 现在网页中普遍使用
14px+
。- 尽量使用
偶数
的数字字号。ie6等老式浏览器支持奇数会有bug。- 各种字体之间必须使用英文状态下的
逗号
隔开。- 中文字体需要加英文状态下的
引号
,英文字体一般不需要加引号。当需要设置英文字体时,英文字体名必须位于中文字体名之前。- 如果字体名中包含空格、#、$等符号,则该字体必须加英文状态下的单引号或双引号,例如
font-family: "Times New Roman";
。- 尽量使用系统默认字体,保证在任何用户的浏览器中都能正确显示。
CSS Unicode字体
在 CSS 中设置字体名称,直接写中文是可以的。但是在文件编码(GB2312、UTF-8 等)不匹配时会产生乱码的错误。xp 系统不支持 类似微软雅黑的中文。
方案一: 你可以使用英文来替代。 比如 font-family:"Microsoft Yahei"。
方案二: 在 CSS 直接使用 Unicode 编码来写字体名称可以避免这些错误。
使用 Unicode 写中文字体名称
,浏览器是可以正确的解析的。
font-family: "\5FAE\8F6F\96C5\9ED1"
,表示设置字体为“微软雅黑”。
可以通过escape()
来测试属于什么字体。
字体名称 | 英文名称 | Unicode 编码 |
---|---|---|
宋体 | SimSun | \5B8B\4F53 |
新宋体 | NSimSun | \65B0\5B8B\4F53 |
黑体 | SimHei | \9ED1\4F53 |
微软雅黑 | Microsoft YaHei | \5FAE\8F6F\96C5\9ED1 |
楷体_GB2312 | KaiTi_GB2312 | \6977\4F53_GB2312 |
隶书 | LiSu | \96B6\4E66 |
幼园 | YouYuan | \5E7C\5706 |
华文细黑 | STXihei | \534E\6587\7EC6\9ED1 |
细明体 | MingLiU | \7EC6\660E\4F53 |
新细明体 | PMingLiU | \65B0\7EC6\660E\4F53 |
为了照顾不同电脑的字体安装问题,我们尽量只使用宋体
和微软雅黑
中文字体。
font-weight:字体粗细
字体加粗除了用 b
和 strong
标签之外,可以使用CSS 来实现,但是CSS 是没有语义的。
font-weight 属性用于定义字体的粗细,其可用属性值:normal、bold、bolder、lighter、100~900(100的整数倍)。
小技巧:
数字400
等价于normal
,而700
等价于bold
。 但是我们更喜欢用数字
来表示。
font-style:字体风格
字体倾斜除了用 i
和 em
标签之外,可以使用CSS 来实现,但是CSS 是没有语义的。
font-style属性用于定义字体风格,如设置斜体、倾斜或正常字体,其可用属性值如下:
normal:默认值,浏览器会显示标准的字体样式。
italic:浏览器会显示斜体的字体样式。
oblique:浏览器会显示倾斜的字体样式。
小技巧:
平时我们很少给文字加斜体,反而喜欢给斜体标签(em,i)改为普通模式
。
font:综合设置字体样式 (重点)
font属性用于对字体样式进行综合设置,其基本语法格式如下:
选择器{font: font-style font-weight font-size/line-height font-family;}
使用font属性时,必须按上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开。
注意:其中不需要设置的属性可以省略(取默认值),但必须保留font-size
和font-family
属性,否则font属性将不起作用。
CSS外观属性
color:文本颜色
color属性用于定义文本的颜色,其取值方式有如下3种:
- 预定义的颜色值,如red,green,blue等。
- 十六进制,如#FF0000,#FF6600,#29D794等。实际工作中,十六进制是最常用的定义颜色的方式。
- RGB代码,如红色可以表示为rgb(255,0,0)或rgb(100%,0%,0%)。
需要注意的是: 如果使用RGB代码的百分比颜色值,取值为0时也不能省略百分号,必须写为0%
。
line-height:行间距
line-height属性用于设置行间距,就是行与行之间的距离,即字符的垂直间距,一般称为行高。line-height常用的属性值单位有三种,分别为像素px,相对值em和百分比%,实际工作中使用最多的是像素px。
一般情况下,行距比字号大7、8像素左右
就可以了。
text-align:水平对齐方式
text-align属性用于设置文本内容的水平对齐,相当于html中的align对齐属性。其可用属性值如下:
left:左对齐(默认值)
right:右对齐
center:居中对齐
text-indent:首行缩进
text-indent 属性用于设置首行文本的缩进,其属性值可为不同单位的数值、em
字符宽度的倍数、或相对于浏览器窗口宽度的百分比%,允许使用负值, 建议使用em作为设置单位
。
1em
就是一个字的宽度 如果是汉字的段落,1em 就是一个汉字的宽度,固定写法:{ text-indent: 2em }
letter-spacing:字间距
letter-spacing 属性用于定义字间距,所谓字间距就是字符与字符之间的空白。其属性值可为不同单位的数值,允许使用负值,默认为normal。
word-spacing:单词间距
word-spacing 属性用于定义英文单词之间的间距,对中文字符无效。和letter-spacing一样,其属性值可为不同单位的数值,允许使用负值,默认为normal。
letter-spacing
定义的为字母之间的间距
,
word-spacing
定义的为英文单词
之间的间距,中文无效。
text-decoration:文本的装饰
通常我们用于给链接修改装饰效果
值 | 描述 |
---|---|
none | 默认。定义标准的文本。 |
underline | 定义文本下的一条线。下划线 也是我们链接自带的 |
overline | 定义文本上的一条线。 |
line-through | 定义穿过文本下的一条线。 |
使用技巧:在一行内的盒子内,我们设定行高等于盒子的高度,就可以使文字垂直居中。
颜色半透明(css3)
文字颜色到了CSS3我们可以采取半透明的格式了语法格式如下:
color: rgba(r,g,b,a)
a 取值范围 0~1之间
eg:color: rgba(0,0,0,0.3)
文字阴影(CSS3)
以后我们可以给我们的文字添加阴影效果了 Shadow 影子
text-shadow
: 水平 / 垂直 / 模糊距离(模糊宽度) / 阴影颜色;
CSS 背景(background)
CSS 可以添加背景颜色和背景图片,以及来进行图片设置。
background-color | 背景颜色 |
---|---|
background-image | 背景图片地址 |
background-repeat | 是否平铺 |
background-position | 背景位置 |
background-attachment | 背景固定还是滚动 |
背景的合写(复合属性) | |
background: 颜色 / 图片地址 / 平铺 / 滚动 / 位置 |
背景图片(image)
语法:background-image : none | url (url)
none : 无背景图(默认的)
url : 使用绝对或相对地址指定背景图像
background-image 属性允许指定一个图片展示在背景中(只有CSS3才可以多背景)可以和 background-color 连用。 如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。 如果有背景图片平铺,则会覆盖背景颜色。
提倡: 背景图片后面的地址url不要加引号
:
background-image: url(images/li.jpg)
背景平铺(repeat)
语法: background-repeat : repeat | no-repeat | repeat-x | repeat-y
repeat : 背景图像在纵向和横向上平铺(默认的)
no-repeat : 背景图像不平铺
repeat-x : 背景图像在横向上平铺
repeat-y : 背景图像在纵向平
设置背景图片时,默认把图片在水平和垂直方向平铺以铺满整个元素
。
repeat-x : 背景图像在横向上平铺
repeat-y : 背景图像在纵向平铺
背景位置(position)
语法:
background-position : length || length
background-position : position || position
混搭:
background-position : length || position
background-position : position || length
length : 百分数 | 由浮点数字和单位标识符组的长度值。
position : top | center | bottom | left | center | right
说明:
设置或检索对象的背景图像位置。必须先指定background-image属性
。默认值为:(0% 0%)。如果只指定了一个值,该值将用于横坐标。纵坐标将默认为50%
。
- position 后面是
x坐标
和y坐标
。 可以使用方位名词或者精确单位。- 如果和精确单位和方位名字混合使用,则必须是
x坐标在前,y坐标后面
。比如 background-position: 15px top; 则 15px一定是x坐标 top是y坐标。- 只有都是方位的时候可以部分x/y的先后(
尽量统一都是先x后y
)
background-color: pink;
background-image: url(images/l.jpg);
background-repeat: no-repeat;
/* 1.利用方位名词 top bottom 来更改背景图片位置 */
/*background-position: left top; 默认的是 左上角 */
/*background-position: bottom right ; 方位名词没有顺序,谁在前都可以 */
/* background-position: center center ; */
/* background-position: left; 如果方位名词只写一个,另外一个默认为center */
/* background-position: 10px 30px;
2. 精切单位 第一值一定是x坐标 第二个值一定是y坐标 */
/* 3. 混搭 */
background-position: center 10px ;
/* center 10px 水平居中的 垂直是 10px
10px center 水平10px 垂直是 居中 */
实际工作用的最多的,就是背景图片居中对齐了。
背景附着
语法:background-attachment : scroll | fixed
scroll : 背景图像是随对象内容滚动
fixed : 背景图像固定
说明: 设置或检索背景图像是随对象内容滚动还是固定的。
背景简写
background 属性的值的书写顺序官方并没有强制标准的。为了可读性,建议
如下写:background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
background: transparent url(image.jpg) repeat-y scroll 50% 0 ;
背景透明(CSS3)
CSS3支持背景半透明的写法语法格式是:
background: rgba(0,0,0,0.3); /* a: 取值范围 0~1之间 */
注意: 背景半透明是指
盒子背景半透明
, 盒子里面的内容不受影响
。
背景缩放(CSS3)
通过background-size
设置背景图片的尺寸,就像我们设置img的尺寸一样,在移动Web开发中做屏幕适配应用非常广泛。
其参数设置如下:
- 可以设置长度单位(px)或百分比(设置百分比时,参照盒子的宽高)
- 设置为
cover
时,会自动等比调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏
。我们平时用的cover最多 - 设置为
contain
会自动等比调整缩放比例,保证图片始终完整显示在背景区域。
cover
保证背景全部被占,图片会超出隐藏,contain
保证图片完整,背景可能有空白。
div {
width: 400px;
height: 500px;
background: hotpink url(images/l.jpg) no-repeat;
/* 我们插入的图片 img 直接通过 width 和height 设置就可 */
/* 背景图片设置大小 background-size */
/*background-size: 100px; 我们尽量只改一个值,防止缩放失真扭曲 */
/*background-size: 50%; 把背景图片缩放为原来的一半大小 */
/* background-size: cover; */
/* 会自动等比调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏
图片进行等比例缩放 图片一定要保证宽度和高度同时满足盒子的大小 势必会有部分超出去,就看不见了 我们平时用的cover 最多
*/
background-size: contain;
/* 会自动等比调整缩放比例,保证图片始终完整显示在背景区域。
图片进行等比例缩放 如果图片的高度或者 宽度 有一个和盒子一样大了,就不在缩放
这样的好处就是保证了图片的完整。 不会有缺失的一部分, 但是会有部分裸露
*/
}
background-image: url('images/gyt.jpg');
background-size: 300px 100px;
/* background-size: contain; */
/* background-size: cover; */
多背景(CSS3)
以逗号分隔可以设置多背景,可用于自适应布局 做法就是 用逗号隔开就好了。
- 一个元素可以设置多重背景图像。
- 每组属性间使用
,
分隔。 - 如果设置的多重背景图之间存在着交集(即存在着
重叠关系
),前面的背景图会覆盖在后面的背景图之上。
- 为了避免背景色将图像盖住,
背景色通常都定义在最后一组上
。
background:url(test1.jpg) no-repeat scroll 10px 20px/50px 60px ,
url(test1.jpg) no-repeat scroll 10px 20px/70px 90px ,
url(test1.jpg) no-repeat scroll 10px 20px/110px 130px c #aaa;
凹凸文字
<head>
<meta charset="utf-8">
<style>
body {
background-color: #ccc;
}
div {
color: #ccc;
font: 700 80px "微软雅黑";
}
div:first-child {
/* text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色; */
text-shadow: 1px 1px 1px #000, -1px -1px 1px #fff;
}
div:last-child {
/* text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色; */
text-shadow: -1px -1px 1px #000, 1px 1px 1px #fff;
}
</style>
</head>
<body>
<div>我是凸起的文字</div>
<div>我是凹下的文字</div>
</body>
背景渐变
在线性渐变过程中,颜色沿着一条直线过渡:从左侧到右侧、从右侧到左侧、从顶部到底部、从底部到顶部或着沿任何任意轴。
兼容性问题很严重
,这里只谈线性渐变
语法格式:
background:-webkit-linear-gradient; (渐变的起始位置, 起始颜色, 结束颜色);
background:-webkit-linear-gradient; (渐变的起始位置, 颜色 位置, 颜色位置....);
<div></div>
<section></section>
div {
width: 300px;
height: 50px;
/* background: linear-gradient(渐变的起始位置, 起始颜色, 结束颜色); */
background: linear-gradient(top, red, green);
background: -webkit-linear-gradient(top, red, green);
background: -moz-linear-gradient(top, red, green);
/* 因为背景渐变 兼容性问题很严重, 必须在前面添加浏览器的私有前缀 */
margin: 200px auto;
}
section {
width: 400px;
height: 100px;
margin: 0 auto;
/* background:-webkit-linear-gradient(渐变的起始位置, 颜色 位置, 颜色位置....); */
background: -webkit-linear-gradient(top, red 0%, green 20%, blue 80%);
background: -moz-linear-gradient(left, red 0%, green 50%, skyblue 80%, hotpink 100%)
}