批改状态:合格
老师批语:伪类在前端模块化编程中很有用的, 用一个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>/* grid:网格布局;container:容器,一般是块级元素,也可以设为行内元素;item:项目;row:行,column:列;cell:单元格,grid line:网格线 *//* 快餐店点菜:grid网格布局实现 */.head{width: 400px;display:grid;gap: 5px;}.item1{font-size: 2rem;background-color: rgba(11, 184, 236, 0.993);display:inline-flex;justify-content: center;align-items:center;}.container{/* W300=width: 300px;类同 */width: 400px;height: 400px;/* display:grid--显示块级元素display:inline-grid--显示行内元素 */display:grid;grid-template-columns: repeat(4,1fr);gap: 5px;}.item{font-size: 1rem;background-color: rgb(132, 204, 99);display:inline-flex;justify-content: center;align-items:center;}/* 简单选择器 *//* 元素(=标签)选择器 */body{background-color: rgb(170, 223, 172);}/* 类选择器:对应着html标签中的class属性 */.item{border:2px solid rgb(98, 28, 190);}/* 多个类复合应用 */.item.center{background-color: rgb(178, 223, 17);}/* .item.first{background-color: lightpink;} *//* id选择器 */.item#first{background-color: lightpink;}/* 层叠样式表,相同元素后面追加的样式会覆盖前面的样式 *//* *:属于元素级别 *.item=.item*/.item#first{background-color: yellow;}*.item#first{background-color: rgb(0, 140, 255);}#first.item{background-color: red;}/* 元素<class<id *//* id,class可以添加到任何元素上,所以可以省略 *//* id 选择器的应用场景目前只有两种场景:1、表达元素 2、锚点 。将逐渐被class代替。*/</style></head><body><div class="head"><div class="item1 center">欢迎光临ABC快餐店</div><div class="item1 center">欢迎选餐!</div></div><br/><div class="container"><div class="item" id="first">A1米饭</div><div class="item">A2馒头</div><div class="item">A3煎饼</div><div class="item">A4油条</div><div class="item">B1炒鸡</div><div class="item center">B2蒸鱼</div><div class="item center">B3烤鸭</div><div class="item ">B4焖肉</div><div class="item">C1炒青菜</div><div class="item center">C2土豆丝</div><div class="item center">C3番茄炒蛋</div><div class="item">C4地三鲜</div><div class="item">D1南瓜粥</div><div class="item">D2小米粥</div><div class="item">D3八宝粥</div><div class="item">D4红豆粥</div></div></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>.head{width: 400px;display:grid;gap: 5px;}.item1{font-size: 2rem;background-color: rgba(11, 184, 236, 0.993);display:inline-flex;justify-content: center;align-items:center;}.container{width: 400px;height: 400px;display:grid;grid-template-columns: repeat(4,1fr);gap: 5px;}.item{font-size: 1rem;background-color: rgb(132, 204, 99);display:inline-flex;justify-content: center;align-items:center;}body{background-color: lightgray;}/* 1、 后代选择器:空格 */.head div{border:2px solid lime;}.container div {border:3px solid lightcoral;}/* 2、父子选择器 */body>div{border:5px solid red;}/* 3、同级相邻选择器 */.item.center+.item{/* 此时B2+相邻的是B3;C2C3+相邻=C2相邻的C3+C3相邻的C4 */background-color: lightgreen;}/* 4 、同级所有选择器 */.item.first1~.item{background-color: lightsalmon;}</style></head><body><div class="head"><div class="item1 center">欢迎光临ABC快餐店</div><div class="item1 center">欢迎选餐!</div></div><br/><div class="container"><div class="item" id="first">A1米饭</div><div class="item">A2馒头</div><div class="item">A3煎饼</div><div class="item">A4油条</div><div class="item">B1炒鸡</div><div class="item center">B2蒸鱼</div><div class="item ">B3烤鸭</div><div class="item ">B4焖肉</div><div class="item">C1炒青菜</div><div class="item center">C2土豆丝</div><div class="item center">C3番茄炒蛋</div><div class="item">C4地三鲜</div><div class="item first1">D1南瓜粥</div><div class="item">D2小米粥</div><div class="item">D3八宝粥</div><div class="item">D4红豆粥</div></div></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>.head{width: 400px;display:grid;gap: 5px;}.item1{font-size: 2rem;background-color: rgba(11, 184, 236, 0.993);display:inline-flex;justify-content: center;align-items:center;}.container{width: 400px;height: 400px;display:grid;grid-template-columns: repeat(4,1fr);gap: 5px;}.item{font-size: 1rem;background-color: rgb(132, 204, 99);display:inline-flex;justify-content: center;align-items:center;}body{background-color: lightgray;}/* 匹配第一个子元素 .container>*:first-child等于.container>.item:first-child*/.container>*:first-child{background-color: lime;color:brown;}.container>.item:first-child {background-color: lightblue;}/* 最后一个子元素 */.container>:last-child{background-color: lightpink;}/* 选第三个 ,索引从第1开始*/.container>:nth-child(3){background-color: lightgreen;}/* 只选择偶数单元格 ,even-偶数*/.container>:nth-child(even){background-color: lightgreen;}/* 只选择偶数单元格 ,odd-奇数*/.container>:nth-child(odd){background-color: lightcoral;}/* 从指定位置开始,选择剩下的所有元素,从第5个开始后面所有元素如下: */.container>.item:nth-child(n+5){background-color: lightslategrey}/* 只取前2个 */.container>.item:nth-child(-n+2){background-color: lightgreen;}/* 只取最后三个 */.container>.item:nth-last-child(-n+3){background-color: lightblue;color:mediumorchid;}/* 取第12个,用倒数方式更 直观*/.container>.item:nth-last-child(5){background-color: yellow;}/* 取第7-10个,怎么取??*//* 层叠样式表,相同元素后面追加的样式会覆盖前面的样式 */</style></head><body><div class="head"><div class="item1 center">欢迎光临ABC快餐店</div><div class="item1 center">欢迎选餐!</div></div><br/><div class="container"><div class="item" id="first">A1米饭</div><div class="item">A2馒头</div><div class="item">A3煎饼</div><div class="item">A4油条</div><div class="item">B1炒鸡</div><div class="item center">B2蒸鱼</div><div class="item ">B3烤鸭</div><div class="item ">B4焖肉</div><div class="item">C1炒青菜</div><div class="item center">C2土豆丝</div><div class="item center">C3番茄炒蛋</div><div class="item">C4地三鲜</div><div class="item first1">D1南瓜粥</div><div class="item">D2小米粥</div><div class="item">D3八宝粥</div><div class="item">D4红豆粥</div></div></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>.head{width: 400px;display:grid;gap: 5px;}.item2{font-size: 2rem;background-color: yellow;display:inline-flex;justify-content: center;align-items:center;}.container{width: 400px;height: 400px;display:grid;grid-template-columns: repeat(4,1fr);gap: 5px;}.item{font-size: 1rem;background-color: rgb(132, 204, 99);display:inline-flex;justify-content: center;align-items:center;}.item1{font-size: 1rem;background-color: rgb(99, 153, 204);display:inline-flex;justify-content: center;align-items:center;}body{background-color: lightgray;}/* 分组结构伪类分二步 *//* 1、元素按类型分组 *//* 2、在分组中根据索引选择 *//* 取div组第一个 */.container div:first-of-type {background-color: red;color:yellow;}/* 取div最后一个 */.container div:last-of-type {background-color: blue;}/* 取span组第一个 */.container span:first-of-type {background-color: violet;}/* 取span组最后一个 */.container span:last-of-type {background-color: yellow;}/* 在分组中匹配任何一个*/.container div:nth-of-type(3) {background-color: rgb(89, 0, 255);}.container span:nth-of-type(3) {background-color: rgb(89, 0, 255);}/* 在分组中匹配任何几个,n=0,正数*/.container span:nth-of-type(-n+2) {background-color:red;}/* 在分组中匹配任何几个,n=0,倒数*/.container span:nth-last-of-type(-n+2) {background-color:yellow;}</style></head><body><div class="head"><div class="item2 center">欢迎光临ABC快餐店</div><div class="item2 center">欢迎选餐!</div></div><br/><div class="container"><div class="item" >A1米饭</div><div class="item">A2馒头</div><div class="item">A3煎饼</div><div class="item">A4油条</div><div class="item">B1炒鸡</div><div class="item" >B2蒸鱼</div><div class="item">B3烤鸭</div><div class="item">B4焖肉</div><span class="item1">C1炒青菜</span><span class="item1" >C2土豆丝</span><span class="item1" >C3番茄炒蛋</span><span class="item1">C4地三鲜</span><span class="item1" >D1南瓜粥</span><span class="item1">D2小米粥</span><span class="item1">D3八宝粥</span><span class="item1">D4红豆粥</span></div></body></html>
| 状态伪类属性 | 描述 |
|---|---|
| :link | 应用于未被访问过的链接; |
| :hover | 应用于鼠标悬停到的元素; |
| :active | 应用于被激活的元素; |
| :visited | 应用于被访问过的链接,与:link互斥。 |
| :focus | 应用于拥有键盘输入焦点的元素。 |
| :target | 应用于链接点击后指向元素 |
| 结构伪类选择器属性 | 描述 |
|---|---|
| :first-child | 选择某个元素的第一个子元素; |
| :last-child | 选择某个元素的最后一个子元素; |
| :nth-child() | 选择某个元素的一个或多个特定的子元素; |
| :nth-last-child() | 选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算; |
| :nth-of-type() | 选择指定的元素; |
| :nth-last-of-type() | 选择指定的元素,从元素的最后一个开始计算; |
| :first-of-type | 选择一个上级元素下的第一个同类子元素; |
| :last-of-type | 选择一个上级元素的最后一个同类子元素; |
| :only-child | 选择的元素是它的父元素的唯一一个子元素; |
| :only-of-type | 选择一个元素是它的上级元素的唯一一个相同类型的子元素; |
| :empty | 选择的元素里面没有任何内容。 |
伪元素:用于向某些选择器设置特殊效果。是对元素中的特定内容进行操作,而不是描述状态
| 伪元素属性 | 描述 |
|---|---|
| :first-letter | 选择元素文本的第一个字(母) |
| :first-line | 选择元素文本的第一行。 |
| :before | 在元素内容的最前面添加新内容。 |
| :after | 在元素内容的最后面添加新内容。 |
| 伪类 | 伪元素 |
|---|---|
| 单冒号(:) | 双冒号(::) |
| 效果可以通过添加一个实际的类来达到 | 效果则需要通过添加一个实际的元素来达到 |
1>
2>
3>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>常用伪类和伪元素01:</title><style>#login-form{display:none;}/* :target 必须与ID配合,实现锚点操作 *//* 当前#login-form的表单元素被a的锚点激活时执行 */#login-form:target{display:block;}/* :focus:当获取焦点时执行 */input:focus{background-color: lightcyan;}/* ::selection:设置选中文本的前景色和背景色 */input::selection{color:white;background-color: blue;}</style></head><body><!-- <a href="">我要登录山大</a> --><button onclick="location='#login-form'">点击登录山大</button><form<form action=" " method="post" id="login-form"><label for="name">姓名: </label><input type="name" name="name" id="name"><br/><label for="email">邮箱:</input><input type="email" name="email" id="email"/><br/><label for="password">密码:</label><input type="password" name="password" id="password"/><br/><button ><a href="https://www.sdu.edu.cn/">登录</a></button></form></body></html>

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>常用伪类和伪元素02:</title><style>/* :not():选择不满足条件的元素 */.list >:not(:nth-of-type(3)){color:orange;}/* 创建伪元素,伪元素:页面中不存在,无代码,浏览器自动生成 *//* ::before :在表单前面创建*/.list::before{content:'满分学员名单:';color:red;font-size:1.5rem;border-bottom:1px solid blue;margin-left: -20px;}/* ::after:在表单后面创建*/.list::after{content:'人数小计:';color:red;font-size:1.5rem;border-top: 1px solid blue;margin-left: -20px;}</style></head><body><!-- ul.list>li{item$}*6,回车如下: --><ul class="list"><li>张三</li><li>李四</li><li>孙五</li><li>赵六</li><li>周七</li><li>郑八</li></ul></body></html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号