博客列表 >伪类选择器-结构伪类、根据位置选择匹配

伪类选择器-结构伪类、根据位置选择匹配

P粉314265155
P粉314265155原创
2022年07月08日 18:58:54333浏览

结构伪类

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>伪类选择器-结构伪类、根据位置选择匹配</title>
  8. <link rel="stylesheet" href="../0707/css/zuoye1.css">
  9. </head>
  10. <body>
  11. <!-- 伪类选择器类型
  12. 1、结构伪类:根据结构的位置获取元素
  13. 2、状态伪类:根据元素的状态来获取元素。例如获取焦点或者无效元素
  14. -->
  15. <!-- 伪:假的、仿 -->
  16. <!-- 类:权重级别 依然是class级别,类 级/class级
  17. -->
  18. <!-- 仿:假、仿 -->
  19. <!-- 类:权重级别 -->
  20. <!-- <ul class="weizhi">
  21. <li>title</li>
  22. <li>title</li>
  23. <li>title</li>
  24. <li>title</li>
  25. <li>title</li>
  26. <li>title</li>
  27. <li>title</li>
  28. <li>title</li>
  29. </ul> -->
  30. <ul class="weizhi">
  31. <li class="title">item1</li>
  32. <li >item2</li>
  33. <li >item3</li>
  34. <li >item4</li>
  35. <li >item5</li>
  36. <li >item7</li>
  37. <li >item6</li>
  38. <li >item8</li>
  39. </ul>
  40. </body>
  41. </html>
  1. .weizhi > li.title{
  2. background-color: blue;
  3. }
  4. /* 获取当前第一个元素 */
  5. .weizhi > li:nth-of-type(1){
  6. background-color: red;
  7. }
  8. /* 获取第二个元素 */
  9. .weizhi > li:nth-of-type(2){
  10. background-color: aqua;
  11. }
  12. /* 获取最后一个 */
  13. .weizhi > li:nth-of-type(8){
  14. background-color: black;
  15. }
  16. /* 选择前三个 */
  17. /* 括弧里面公式:an+b
  18. a:是系数 -1反向 匹配 1是正向匹配,当a为2时 是偶数。当a为1时,是奇数
  19. n 是参数 ,就是标签的个数 从0开始
  20. 3:是偏移量 */
  21. .weizhi > li:nth-of-type(-n+3){
  22. background-color: blueviolet;
  23. }
  24. /* 如果是n就是所有 */
  25. .weizhi > li:nth-of-type(n){
  26. background-color: teal;
  27. }
  28. /* 获取后三个
  29. 语法加上 last 另外 括弧内的 跟获取前三一样
  30. */
  31. .weizhi > li:nth-last-of-type(-n+3){
  32. background-color: firebrick;
  33. }
  34. /* 获取第一个的快捷语法
  35. 把nth 换为 first
  36. 获取最后一个快捷语法
  37. 把nth 换为last
  38. */
  39. /* .weizhi> li:first-of-type {
  40. background-color: cyan;
  41. } */
  42. .weizhi > li:first-of-type{
  43. background-color: chocolate;
  44. }
  45. .weizhi > li:last-of-type{
  46. background-color: aliceblue;
  47. }
  48. /* 获取偶数、
  49. .list li:nth-of-type(even)
  50. 奇数语法
  51. .list li:nth-of-type(odd)
  52. */
  53. .weizhi li:nth-of-type(even){
  54. background-color: aqua;
  55. }
  56. .weizhi li:nth-of-type(odd){
  57. background-color: blue;
  58. }

状态伪类

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>状态伪类</title>
  8. <link rel="stylesheet" href="../0707/css/zuoye2.css">
  9. </head>
  10. <body>
  11. <form action="checked.php">
  12. <!-- fieldset 表单分组,把里面的打包在一起 -->
  13. <fieldset>
  14. <!-- legend 元素为 fieldset 元素定义标题(caption) -->
  15. <legend>我是fieldset的标题</legend>
  16. <label for="male">用户注册页面</label>
  17. <br>
  18. <label for="jinggao">警告:</label>
  19. <!-- disabled 不能选择 -->
  20. <input type="text" name="" id="jinggao" value="一旦提交禁止注册" disabled style="border: none;">
  21. <br>
  22. <label for="male">性别:</label>
  23. <!-- 注意 name要一样,不然 两个按键都能选中 -->
  24. <input type="radio" id="male" name="sex" checked><label for="male"></label>
  25. <input type="radio" id="male" name="sex"><label for="female"></label>
  26. <br>
  27. <button>提交</button>
  28. </fieldset>
  29. </form>
  30. <!-- 获取被禁用的元素,注意要在css里面写,就是在style里面写
  31. -->
  32. <style>
  33. /* 获取被禁用的元素 ,修改样式、状态等*/
  34. input:disabled{
  35. background-color: blue;
  36. }
  37. /* 获取选择的元素 ,修改样式、状态等*/
  38. input:checked{
  39. background-color: aqua;
  40. color: blueviolet;
  41. }
  42. /* 鼠标移入是时 ,修改样式、状态等*/
  43. /* hover 鼠标移入 */
  44. button:hover{
  45. background-color: black;
  46. }
  47. /* 获取焦点时变化 */
  48. /* focus 焦点 */
  49. input:focus {
  50. background-color: red;
  51. }
  52. </style>
  53. </body>
  54. </html>

