欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用

程序员文章站 2022-04-17 19:00:58
...

伪类的选择器

伪类的级别为最低的,比class,id,标签的级别更低

两种伪类

  1. 结构伪类
    根据元素位置获取元素
  2. 状态伪类
    根据状态来获取元素
    结构伪类
    说明:伪类结构属于父级结构元素 常与 > 符号一起使用
    nth-of-type 参数正数第几个.
    单选情况案例1:
    1. <ul class="ul">
    2. <li class="li1">测试</li>
    3. <li class="li2">测试</li>
    4. <li class="li3">测试</li>
    5. <li class="li4">测试</li>
    6. <li class="li5">测试</li>
    7. </ul>
    8. <style>
    9. .ul > li:nth-of-type(2) {
    10. background-color: black;
    11. }
    12. </style>
    示例图:
    伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
    更改背景颜色的是class属性为li2的一行


一组情况案例2:

  1. <ul class="ul">
  2. <li class="li1">测试</li>
  3. <li class="li2">测试</li>
  4. <li class="li3">测试</li>
  5. <li class="li4">测试</li>
  6. <li class="li5">测试</li>
  7. </ul>
  8. <style>
  9. .ul > li:nth-of-type(n + 2) {
  10. background-color: black;
  11. color: chartreuse;
  12. }
  13. </style>

示例图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用


单选情况案例3:
nth-last-of-type 参数倒数第几个
代码:

  1. <ul class="ad">
  2. <li class="a1">测试倒数</li>
  3. <li class="a2">测试倒数</li>
  4. <li class="a3">测试倒数</li>
  5. <li class="a4">测试倒数</li>
  6. <li class="a5">测试倒数</li>
  7. <li class="a5">测试倒数</li>
  8. </ul>
  9. <style>
  10. /* nth-last-of-type属性,是倒数第三个,在of前面加了一个last */
  11. .ad > li:nth-last-of-type(3) {
  12. background-color: blue;
  13. }
  14. </style>

示例图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
这里底部颜色变色的是倒数第三个,也就是class=”a4”的一行.


一组情况案例4:

  1. <ul class="ad">
  2. <li class="a1">测试倒数</li>
  3. <li class="a2">测试倒数</li>
  4. <li class="a3">测试倒数</li>
  5. <li class="a4">测试倒数</li>
  6. <li class="a5">测试倒数</li>
  7. <li class="a6">测试倒数</li>
  8. <li class="a7">测试倒数</li>
  9. <li class="a8">测试倒数</li>
  10. </ul>
  11. <style>
  12. /* 这里出来的是从倒数第三个,往前走,意思是2*0+3,第二个为2*1+3 第三个为2*2+3 */
  13. /* 所以底色选中的是倒数第三个,倒数第五个,倒数第七个 */
  14. .ad > li:nth-last-of-type(2n + 3) {
  15. background-color: blue;
  16. }
  17. </style>

示例截图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
其他类参数:
first-of-type 整数第一个
last-of-type 倒数第一个


参考表格:

参数 说明
nth-of-type(值) 数字例如1,2,3/an+b(a是可以是一个数字或-1,n属于自增字段,b也可以是1个数字) 选择正数第几个或者第几组(在an+b情况下是组)
nth-last-of-type(值) 数字例如1,2,3/an+b(a是可以是一个数字或-1,n属于自增字段,b也可以是1个数字) 这里与nth-of-type相反,是倒数第几行或者第几组(在an+b情况下是组)
first-of-type 选中正数第一个
last-of-type 选中倒数第一个

