style标签里面的内容不属于HTML的内容,里面的规范遵循CSS
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS</title> <style> /* CSS中的注释,注释中的内容会自动被浏览器所忽略 */ </style> </head> <body> </body> </html>选择器: 通过选择器可以选中页面中的指定元素
p表示CSS的选择器 作用是选中页面中的所有的p元素声明块: 通过声明块来指定要为元素设置的样式 声明块由一个一个声明组成 声明是一个名值对结构
一个样式名对应一个样式值,名和值之间以:连接,以;结尾 { }表示CSS的声明块 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS</title> <style> /* CSS基本语法 */ p{ color: red; font-size: 40px; } h1{ color: green; } </style> </head> <body> <h1>我是h1</h1> <p>今天天气真不错</p> </body> </html>作用:根据标签名来选中指定的元素
语法:
HTML元素名{ 属性1:属性值1; 属性2:属性值2; }例子:
p{ }、div{ }、h1{ }作用:根据元素的id属性值选中一个元素
语法:
#id选择器名{ 属性1:属性值1; 属性2:属性值2; .... }例子:
#box{ }、#red{ }注:id一般是不重复的,在HTML页面中id属性值要唯一
对网页中相同元素中某些元素做特殊效果设置
定义:根据元素的class属性值选中一组元素
语法:
.类选择器名{ 属性1:属性值1; 属性2:属性值2; .... }class是一个标签,他和id类似,不同的是class可以重复使用 可以通过class属性来为元素分组 可以同时为一个元素指定多个class属性
注:同一个类选择器样式,可以应用到不同的元素上
类选择器可在页面中任何元素中重用器所定义的样式,任何元素需要使用类选择器样式,只需要在该元素中添加 class = 类选择器名
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>选择器</title> <style> .blue{ color: blue; } .abc{ font-size: 30px; } </style> </head> <body> <p class="blue abc">少小离家老大回</p> <p>乡音无改鬓毛衰</p> <p id="red">儿童相见不相识</p> <p>笑问客从何处来</p> <p class="blue">秋水共长天一色</p> <p class="blue">落霞与孤鹜齐飞</p> </body> </html>作用:
选中页面中的所有元素,主要用于重置问的文档各元素的默认样式,一般用于重置文档元素的内、外边距
语法:
*{ 属性1:属性值1; 属性2:属性值2; ... } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>选择器</title> <style> *{ color: red; } </style> </head> <body> <p class="blue abc">少小离家老大回</p> <p>乡音无改鬓毛衰</p> <p id="red">儿童相见不相识</p> <p>笑问客从何处来</p> <p class="blue">秋水共长天一色</p> <p class="blue">落霞与孤鹜齐飞</p> </body> </html> 重置文档所有元素的内、外边距为0px *{ margin:0px; padding:0px }伪类(不存在的类,特殊的类)
伪类用来描述一个元素的特殊状态
比如:第一个子元素、被点击的元素、鼠标移入的元素伪类的一般情况下都是使用:开头
例如 :first-child 第一个子元素 :last-child 最后一个子元素 :nth-child() 选择第n个子元素 特殊值: n:表示直接选中0-正无穷范围 2n或even 表示选中偶数位元素 2n+1或odd 表示选中奇数位的元素 以上伪类都是根据所有的子元素进行排序 :first-of-type :last-of-type :nth-of-type 这几个伪类的功能和上述的类似,不同点是他们是在同类型元素中进行排序 :not() 否定伪类 将符合条件的元素从选择器中去除 例如:ul>li:not(:nth-of-type(3)){ } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>伪类选择器</title> <style> /* 将ul里面的第一个li设置为红色 但是第一个是span标签,所有第一个li就不是红色的了 */ ul > li:first-child{ color: red; } </style> </head> <body> <ul> <span>我是一个span</span> <li>第一个</li> <li>第二个</li> <li>第三个</li> <li>第四个</li> <li>第五个</li> </ul> </body> </html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>伪类选择器</title> <style> /* 将ul里面的第一个li设置为红色 */ ul > li:first-of-type{ color: red; } </style> </head> <body> <ul> <span>我是一个span</span> <li>第一个</li> <li>第二个</li> <li>第三个</li> <li>第四个</li> <li>第五个</li> </ul> </body> </html>使用伪类设置超链接不同状态样式时,要按照一定的顺序设置:
a:linka:visiteda:hovera:active <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>超链接伪类</title> <style> /* :link 用来表示没访问过的链接(正常的链接) */ a:link{ color: red; } /* :visited 用来表示访问过的链接 由于隐私的原因:所以visited这个伪类只能修改链接的颜色 */ a:visited{ color: orange; } /* :hover 用来表示鼠标移入的状态 */ a:hover{ color: aqua; font-size: 30px; } /* :active 用来表示鼠标点击的状态 */ a:active{ color: yellowgreen; } </style> </head> <body> <!-- 1. 没访问过的链接 2. 访问过的链接 --> <a href="https://www.baidu.com">没访问过的链接</a> <br><br> <a href="https://www.baidu.com">访问过的链接</a> </body> </html>伪元素表示页面中一些特殊的并不真实存在的元素(特殊的位置)
复合选择器是通过基本选择器进行组合构成的
是由两个选择器直接连接构成的,其中第一个选择器是元素选择器,第二个选择器是类选择器或者ID选择器
选中同时符合多个条件的元素
该元素的样式是三个选择器样式的叠加
注意:交集选择器中如果有元素选择器,必须使用元素选择器开头
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>选择器</title> <style> /* 将class为red的元素设置为红色(字体) */ .red{ color: red; } /* 将class为red的div字体大小设置为30px */ div.red{ font-size: 30px; } </style> </head> <body> <div class="red">我是div</div> <p class="red">我是p元素</p> </body> </html>由两个或两个以上的任意选择器组成,不同选择器之间使用,隔开
同时选择多个选择器对应的元素
例子:
#b1,p2,h1,span,div.red{ } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>选择器</title> <style> h1,span{ color: green; } </style> </head> <body> <div class="red">我是div</div> <p class="red">我是p元素</p> <h1 >标题</h1> <span>哈哈</span> </body> </html>网页中不同元素之间的关系:
父元素 直接包含子元素的元素叫做父元素 子元素 直接被父元素包含的元素是子元素 祖先元素 直接或间接包含后代元素的元素叫做祖先元素 一个元素的父元素也是它的祖先元素 后代元素 直接或间接被祖先元素包含的元素叫做后代元素 子元素也是后代元素 兄弟元素 拥有相同父元素的元素是兄弟元素例子:
div > p > span 寻找div的孙子元素 div > p 寻找div的孩子元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 为div子元素span设置一个字体颜色红色 (或者说为div之间包含的span设置一个字体颜色) */ div.box>span{ color: orange; } </style> </head> <body> <div class="box"> 我是一个div <p> 我是div中的p元素 <span>我是p元素中的span</span> </p> <span>我是div中的span元素</span> </div> <div> <span>我是div内的span</span> </div> <span> 我是div外的span元素 </span> </body> </html>注:后代选择器选择某个元素指定类型的所有后代元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 为div子元素span设置一个字体颜色红色 (或者说为div之间包含的span设置一个字体颜色) */ div span{ color: blue; } </style> </head> <body> <div class="box"> 我是一个div <p> 我是div中的p元素 <span>我是p元素中的span</span> </p> <span>我是div中的span元素</span> </div> <div> <span>我是div内的span</span> </div> <span> 我是div外的span元素 </span> </body> </html>例子:
p+span: 寻找紧挨着p元素的span元素作用:选择下面所有的兄弟
例子:p~span:选择p标签下面的所有兄弟span标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 为div子元素span设置一个字体颜色红色 (或者说为div之间包含的span设置一个字体颜色) */ p+span{ color: blue; } </style> </head> <body> <div class="box"> 我是一个div <p> 我是div中的p元素 <span>我是p元素中的span</span> </p> <span>我是div中的span元素</span> </div> <div> <span>我是div内的span</span> </div> <span> 我是div外的span元素 </span> </body> </html>根据元素的属性及属性值来选择元素
属性表达式可以是属性名,也可以是属性=属性值