字体样式属性
综合设置字体样式(font)-重点
语法格式:
选择器{font: font-style font-weight font-size/line-height font-family;}
使用font属性时一行填写,必须按上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开。注意:其中不需要设置的属性可以省略(取默认值),但是必须保留font-size和font-family属性,否则font属性将不起作用。
字号大小(font-size)
font-size: 10px;
相对长度单位 px(像素,最常用!)
字体(font-family)
p{ font-family:"Microsoft Yahei";}或
p{ font-family:"\5FAE\8F6F\96C5\9ED1";}
字体粗细(font-weight)
font-weight: bold;或
font-weight: 400; (100~900之间的9个数字)
字体风格(font-style)
font-style: normal;
normal:标准样式;italic:斜体;oblique:斜体
外观属性
文本颜色(color)
.red { color : red; }
.orange { color : #FF6600; }
.blue { color : rgb(0,0,155); }
行间距(line-height)
line-height常用的属性值单位有三种,分别为像素px,相对值em和百分比%,实际工作中使用最多的是像素px(一般情况下,行距比字号大7、8像素左右就可以了)
水平对齐方式(text-align)
text-align属性用于设置文本内容的水平对齐,相当于html中的align对齐属性。其可用属性值如下:
- left:左对齐(默认值)
- right:右对齐
- center:居中对齐
首行缩进(text-indent)
其属性值可为不同单位的数值、em字符宽度的倍数、或相对于浏览器窗口宽度的百分比%,允许使用负值, 建议使用em作为设置单位。1em 就是一个字的宽度,如果是汉字的段落, 1em就是一个汉字的宽度
字间距(letter-spacing)
其属性值可为不同单位的数值,允许使用负值,默认为normal
单词间距(word-spacing)
其属性值可为不同单位的数值,允许使用负值,默认为normal。仅对英文生效
颜色半透明(rgba)
color: rgba(r,g,b,a)
a的取值范围为0~1
文字阴影(text-shadow)
text-shadow:水平位置 垂直位置 模糊距离 阴影颜色;
- 单位是px
- h-shadow 水平阴影的位置,必选
- v-shadow 垂直阴影的位置,必选
- blur 模糊的距离,可选
- color 阴影的颜色,可选
背景-background
| 写法 | 说明 |
|---|---|
| background-color | 背景颜色 |
| background-image | 背景图片地址 |
| background-repeat | 是否平铺 |
| background-position | 背景位置 |
| background-attachment | 背景固定还是滚动 |
| 背景的合写(复合属性) |
|---|
| background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置 |
背景图片(image)
background-image : none | url (url)
参数:
none : 无背景图(默认的);
url : 使用绝对或相对地址指定背景图像(url不要加引号)。
背景平铺(repeat)
background-repeat : repeat | no-repeat | repeat-x | repeat-y
参数:
- repeat : 背景图像在纵向和横向上平铺(默认的)
- no-repeat : 背景图像不平铺
- repeat-x : 背景图像在横向上平铺
- repeat-y : 背景图像在纵向平铺
背景位置(position)
background-position : length || length
background-position : position || position
参数:
- length : 百分数 | 由浮点数字和单位标识符组成的长度值
- position : top | center | bottom | left | center | right
背景附着(attachment)
background-attachment : scroll | fixed
参数:
- scroll : 背景图像是随对象内容滚动
- fixed : 背景图像固定
背景简写(重点)
background: background-color background-image background-repeat background-attachment background-position
例子:
background: transparent url(image.jpg) repeat-y scroll 50% 0 ;
背景透明
background: rgba(0,0,0,0.3);
同样, 可以给文字和边框透明,都是rgba的格式来写。
color:rgba(0,0,0,0.3);
border: 1px solid rgba(0,0,0,0.3);
背景缩放
background-size: 300px 500px; // 设置长度单位(px)或百分比
background-size: contain; // 自动调整缩放比例,保证图片始终完整显示在背景区域
background-size: cover; // 自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏
多背景
background-image: url('images/gyt.jpg'),url('images/robot.png');
引入使用CSS
外部样式表(外链式-重点)
快捷键:link:css
<head>
<link href="CSS文件的路径" type="text/CSS" rel="stylesheet" />
</head>
内部样式表(内嵌式)
<head>
<style type="text/CSS">
选择器 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}
</style>
</head>
行内式(内联样式)
<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名>
选择器
标签选择器/元素选择器
标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 或
元素名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
例子:
span { font-size: 100px; }
类选择器
类选择器使用“.”(英文点号)进行标识,后面紧跟类名
.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
例子:
.red-color { color: red; }
<span class="red-color">test</span>
多类名选择器
<div class="font14 pink">test</div>
id选择器
id选择器使用“#”进行标识,后面紧跟id名。元素的id值是唯一的。在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class。
#id名{ 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
通配符选择器
通配符选择器用“*”号表示,能匹配页面中所有的元素
* { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
例子:
/*清除所有HTML标记的默认边距*/
* {
margin: 0; /* 定义外边距*/
padding: 0; /* 定义内边距*/
}
伪类选择器
用于向某些选择器添加特殊的效果
链接伪类选择器
- :link 未访问的链接 (一般不使用)
- :visited 已访问的链接 (一般不使用)
- :hover 鼠标移动到链接上(一般使用这个)
- :active 选定的链接(一般不使用)
a {
color: gray;
}
a:hover {
color: red; /*鼠标经过的时候,由原来的灰色变成了红色*/
}
结构/位置伪类选择器
- :first-child 选取属于其父元素的首个子元素的指定选择器
- :last-child 选取属于其父元素的最后一个子元素的指定选择器
- :nth-child(n) 匹配属于其父元素的第N个子元素,不论元素的类型
- :nth-last-child(n) 选择器匹配属于其元素的第N个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数
n 可以是数字、关键词或公式 如: 4、even(偶数)、odd(奇数)、n(从0开始所有元素)、2n(偶数)、2n+1(奇数) 等
li:first-child { /* 选择第一个孩子 */
color: pink;
}
li:last-child { /* 最后一个孩子 */
color: purple;
}
li:nth-child(4) { /* 选择第4个孩子 n 代表 第几个的意思 */
color: skyblue;
}
目标伪类选择器
:target 目标伪类选择器,选择器可用于选取当前活动的目标元素
:target {
color: red;
font-size: 30px;
}
复合选择器
交集选择器
交集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。用的相对来说比较少,不太建议使用。
并集选择器
并集选择器(CSS选择器分组)是各个选择器通过逗号连接而成的,任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分
.one, p , #test {color: #F00;}
表示 .one 和 p 和 #test 这三个选择器都会执行颜色为红色。 通常用于集体声明。
后代选择器
后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
子元素选择器
子元素选择器只能选择作为某元素子元素的元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个> ; 进行连接,注意,符号左右两侧各保留一个空格。
.demo > h3 {color: red;} <!-- demo 元素包含着h3-->
属性选择器
用来选取标签带有某些特殊属性的选择器
| 选择器 | 示例 | 含义 |
|---|---|---|
| E[attr] | a[title] { color: orange;} | 存在attr属性即可 |
| E[attr=val] | input[type=text] { color: deepskyblue;} | 属性值完全等于val |
| E[attr*=val] | 属性值里包含val字符并且在“任意”位置 | |
| E[attr^=val] | 属性值里包含val字符并且在“开始”位置 | |
| E[attr$=val] | 属性值里包含val字符并且在“结束”位置 |
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>属性选择器测试</title>
<style type="text/css">
li[type] { /* 获取到拥有type属性的元素 */
border: 1px solid gray;
}
li[type="vegetable"] { /* 获取属性等于vegetable的元素,属性值可以使用引号进行包裹 */
background-color: green;
}
li[type~="hot"] { /* 使用空格分隔的多个属性,其中有某个属性即可获取 */
font-size: 30px;
}
li[color^="green"]{ /* 获取以某个属性开头的语法 */
background-color: orange;
}
li[type$="t"]{ /* 获取以t结尾的属性 */
color: hotpink;
font-weight: 900;
}
li[type*="ea"]{ /* 获取属性中拥有ea的元素 */
font-size: 100px;
}
li[price|="very"]{ /* 如果属性的值 只有very 也能够获取 用来获取 多个属性 并且 使用-连接 */
background-color: ;
}
</style>
</head>
<body>
<ul>
<li type="fruit" color="green">西瓜</li>
<li type="vegetable" color="blueyellow">西兰花</li>
<li type="meat">牛肉</li>
<li type="meat hot">猪肉</li>
<li type="drink hot">可乐</li>
<li type="drink hot">雪碧</li>
<li price="very-cheap">红酒</li>
<li price="very">白酒</li>
</ul>
</body>
</html>
伪元素选择器
- E::first-letter
- 文本的第一个单词或字(如中文、日文、韩文等)
- E::first-line
- 文本第一行;
- E::selection
- 可改变选中文本的样式;
- E::before和E::after
- 在E元素内部的开始位置和结束位创建一个元素,该元素为行内元素,且必须要结合content属性使用。
":" 与 "::" 区别在于区分伪类和伪元素
标签显示模式-display
块标签/块元素 和 行内标签/行内元素
块级元素(block-level)
每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。
常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标签是最典型的块元素。
高度、行高、外边距以及内边距都可以控制。
宽度默认是容器的100%
行内元素(inline-level)
不占有独立的区域,仅仅靠自身的字体大小和图像尺寸来支撑结构,一般不可以设置宽度、高度、对齐等属性,常用于控制页面中文本的样式。
常见的行内元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中<span>标签最典型的行内元素。
高、宽无效,但水平方向的padding和margin可以设置,垂直方向的无效。
默认宽度就是它本身内容的宽度。
行内块元素(inline-block)
在行内元素中有几个特殊的标签—— <img />、<input />、<td> ,可以对它们设置宽高和对齐属性,会称它们为行内块元素。
和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。
默认宽度就是它本身内容的宽度。
高度、行高、外边距以及内边距都可以控制。
显示模式转换
- 块转行内:display:line;
- 行内转块:display:block;
- 块、行内元素转换为行内块:display:inline-block;
CSS书写规范
- 选择器与{之间要有空格: .selector {}
- 属性名之后的:不允许有空格,:与属性值之间必须包含空格 font-size: 12px;
- 选择器规范:
- 当一个rule包含多个selector时,每个选择器声明必须独占一行
.post,
.p,
.div {}
- 选择器的嵌套层级应不大于3级,位置靠后的限定条件应该尽可能精确 .nav li a {}
- 属性定义后必须以分号结尾