解释:

  1. <ul class="list">
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>item3</li>
  5. <li>item4</li>
  6. <li>item5</li>
  7. <li>item6</li>
  8. <li>item7</li>
  9. <li>item8</li>
  10. </ul>
  11. <style>
  12. /*
  13. :nth-of-type(an+b)
  14. 1. a: 系数, [0,1,2,...]
  15. 2. n: [0,1,2,3,....]
  16. 3. b: 偏移量, 从0开始
  17. 注: 计算出来的索引,必须是有效, 从1开始
  18. */
  19. /* 选择元素只有二种情况:
  20. 1. 选择一个
  21. 2. 选择一组 */
  22. /* 1. 匹配单个, a = 0 */
  23. /* 匹配第3个 */
  24. .list > :nth-of-type(0n + 3) {
  25. background-color: lightgreen-;
  26. }
  27. /* 0n+3 => 3 */
  28. /* 因为0乘任何数都0,所以可简化,只写偏移量 */
  29. .list > :nth-of-type(3) {
  30. background-color: lightgreen-;
  31. }
  32. /* 2. 匹配一组 */
  33. /* 2.1 a = 1 */
  34. .list > :nth-of-type(1n) {
  35. background-color: lightgreen-;
  36. }
  37. /* 1乘任何数不变, 所以1可以不写 */
  38. .list > :nth-of-type(n) {
  39. background-color: lightgreen-;
  40. }
  41. /* .list > * {
  42. background-color: lightblue !important;
  43. } */
  44. /* 实际开发过程, 使用 n + b(偏移量)来匹配元素 */
  45. /* 任务: 匹配第3个子元素后面的所有兄弟元素 */
  46. /* .list .three,
  47. .list .three ~ * {
  48. background-color: lightgreen;
  49. } */
  50. /* an+b = 1n+3 */
  51. /* n+3: 偏移量是3, 表示从第3个开始匹配 */
  52. .list > :nth-of-type(n + 3) {
  53. background-color: lightgreen-;
  54. }
  55. /*
  56. n: 从0开始取, n+3 匹配的全过程
  57. 1. n=0: 0+3=3, 匹配第3个
  58. 2. n=1: 1+3=4, 匹配第4个
  59. 3. n=2: 2+3=5, 匹配第5个
  60. 4. n=3: 3+3=6, 匹配第6个
  61. 5. n=4: 4+3=7, 匹配第7个
  62. 6. n=5: 5+3=8, 匹配第8个
  63. 7. n=6: 6+3=9, 索引越界,匹配失败,结束计算
  64. n+3 => [3,4,5,6,7,8], 匹配到6个
  65. */
  66. /* 2.2 a=-1, 功能与 a=1是一样,但是反向取 */
  67. /* 取前3个 */
  68. .list > :nth-of-type(-n + 3) {
  69. background-color: lightgreen-;
  70. }
  71. /*
  72. -n+3:
  73. 1. n=0: -0+3=3, 匹配第3个
  74. 2. n=1: -1+3=2, 匹配第2个
  75. 3. n=2: -2+3=1, 匹配第1个
  76. 4. n=3: -3+3=0, 匹配失败,计算结束
  77. -n+3 => [3,2,1],返回前3个
  78. */
  79. /* 思考: 如果匹配最后三个怎么办? */
  80. .list > :nth-last-of-type(-n + 3) {
  81. background-color: lightgreen-;
  82. }
  83. /* 2.3 a=2 : 匹配奇偶位置的元素 */
  84. /* 2n+0: 偶数位元素 */
  85. .list > :nth-of-type(2n) {
  86. background-color: lightgreen-;
  87. }
  88. /* 2n+1: 奇数位元素 */
  89. .list > :nth-of-type(2n + 1) {
  90. background-color: lightgreen-;
  91. }
  92. /* 2n: even, 2n+1: odd */
  93. /* .list :nth-of-type(even):hover {
  94. background-color: yellow;
  95. } */
  96. </style>

一组案例代码5:
兄弟元素的使用
代码:

  1. <ul class="ad">
  2. <li class="a1">test</li>
  3. <li class="a2">test</li>
  4. <li class="a3">test</li>
  5. <li class="a4">test</li>
  6. <li class="a5">test</li>
  7. <li class="a6">test</li>
  8. <li class="a7">test</li>
  9. <li class="a8">test</li>
  10. </ul>
  11. <style>
  12. /* 意思是从class="a3"开始,往后,这里往后是从后往前数,因为是nth-last所有的兄弟元素添加一个底颜色 */
  13. .ad > li.a4 ~ *:nth-last-of-type(n) {
  14. background-color: blue;
  15. }
  16. </style>

意思是从class=”a3”开始,往后所有的兄弟元素添加一个底颜色,
示例图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用


表单类伪元素

表单类伪元素就是进行对表单添加伪元素,使其增加一些class属性
表单类伪元素表格及使用说明:

属性值 用法 说明
disabled input:disabled 针对无效属性设置相关的css,前提情况下是当前属性在disabled禁用状态下,常常配合input中text属性值来使用,无效点击的设置
enabled input:enabled 针对有效属性,前提情况下是当前属性在enabled状态下,也就是默认开启的状态下,配合input中text属性值来使用,有效点击下的背景属性
focus input:focus 光标的聚焦移动到文本框后,鼠标的箭头的变化,一般也是配合input中text属性值来用的,input光标焦点的设置
checked input:checked + label 此属性一般跟复选框/单选框挂钩,当type的值为radio,checkbox中, + label绑定使用,添加style属性,比如背景,点击后背景改变等, 这里解析为单击选中后文字的特效
hover input:hover 类似class中hover使用方法一直,就是鼠标移动过去之后的效果

代码部分:

  1. <form method="post" action="login.php">
  2. <div>
  3. <span class="iconfont icon-favorite">用户名:</span>
  4. <input type="text" id="text" name="text" value="用户名" />
  5. </div>
  6. <div>
  7. <span class="iconfont icon-forhelp">性别:</span>
  8. <label for="m">男性</label>
  9. <input type="radio" id="m" name="m" value="0" required />
  10. <label for="g">女性</label>
  11. <input type="radio" id="g" name="m" value="1" />
  12. </div>
  13. <div>
  14. <span class="iconfont icon-warning">爱好:</span>
  15. <label for="love">php</label>
  16. <input type="checkbox" id="love" name="l[]" checked />
  17. <label for="html">html</label>
  18. <input type="checkbox" id="html" name="l[]" />
  19. <label for="css">css</label>
  20. <input type="checkbox" id="css" name="l[]" />
  21. </div>
  22. <div>
  23. <span class="iconfont icon-mail">邮箱:</span>
  24. <label for="email"></label>
  25. <input type="email" id="email" name="email" placeholder="请填写您的邮箱" required />
  26. </div>
  27. <div>
  28. <span class="iconfont icon-comment">邀请码:</span>
  29. <input type="text" value="75sgst" name="y" disabled />
  30. </div>
  31. <button type="submit">提交</button>
  32. <button type="reset">重置</button>
  33. <button type="button">无效点击</button>
  34. <style>
  35. input:disabled {
  36. /* 无效点击的设置 */
  37. background-color: gray;
  38. color: honeydew;
  39. }
  40. input:enabled {
  41. /* 有效点击下的背景属性 */
  42. background-color: cyan;
  43. }
  44. span {
  45. display: block;
  46. width: 60px;
  47. float: left;
  48. }
  49. div {
  50. height: 30px;
  51. }
  52. input:focus {
  53. /* input光标焦点的设置 */
  54. background-color: blanchedalmond;
  55. }
  56. input:checked+label {
  57. /* 这里解析为单击选中后文字的特效 */
  58. color: red;
  59. background-color: chartreuse;
  60. }
  61. input:hover {
  62. /* hover为光标移动后的属性 */
  63. background-color: crimson;
  64. cursor: pointer;
  65. border: blue 1px solid;
  66. /* 鼠标移动过去鼠标的属性 */
  67. }
  68. </style>
  69. </form>
表单额外学习知识勿忘记:
type值 用法 说明
checkbox type=”checkbox” 复选框,使用时name值为数组形式,如:name=”l[]”
radio type=”radio” 单选框,使用时name需相同,value值不同,尽量为数字,如name=”m” value=”0”

表单组合使用其他代码:
placeholder="文本框提示语句"。
required 提交时必填。
checked 打开页面默认选中。

字体引入(来源于阿里字体库)

内有说明,可直接拿其使用,下载文件内详细参考知识,不做详细
帖入字体引入代码:

  1. <link rel="stylesheet" href="//at.alicdn.com/t/font_3062587_tqyeoh701u.css" />
  2. <!--头部加入因为文件代码-->
  3. <div>
  4. <span class="iconfont icon-favorite">用户名:</span>
  5. <!-- 需要加图标的位置根据阿里云说明,加入class属性,iconfont必带属性,icon-favorite图标相应属性 -->
  6. <input type="text" id="text" name="text" value="用户名" />
  7. </div>

效果图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用

盒模型知识点

其中盒模型常用的四个参数