我是盒模型

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>盒/核模型</title>
  8. <link rel="stylesheet" href="../0707/css/zuoye3.css">
  9. </head>
  10. <body>
  11. <!-- div就是一个小盒子 -->
  12. <div class="box">
  13. </div>
  14. <!-- 盒模型主要有四个参数,需要在css style里面定义样式,div盒子默认有宽度 没有高度 -->
  15. <!-- 1、宽度:width -->
  16. <!-- 2、高度:height -->
  17. <!--3、 内边距:padding: 是内容区与边框之前的填充物-->
  18. <!-- 4、边距:border -->
  19. <!-- 5、外边距:margin 控制当前盒子与其他元素之前的空隙 margin 的规则与padding完全一样 -->
  20. <style>
  21. .box {
  22. /* 宽度 、高度,注意要加px像素值,不然不起作用*/
  23. width: 200px;
  24. height: 300px;
  25. /* 不可见因为没有设置可以被看见的属性 */
  26. /* /* 可见属性: 宽度, 样式, 颜色 可见的属性包含边框、背景等 */
  27. /*不可见属性 padding 是内边距,是内容区与边框之前的填充物 */
  28. /* 不可见属性 margin: ; 外边距,控制当前盒子与其他元素之前的空隙 */
  29. /* 不可见属性只能设置宽度,不能设置样式特征颜色样式虚线、实线 */
  30. background-color: violet;
  31. /* background-clip 规定背景的绘制区域:背景裁切,只覆盖到内容区, 不包括padding */
  32. background-clip: content-box;
  33. /* solid是边框颜色 */
  34. border: 5px solid;
  35. padding: 30px;
  36. /* 盒子计算方式: */
  37. /* 宽度:注意把两边的padding border 都算进去了 没有计算margin */
  38. /* border-left-width + padding-left + width + padding-right + border-right-width */
  39. /* 5 + 20 + 200 + 20 + 5 = 250px */
  40. /* 高度:注意把两边的padding border 都算进去了 没有计算margin */
  41. /* border-top-width + padding-top + height + padding-bottom + border-bottom-width */
  42. /* 5 + 20 + 100 + 20 + 5 = 150px */
  43. /*
  44. 我们的本意是: 我设置的宽高就应该是盒子的最终大小,
  45. 而不是浏览器添加上内边距和边框后的计算大小
  46. */
  47. /* 推荐的盒子大小计算方式,可以简化页面布局,可以只计算width和height ,不计算border和padding */
  48. /* box-sizing */
  49. box-sizing: border-box;
  50. /* content-box 计算border和padding 还原到w3c默认标准盒子计算方式 ,或者引入css还原*/
  51. /* box-sizing: content-box; */
  52. }
  53. .box {
  54. /* border-top: 边框的顶部宽度 dashed是边框线条样式 边框背景前景色,底部同理 */
  55. border-top: 10px dashed blue;
  56. /* border-left: 边框的左边宽度 样式 前景色 ,右边同理*/
  57. border-left: 10px dashed blue;
  58. /* 四条边一样的时候,可以只写border */
  59. border: 5px solid red;
  60. }
  61. /* 以下写盒子的边框值比较麻烦,可以进行简化 */
  62. .box {
  63. /* padding-left: 10px;
  64. padding-top: 5px;
  65. padding-right: 20px; */
  66. }
  67. .box {
  68. /* padding
  69. /* 简化方案: 顺时针方向 */
  70. /* 1. 四值: 顺时针, 上, 右,下,左 */
  71. padding: 5px 10px 15px 20px;
  72. /* 2. 三值, 第一个表示上 中间永远表示左和右 */
  73. padding: 5px 10px 15px;
  74. /* 3. 双值, 第1个上和下,第2个左和右 */
  75. padding: 5px 10px;
  76. /* 三值,二值记忆方法: 第2个值永远表示左右 */
  77. /* 4. 单值, 四个方向全相同 */
  78. padding: 10px;
  79. }
  80. /* margin 的规则与padding完全一样 */
  81. </style>
  82. </body>
  83. </html>
我是初始化盒子
  1. /* 元素样式初始/重置 */
  2. /* 星号代表选择所有 */
  3. /* 星号 {
  4. margin: 0;
  5. padding: 0;
  6. box-sizing: border-box;
  7. }
  8. */
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议