博客列表 >结构伪类与状态伪类及盒模型常用属性

结构伪类与状态伪类及盒模型常用属性

php001
php001原创
2022年07月08日 12:02:44449浏览

结构伪类:

  1. /* an+b */
  2. .item li:nth-of-type(3){
  3. background-color: blue;
  4. }
  5. /* 倒数 */
  6. /* .item li:nth-last-of-type(-1n+3){
  7. background-color: chartreuse;
  8. } */
  9. /* 偶数
  10. .item >:nth-of-type(even):hover{
  11. background-color: brown;
  12. } */
  13. /* 奇数
  14. .item >:nth-of-type(odd):hover{
  15. background-color: aqua;
  16. } */
  • 效果图:
    结构伪类

    状态伪类:

  • 状态伪类:指通过某个元素的状态来选择对应的元素
    1. <style>
    2. /* 获取被禁用的元素 */
    3. input:disabled {
    4. color: red;
    5. background-color: yellow;
    6. }
    7. /* 获取被默认选择中的单选按钮 */
    8. input:checked + label {
    9. color: red;
    10. }
    11. button {
    12. height: 30px;
    13. border: none;
    14. outline: none;
    15. background-color: seagreen;
    16. color: white;
    17. }
    18. /* 鼠标移入的状态变化 */
    19. button:hover {
    20. /* 光标 */
    21. cursor: pointer;
    22. background-color: coral;
    23. }
    24. /* 获得焦点时变化 */
    25. input:focus {
    26. background-color: cyan;
    27. }
    28. </style>
  • 效果图:
    状态伪类

    盒模型

  • 常用属性
  1. width
  2. height
  3. padding
  4. border
  5. margin
  • 盒模型简化方案:四值、三值、双值、单值

    • 四值: 顺时针, 上, 右,下,左:padding: 5px 10px 15px 20px;
    • 三值, 中间永远表示左/右:padding: 5px 10px 15px;
    • 双值, 第1个上下,第2个左右:padding: 5px 10px;
    • 单值, 四个方向全相同:padding: 10px;

      1. <div class="box"></div>
      2. <style>
      3. /*
      4. 1. width
      5. 2. height
      6. 3. padding
      7. 4. border
      8. 5. margin
      9. */
      10. .box {
      11. /* 宽度 */
      12. width: 200px;
      13. /* 高度 */
      14. height: 100px;
      15. /* 不可见,是因为没有设置:可见属性 */
      16. /* 可见属性: 背景, 边框 */
      17. background-color: violet;
      18. /* 背景裁切,只覆盖到内容区, 不包括padding */
      19. background-clip: content-box;
      20. border: 5px solid;
      21. /* 可见属性: 宽度, 样式, 颜色 */
      22. /* padding: 内边距,是内容区与边框之间的填充物 */
      23. /* margin: 外边距, 控制当前盒子与其它元素之间的空隙 */
      24. /* 不可见属性: margin, padding */
      25. padding: 20px;
      26. /* margin: 20px; */
      27. /* 不可见的属性,只能设置宽度, 不能设置特征(颜色,样式) */
      28. /* padding,margin: 就像空间,无色无味 */
      29. /* 当前的盒子在页面中实际占据的空间大小是: 250 * 150 */
      30. /* 我当前设置的盒子大小应该是: 200 * 100 */
      31. /* 宽,度各相差了 50px */
      32. /* 页面中计算盒子的实际宽高, 不包括 外边距: margin */
      33. /* 总宽度: */
      34. /* border-left-width + padding-left + width + padding-right + border-right-width */
      35. /* 5 + 20 + 200 + 20 + 5 = 250px */
      36. /* 总高度: */
      37. /* border-top-width + padding-top + height + padding-bottom + border-bottom-width */
      38. /* 5 + 20 + 100 + 20 + 5 = 150px */
      39. /*
      40. 我们的本意是: 我设置的宽高就应该是盒子的最终大小,
      41. 而不是浏览器添加上内边距和边框后的计算大小
      42. */
      43. /* 推荐的盒子大小计算方式,可以简化页面布局 */
      44. box-sizing: border-box;
      45. /* 还原到w3c默认标准盒子计算方式 */
      46. /* box-sizing: content-box; */
      47. }
      48. .box {
      49. /* border-top: 宽度 样式 前景色 */
      50. border-top: 10px dashed blue;
      51. border-left: 10px dashed blue;
      52. /* 四条边一样的时候,可以只写border */
      53. border: 5px solid red;
      54. }
      55. .box {
      56. /* padding-left: 10px;
      57. padding-top: 5px;
      58. padding-right: 20px; */
      59. /* 简化方案: 顺时针方向 */
      60. /* 1. 四值: 顺时针, 上, 右,下,左 */
      61. padding: 5px 10px 15px 20px;
      62. /* 2. 三值, 中间永远表示左/右 */
      63. padding: 5px 10px 15px;
      64. /* 3. 双值, 第1个上下,第2个左右 */
      65. padding: 5px 10px;
      66. /* 三值,二值记忆方法: 第2个值永远表示左右 */
      67. /* 4. 单值, 四个方向全相同 */
      68. padding: 10px;
      69. }
      70. /* margin 的规则与padding完全一样, 大家自己练习 */
      71. </style>
  • 效果图
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议