属性 用法/说明
width width=”100px”或者width: 200px; width加宽度值,宽度的值有px(像素),em(根据父级字体大小设置大小),rem(根据html字体大小设置大小),vw(视口就是可视窗口的宽的百分比)
height height=”100px”或者height: 200px; 和width一样,不同的地方是多了一个,vh,也是视口的可视窗口的百分比
border border: 10px solid #000; 其中solid是必带参数,意思是线,border我自己理解为边框,border: 10px solid #000; 解读为边框,10px,实线,加颜色
padding padding: 5px 10px 15px 20px; 盒子内边距,padding值可为4个,也可以为2个,也可以为3个,还可以为1个,其意思跟顺时针意思一样,4个的时候,上右下左,2个的时候代表上,中,下,单个值就是4个方向一样。
margin margin:5px 10px 15px 20px; 意思跟padding是一样的,只不过他是外边距,padding是内边距
box-sizing box-sizing: border-box; 防止溢出,border和paddind会被计算在盒子的高度宽度之类,比如盒子我设定的高度宽度值100px,

自己码的代码示例:

  1. <body>
  2. <style>
  3. .ad {
  4. width: 200px;
  5. box-sizing: border-box;
  6. background-color: palegreen;
  7. }
  8. .ad1 {
  9. width: 180px;
  10. /*添加了box-sizing后 这里计算padding宽度左右两边,各为5,总和10,边距为左右两边,各为10,左右总为20,实际的width宽度为150px */
  11. padding: 5px;
  12. margin: 10px;
  13. border: palevioletred solid 10px;
  14. background-color: purple;
  15. box-sizing: border-box;
  16. }
  17. </style>
  18. <div class="ad">
  19. <div class="ad1"></div>
  20. </div>

示例截图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
盒模型老师教我的部分代码:

  1. <body>
  2. <div class="box"></div>
  3. <style>
  4. /* 盒模型常用属性
  5. 1. width
  6. 2. height
  7. 3. border
  8. 4. padding
  9. 5. margin
  10. */
  11. .box {
  12. width: 200px;
  13. height: 200px;
  14. /* border: 10px solid #000; */
  15. background-color: violet;
  16. border: 10px dashed currentColor;
  17. background-clip: content-box;
  18. /* padding: 内边距,呼吸区 */
  19. padding: 20px;
  20. /* 当前盒子总宽度: 200 + 20*2 + 10*2 = 260px */
  21. /* 改变盒子大小的计算方式,使用户设置width,height就是盒子的实际大小,以方便计算与布局 */
  22. box-sizing: border-box;
  23. /* 此时, width, heigth设置的盒子大小, 就是最终的计算尺寸 */
  24. /* 当前盒子总宽度: 140 + 20*2 + 10*2 = 200px */
  25. /* 计算出来的200px, 就是width=200px */
  26. }
  27. .box {
  28. /* 四值 , 顺时针 */
  29. /* padding: 上 右 下 左 ; */
  30. padding: 5px 10px 15px 20px;
  31. /* 三值 , 中间表示左右*/
  32. padding: 5px 10px 15px;
  33. /* 双值: 第1个上下,第2个左右 */
  34. padding: 5px 10px;
  35. /* 单值, 四个方向全一样 */
  36. padding: 5px;
  37. /* padding: 是透明的,只有宽度可以设置 */
  38. }
  39. .box {
  40. /* 边框有视觉效果,有宽度, 样式, 颜色 */
  41. /* border-top-width: 20px;
  42. border-top-style: solid;
  43. border-top-color: red; */
  44. border-top: 20px solid red;
  45. border: 5px solid green;
  46. }
  47. /* 样式重置的简化通用方案 */
  48. * {
  49. padding: 0;
  50. margin: 0;
  51. box-sizing: border-box;
  52. }
  53. .box {
  54. /* margin 与 padding是一样,只不过它在边框外部, 是外边距, 控制多个盒子之间的间隔; */
  55. margin: 10px;
  56. }
  57. </style>
常用距离单位:

在前端html页面中,常用距离单位,为px,em,rem,vw,vh。

参数代码 示例 说明
px width=”100px” 意思是宽度100个像素,当然不只是用在宽度里面,还有内边距,外边距,线等等,其距离单位为px,像素
em width=”10em” 这里就比较有意思,这里1em指定的是父级字体像素的比,比如父级字体为10px,那么这里设置为10em,就等于100px。
rem width=”10rem” 这里单位是继承了页面html的像素比例,比如页面html像素为100px,这里的10rem就是10*100px的值,就是1000px。
vw width=”10vm” 这里是视口,就是可视页面,能看见的页面的地方的百分比,写宽度10vm,等于屏幕宽的10%大小
vh height=”10vm” 这里也是视口的意思,和vw意思一样,只是vw是宽,vh是高

