3、CSS选择器
1、什么是CSS?
全称
Cascading Style Sheets 通常称为CSS样式表或层叠样式表(级联样式表)
作用
-
为HTML标记语言提供了一种样式描述
-
即【设置HTML页面中的元素的位置、排版、样式外观等】 如文本内容(字体、大小、对齐方式等)、图片的外形(宽、高、边框等)
CSS语法规范
CSS 规则由两个主要的部分构成:选择器、一条或多条声明。
选择器:通常是需要改变样式的 HTML 标签。
声明组:以大括号{}括起来。
每条声明由一个属性和一个值组成,属性与属性值之间以【冒号】分隔,用【分号】将每个声明分开。
2、CSS引入方法
当读到一个样式表时,浏览器会根据它来格式化 HTML 文档,插入样式表的方法有三种:行间样式表,内部样式表,外部样式
1、行间样式
概述:
-
通过HTML元素的style属性设置样式称为行间样式
-
放在开始标签的内部
-
代码示例
<div style="width:100px;height:100px;background-color:red;">div</div>
-
适用场景:
单个html标签需要设置样式
优缺点:比较直观;相同样式需要重复定义,造成代码冗余;作用范围小,不利于后期代码维护;代码不能复用,结构与样式变现不分离
-
注:任何HTML元素都可以设置行间样式
2、内部样式
-
概述:
在head标签的内部,由style标签包含的样式称为内部样式
-
语法:用style标签对包住样式
-
适用场景:
1.单个HTML文档需要设置样式
优缺点:
相对于行间样式,代码能够复用,作用范围大于行间样式的范围;
结构与表现半分离
-
代码示例
<head> <style> </style> </head>
3、外部样式
-
概述
-
外部样式表是指将CSS编写在扩展名为.css 的单独文件中,使用link标签引用
-
位置:在外部新建的css文件中书写样式(后缀名为.css的文件);
在head标签的内部使用link标签引入在外部新建的css文件
-
头部标签内部使用link标签引用
<head> <link rel="stylesheet" href="./style.css"> </head>
-
说明
-
href="" 资源链接的地址
-
rel表示引入文 件与当前文 档的关系
-
stylesheet为样式表
-
rel="stylesheet"是将本HTML页面和css文件关联起来
-
-
-
-
适用场景:
多个HTML文档具有相同样式时
优缺点
1.适用范围广,可以使用代码的复用;
2.便于修改和维护代码;
3.结构与表现彻底分离
总结:
-
行间样式适用于某个元素拥有特殊样式时使用,结构 表现【不分离】
-
内部样式适用于单个页面拥有特殊样式时使用,结构表现【半分离】
-
外部样式适用于多个页面拥有相同样式时使用,结构表现【相分离】
3、css注释
什么是注释 :
注释即对代码的解释和说明,不会被浏览器解析执行
注释的语法:
CSS中的注释以"注释以/*开头,以*/结尾,开始和结束中间为注释内容 /* css 注释 */
生成快捷方式:
ctrl + /
4、什么是选择器
-
CSS选择器是CSS规则的第一部分,每个CSS规则都以一个选择器或一组选择器为开始
-
CSS 选择器即用于“查找”(或选取)要设置样式的 HTML 元素的模式
-
选择器可以分为基础选择器、复合选择器
5、基本选择器
1、通配(通用)选择器
-
语法 *{ 样式声明 }
-
作用:匹配任意类型的HTML元素
<style> /* 页面上所有元素都被选择 */ *{ background-color:green; } </style> <body> <p>p</p> <div>div1</div> <div>div2 <div>div3</div> </div> </body> /* 一般用于清除浏览器的默认样式 */ margin: 0; padding: 0; 权重是0
2、元素名称(标签)选择器
-
语法: 元素名称{ 样式声明 }
-
作用:选择所有同一元素名称的所有元素
/* 选择body */ body{ background-color:green; } /* 选择页面上所有的div */ div{ width:100px; height:100px; background-color:red; } /* 选择页面上所有的p */ p{ background-color: pink; }
3、类选择器
-
语法
-
HTML中通过class属性定义
<div class="box"></div>
-
css中以点进行标识:.
.类名 { 样式声明; } .box{ background-color:red; }
-
-
作用:选择所有带有指定类名的元素
-
多类名的使用(词列表)
-
语法:空格隔开
-
<p class="box box1 box2">p</p>
-
4、id选择器
-
语法
-
HTML中通过id属性定义
如:
<div class="box"></div>
-
css中以点进行标识:#
#id名称 { 样式声明; } #box{ background-color:red; }
-
-
作用:选择所有带有指定类名的元素
注意:具有唯一性,一般用于页面唯一性的元素如头部、底部等,经常和 JavaScript 搭配使用。
类与id的命名规则
-
见词知义,尽量用英文;
-
始终建议以字母开头,可以包含数字、字母、下划线等
-
不要以数字开头
-
多个单词可以以驼峰式(newsCont)、中划线连接(news-cont)、下划线连接(news_cont)等
1、id选择器
-
语法
-
HTML中通过id属性定义
如:
<div class="box"></div>
-
css中以点进行标识:#
#id名称 { 样式声明; } #box{ background-color:red; }
-
-
作用:选择所有带有指定id名的元素
注意:具有唯一性,一般用于页面唯一性的元素如头部、底部等,经常和 JavaScript 搭配使用。
总结
-
总结使用频率
-
基础选择器中最常用是类选择器
-
id用于页面中唯一模块
-
标签选择器定义的全局样式,单独使用要慎重
-
*号通常用于重置样式【最不常用】
-
2、表格CSS 属性
1、表格边框
指定 CSS 表格边框,使用 border 属性,通常定义td,th的边框属性
表格会呈现双边框,是因为表和 th / td 元素有独立的边界。
table存在默认属性border-collapse:separate
2、表格的折叠边框
border-collapse 属性设置表格的边框是否被合并为一个单一的边框
-
取值
-
separate:边框独立(默认值)
-
collapse:相邻边框被合并
-
-
border-spacing:单元格之间的间距
-
border-spacing:水平方向 垂直方向;
-
border-spacing:一个值;代表水平方向和垂直方向的间距是一样的 注意:只有在 边框独立border-collapse: separate时才能用
-
3、单元格内容的垂直对齐
-
vertical-align 作用:垂直对齐属性设置垂直对齐,比如顶部,底部或中间
-
常用值
-
top顶部对齐
-
middle居中对齐
-
bottom底部对齐
-
小节:如何使用css实现表格的1像素边框
table{ border-collapse:collspse; }
3、CSS字体 ,文本属性
学习目标
-
熟练掌握css常用文本属性
-
熟练掌握css常用字体属性
-
能够说出颜色的常用表示方法
1、font-family:
-
作用:设置文本的字体系列
-
语法:font-family:字体名称
-
常用值:
-
一个字体名称或系列名称(介绍常用字体名称、字体系列)
-
微软雅黑 Microsoft YaHei
-
宋体 simsun
-
黑体 HeiTi
-
楷体 KaiTi
-
-
多个字体名称
-
逗号分开 如果浏览器不支持第一个字体,则会尝试下一个(回退机制)
1.使用多个字体名称形成一个回退系统(也就是备用字体),当浏览器不支持第一个字体的时候则会尝试下一个字体,多个字体之间用逗号隔开 2.中英文混合字体时,要先写英文字体,在写中文字体 font-family: 'Times New Roman', '楷体', '宋体' .box{ /*font-family:"微软雅黑","宋体";*/ /*font-family:"宋体","微软雅黑"; *//*与上一个相比产生的效果不同,谁在前使用哪一个*/ font-family:"微软雅黑abc","宋体"; /*第一个任意改写一个系统不存在的字体,会按照第二个字体显示*/ }
-
-
2、font-size
-
作用:设置字体的大小
-
语法:font-size:值
-
常用值:
-
长度值(通常是像素px)
-
百分比(相对于父元素字号计算)
-
-
em
-
相对单位
-
如果用于字号,相当于父元素字号计算,如果用于其它属性,相对于当前元素的字号
-
-
一般浏览器默认的大小为16px,支持最小的字体为12px。
3、font-style
-
作用:设置字体的样式
-
语法:font-style:值
-
常用值:
-
normal默认值
-
italic斜体显示
-
4、font-weight
-
作用:设置字体粗细
-
语法:font-weight:值
-
常用值:
-
normal默认值
-
bold加粗
-
100-900九级字重, 400相当于normal,700相当于bold
-
5、line-height
-
作用:设置行高(效果是产生文本行间距)
-
语法:line-height:值
-
特性:实现单行文本的垂直居中
-
测量:文字高+行间距
-
打开px软件--在视图菜单---标尺(Ctrl+r)
参考线:在标尺上按住鼠标左键不松手,拖拽鼠标
按住alt键,放大图纸,为了测量更加准确,滚动滚轮,向外滚表示放大,向内滚表示缩小
方法:测量两行文字中间的间距,然后除以2,得到平均间距,拉出参考线,进行标注,方便测量
-
常用值
-
normal默认。设置合理的行间距。
-
-
px 设置固定的行间距。
-
百分比:相对于font-size计算
.box{ line-height:200%; /*产生的效果一致都是字号的两倍*/ } line-height: 26px; 如果行高属性值没有单位,那么表示字号的倍数 20px/2 表示:字体大小是20px,行高是字体的两倍40px
6、font简写
-
作用:设置所有字体属性
-
语法:font: 字体风格 字体加粗 字号/行高 字体;
-
依次【空格】隔开
-
-
总结:只有当【字号和字体】同时存在简写才是有效的,简写属性可以精简简代码
font:font-style font-weight font-size/line-height font-family; 顺序:文字的样式 文字的加粗 文字的字号/行高 文字的字体 注意:如果font属性有效,则必须要有font-size属性和font-family属性 font: italic bold 14px/2 '微软雅黑';
7、text-align:
-
作用:设置文本的水平对齐方式
-
语法:text-align:值
-
常用值
-
left居左对齐 [默认值]
-
right居右对齐
-
center居中对齐
-
text-align: justify文本两端对齐方式
-
-
注:适用于块状元素
8、text-decoration
-
作用:设置文本装饰
-
语法:text-decoration:值
-
常用值
-
none 默认。定义标准的文本。 【常用】
-
underline 定义文本下的一条线 【常用】
-
line-through 定义穿过文本的一条线。【比较常用】
-
overline 定义文本上的一条线。 【不常用】
-
9、text-indent
-
作用:设置文本块首行的缩进
-
语法:text-indent:值
-
常用值
-
默认值:0
-
长度值,px,em
-
百分比: 相对于元素内容宽进行计算
-
允许负值
-
10、color
-
作用:设置文字的颜色
-
语法:color:颜色值
颜色的几种表现形式
1.英文的关键词:red红色,orange橙色,yellow黄色,green绿色,cyan青色,blue蓝色,purple紫色
transparent:透明色
2.十六进制色值
ps:英文状态下,按下i键,鼠标右键单击,拷贝颜色的十六制进制代码,在代码中ctrl+v粘贴
在代码的颜色中要写#在粘贴颜色的十六进制代码
由#和六位十六进制的数组成(0-9 a-f)
例:#000000表示黑色 #ff0000表示红色 #ffffff 表示白色
-
rgb(r,g,b)
r: red 红色 g: green 绿色 b: blue 蓝色
取值范围0-255
rgb(255, 255, 255); 表示白色
rgb(0, 0, 0);表示黑色
4.rgba(r,g,b,a)
r: red 红色 g: green 绿色 b: blue 蓝色
a: alpha 透明度 透明度在0-1之间表示,0表示完全透明 1 表示完全不透明
4、常用复合选择器
概述:由两个或多个基础选择器通过不同的方式组合而成的选择器
1.后代选择器
后代选择器又称包含选择器,可以选择某元素后代的元素
-
语法:
E F { 样式声明; }
-
描述:【空格】连接一个或多个选择器
-
作用: 选择E元素内部包含的所有F元素
/* .warp 范围内所有的span都有效 */ .wrap span { color: tomato; } <div class="wrap"> <span>我是第一个span</span> <ul> <li> <span>我是第a二span个</span> </li> </ul> <span>我是第三个span</span> <div class="txt">div文本</div> </div>
2.子代选择器
子代选择器他只能选择他的子代范围内的选择器,也就是父子关系
-
语法
E > F { 样式声明; }
-
描述:【大于】号 连接一个或多个选择器
-
作用: 选择E元素内部包含的所有直接子元素F(第一嵌套层级)
父类选择器与子代选择器之间与大于号隔开 /* .warp 范围内所有的子元素span都有效 */ .wrap>span { color: tomato; } <div class="wrap"> <span>我是第一个span</span> <ul> <li> <span>我是第a二span个</span> </li> </ul> <span>我是第三个span</span> <div class="txt">div文本</div> </div> </div>
3.群组选择器
群组选择器是在样式表中有很多具有相同样式的元素,为了尽量减少代码,我们可以用群组选择器
群组选择器是将任意多个选择器分在一组,每个选择器之间用逗号隔开
-
语法
E,F { 样式声明; }
-
描述:【逗号】连接一个或多个选择器
-
作用: 使用逗号分隔的列表来对选择器进行分组,给列表中每一个选择器选中的元素设置样式
选择器1,选择器2,选择器3{}; 选择器1和选择器2选择器3是都具有相同的样式的 选择器1和选择器2选择器3中间以逗号来隔开: 选择器1,选择器2,选择器 注意:最后一个选择器后面不用加逗号 h2, h3, h6, div, .box, #box2 { color: blue; } <h2>h2h2h2h2h2h</h2> <h3>h3h3h3h3h3</h3> <h6>h6h6h6h6h6h</h6> <div>divdivdiv</div> <div class="box">box111</div> <p id="box2">ppppp</p>
4.伪类链接选择器
用于添加特殊效果
-
语法
选择器:伪类{ }
-
用于设置链接的不同状态
a:link{ 链接的默认样式 } a:visited{ 链接访问过后的样式 } a:hover{ 鼠标悬停的样式 } a:active{ 鼠标按下的样式 } a:link { color: tomato; } a:visited { color: yellow; } a:hover { color: purple; } a:active { color: greenyellow; }
四个伪类状态都有效:L-v-H-a
-
:hover不仅可以表示链接的悬停,也可以用于其他标签中
/* 鼠标悬停到.box1盒上,让其本身的背景颜色变为蓝色 */ .box1:hover{ background-color: lightblue; } /* 鼠标悬停到.box2盒上,让p标签文字颜色变为红色 */ .box2:hover p{ color: red; } /* 鼠标悬停到.box3上,让p标签和h3标签的文字颜色都变为blue */ .box3:hover h3, .box3:hover p{ color: red; } .box3 :hover{ color: blue; }
5.相邻选择器
-
语法
-
示例:E+F{ 样式声明 } 用加号连接
-
描述:【加号】 连接一个或多个选择器
-
-
作用:E元素之后紧跟着的兄弟元素F
-
代码示例
.box + p{ background-color:red } <p>这个P元素不会被应用样式</p> <div class="box">box</div> <p>这个P元素会被应用样式</p> <p>这个P元素不会被应用样式</p>