这里没写一小段代码,整段代码写到了作业里面了,
老师教我的常用单位示例:

  1. <!-- px, em, rem , vh, vw -->
  2. <style>
  3. /* 绝对单位: px , 1in = 96px */
  4. /* 相对单位: em,rem, vh, vw */
  5. </style>
  6. <div class="box"></div>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. box-sizing: border-box;
  12. }
  13. /* font-size: 字号大小, 它是一个可以被继承的属性 */
  14. .box {
  15. /* font-size: 32px; */
  16. /* width: 160px; */
  17. /* width: 10em; */
  18. /* 10em = 160px */
  19. /* em = font-size 默认字号 16px*/
  20. /* 1em = 16px */
  21. /* 10em = 160px */
  22. /* height: 5em;
  23. background-color: lightgreen; */
  24. /* em: 永远和当前或父级的font-size进行绑定 */
  25. }
  26. /* rem: 永远和html(根元素)中的font-size绑定 */
  27. html {
  28. /* 1rem = 10px; */
  29. /* font-size: 10px; */
  30. }
  31. .box {
  32. /* font-size: 40px; */
  33. /* width: 200px; */
  34. /* 200px = 20 * 10 = 20rem */
  35. /* width: 20rem;
  36. height: 15rem;
  37. width: 10em;
  38. height: 5em; */
  39. }
  40. /* vh, vw */
  41. /* vw: 将视口宽度分为100份, 1vw = 1/100 */
  42. /* vh: 将视口高宽分为100份, 1vh = 1/100 */
  43. /* 视口: 可视窗口 */
  44. /* .box {
  45. width: 100vw;
  46. height: 100vh;
  47. } */
  48. </style>

作业完成案例截图:
伪类跟选择器伪类的参数以及常用距离的单位,并且学习了盒模型的部署,强化了学习中box-sizing: border-box;对内边距和线的了解以及表格中类元素的使用
相关代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <link rel="stylesheet" href="//at.alicdn.com/t/font_3062587_tqyeoh701u.css" />
  8. </head>
  9. <header>
  10. <div class="head">头部部分</div>
  11. </header>
  12. <style>
  13. html {
  14. font-size: 10px;
  15. }
  16. .head {
  17. width: 100vw;
  18. height: 20vh;
  19. background-color: gray;
  20. font-size: 30px;
  21. text-align: center;
  22. }
  23. body div.body {
  24. width: 33.3%;
  25. height: 60vh;
  26. background-color: green;
  27. float: left;
  28. }
  29. footer div {
  30. width: 100vw;
  31. height: 20vh;
  32. background-color: gray;
  33. font-size: 30px;
  34. text-align: center;
  35. }
  36. #left {
  37. width: 33.3%;
  38. height: 60vh;
  39. background-color: hotpink;
  40. text-align: center;
  41. font-size: 5em;
  42. float: left;
  43. }
  44. #right {
  45. width: 33.3%;
  46. height: 60vh;
  47. background-color: hotpink;
  48. text-align: center;
  49. font-size: 5rem;
  50. float: left;
  51. }
  52. body {
  53. margin: 0;
  54. }
  55. .body_left {
  56. width: 33.3%;
  57. height: 100%;
  58. float: left;
  59. }
  60. form {
  61. width: 33.3%;
  62. height: 100%;
  63. float: left;
  64. background-color: ivory;
  65. box-sizing: border-box;
  66. }
  67. button {
  68. background-color: green;
  69. border: none;
  70. color: ivory;
  71. }
  72. button:hover {
  73. background-color: orange;
  74. }
  75. form div {
  76. border: orangered solid;
  77. padding: 2em;
  78. margin: 5rem;
  79. }
  80. .body_right {
  81. width: 33.3%;
  82. height: 100%;
  83. float: left;
  84. }
  85. .body_left,
  86. .body_right {
  87. font-size: 30px;
  88. }
  89. .iconfont {
  90. color: orangered;
  91. }
  92. </style>
  93. <body>
  94. <!-- <ul class="list">
  95. <li>item1</li>
  96. <li>item2</li>
  97. <li>item3</li>
  98. <li>item4</li>
  99. <li>item5</li>
  100. <li>item6</li>
  101. <li>item7</li>
  102. <li>item8</li>
  103. </ul> -->
  104. <style>
  105. /*
  106. :nth-of-type(an+b)
  107. 1. a: 系数, [0,1,2,...]
  108. 2. n: [0,1,2,3,....]
  109. 3. b: 偏移量, 从0开始
  110. 注: 计算出来的索引,必须是有效, 从1开始
  111. */
  112. /* 选择元素只有二种情况:
  113. 1. 选择一个
  114. 2. 选择一组 */
  115. /* 1. 匹配单个, a = 0 */
  116. /* 匹配第3个 */
  117. .list> :nth-of-type(0n + 3) {
  118. background-color: lightgreen-;
  119. }
  120. /* 0n+3 => 3 */
  121. /* 因为0乘任何数都0,所以可简化,只写偏移量 */
  122. .list> :nth-of-type(3) {
  123. background-color: lightgreen-;
  124. }
  125. /* 2. 匹配一组 */
  126. /* 2.1 a = 1 */
  127. .list> :nth-of-type(1n) {
  128. background-color: lightgreen-;
  129. }
  130. /* 1乘任何数不变, 所以1可以不写 */
  131. .list> :nth-of-type(n) {
  132. background-color: lightgreen-;
  133. }
  134. /* .list > * {
  135. background-color: lightblue !important;
  136. } */
  137. /* 实际开发过程, 使用 n + b(偏移量)来匹配元素 */
  138. /* 任务: 匹配第3个子元素后面的所有兄弟元素 */
  139. /* .list .three,
  140. .list .three ~ * {
  141. background-color: lightgreen;
  142. } */
  143. /* an+b = 1n+3 */
  144. /* n+3: 偏移量是3, 表示从第3个开始匹配 */
  145. .list> :nth-of-type(n + 3) {
  146. background-color: lightgreen-;
  147. }
  148. /*
  149. n: 从0开始取, n+3 匹配的全过程
  150. 1. n=0: 0+3=3, 匹配第3个
  151. 2. n=1: 1+3=4, 匹配第4个
  152. 3. n=2: 2+3=5, 匹配第5个
  153. 4. n=3: 3+3=6, 匹配第6个
  154. 5. n=4: 4+3=7, 匹配第7个
  155. 6. n=5: 5+3=8, 匹配第8个
  156. 7. n=6: 6+3=9, 索引越界,匹配失败,结束计算
  157. n+3 => [3,4,5,6,7,8], 匹配到6个
  158. */
  159. /* 2.2 a=-1, 功能与 a=1是一样,但是反向取 */
  160. /* 取前3个 */
  161. .list> :nth-of-type(-n + 3) {
  162. background-color: lightgreen-;
  163. }
  164. /*
  165. -n+3:
  166. 1. n=0: -0+3=3, 匹配第3个
  167. 2. n=1: -1+3=2, 匹配第2个
  168. 3. n=2: -2+3=1, 匹配第1个
  169. 4. n=3: -3+3=0, 匹配失败,计算结束
  170. -n+3 => [3,2,1],返回前3个
  171. */
  172. /* 思考: 如果匹配最后三个怎么办? */
  173. .list> :nth-last-of-type(-n + 3) {
  174. background-color: lightgreen-;
  175. }
  176. /* 2.3 a=2 : 匹配奇偶位置的元素 */
  177. /* 2n+0: 偶数位元素 */
  178. .list> :nth-of-type(2n) {
  179. background-color: lightgreen-;
  180. }
  181. /* 2n+1: 奇数位元素 */
  182. .list> :nth-of-type(2n + 1) {
  183. background-color: lightgreen-;
  184. }
  185. /* 2n: even, 2n+1: odd */
  186. /* .list :nth-of-type(even):hover {
  187. background-color: yellow;
  188. } */
  189. </style>
  190. <!-- 一组案例代码5: 兄弟元素的使用 代码: -->
  191. <!-- <ul class="ad">
  192. <li class="a1">test</li>
  193. <li class="a2">test</li>
  194. <li class="a3">test</li>
  195. <li class="a4">test</li>
  196. <li class="a5">test</li>
  197. <li class="a6">test</li>
  198. <li class="a7">test</li>
  199. <li class="a8">test</li>
  200. </ul> -->
  201. <!-- <style>
  202. /* 意思是从class="a3"开始,往后所有的兄弟元素添加一个底颜色 */
  203. .ad>li.a4~*:nth-last-of-type(n) {
  204. background-color: blue;
  205. }
  206. </style> -->
  207. <!-- 意思是从class=”a3”开始,往后所有的兄弟元素添加一个底颜色, 示例图: 表单类伪元素 表单类伪元素就是进行对表单添加伪元素,使其增加一些class属性 表单类伪元素表格及使用说明: 属性值 用法 说明 disabled input:disabled 针对无效属性设置相关的css,前提情况下是当前属性在disabled禁用状态下,常常配合input中text属性值来使用,无效点击的设置 enabled input:enabled 针对有效属性,前提情况下是当前属性在enabled状态下,也就是默认开启的状态下,配合input中text属性值来使用,有效点击下的背景属性
  208. focus input:focus 光标的聚焦移动到文本框后,鼠标的箭头的变化,一般也是配合input中text属性值来用的,input光标焦点的设置 checked input:checked + label 此属性一般跟复选框/单选框挂钩,当type的值为radio,checkbox中, + label绑定使用,添加style属性,比如背景,点击后背景改变等, 这里解析为单击选中后文字的特效 hover input:hover 类似class中hover使用方法一直,就是鼠标移动过去之后的效果
  209. 先贴代码,明天去公司继续撸代码 -->
  210. <div id="left">left</div>
  211. <div class="body">
  212. <div class="body_left">body左</div>
  213. <form method="post" action="login.php">
  214. <div>
  215. <span class="iconfont icon-favorite">用户名:</span>
  216. <input type="text" id="text" name="text" value="用户名" />
  217. </div>
  218. <div>
  219. <span class="iconfont icon-forhelp">性别:</span>
  220. <label for="m">男性</label>
  221. <input type="radio" id="m" name="m" value="0" required />
  222. <label for="g">女性</label>
  223. <input type="radio" id="g" name="m" value="1" />
  224. </div>
  225. <div>
  226. <span class="iconfont icon-warning">爱好:</span>
  227. <label for="love">php</label>
  228. <input type="checkbox" id="love" name="l[]" checked />
  229. <label for="html">html</label>
  230. <input type="checkbox" id="html" name="l[]" />
  231. <label for="css">css</label>
  232. <input type="checkbox" id="css" name="l[]" />
  233. </div>
  234. <div>
  235. <span class="iconfont icon-mail">邮箱:</span>
  236. <label for="email"></label>
  237. <input type="email" id="email" name="email" placeholder="请填写您的邮箱" required />
  238. </div>
  239. <div>
  240. <span class="iconfont icon-comment">邀请码:</span>
  241. <input type="text" value="75sgst" name="y" disabled />
  242. </div>
  243. <button type="submit">提交</button>
  244. <button type="reset">重置</button>
  245. <button type="button">无效点击</button>
  246. <style>
  247. input:disabled {
  248. /* 无效点击的设置 */
  249. background-color: gray;
  250. color: honeydew;
  251. }
  252. input:enabled {
  253. /* 有效点击下的背景属性 */
  254. background-color: cyan;
  255. }
  256. span {
  257. display: block;
  258. width: 60px;
  259. float: left;
  260. }
  261. div {
  262. height: 30px;
  263. }
  264. input:focus {
  265. /* input光标焦点的设置 */
  266. background-color: blanchedalmond;
  267. }
  268. input:checked+label {
  269. /* 这里解析为单击选中后文字的特效 */
  270. color: red;
  271. background-color: chartreuse;
  272. }
  273. input:hover {
  274. /* hover为光标移动后的属性 */
  275. background-color: crimson;
  276. cursor: pointer;
  277. border: blue 1px solid;
  278. /* 鼠标移动过去鼠标的属性 */
  279. }
  280. </style>
  281. </form>
  282. <div class="body_right">body右</div>
  283. </div>
  284. <div id="right">right</div>
  285. </body>
  286. <footer style="clear: both">
  287. <div>尾部位置</div>
  288. </footer>
  289. </html>