博客列表 >《选择器优先级与属性简写方式》20201216

《选择器优先级与属性简写方式》20201216

杨凡的博客
杨凡的博客原创
2020年12月17日 16:04:54643浏览

选择器优先级

状态匹配

链接四种状态:顺序是固定的,不能写反。
  1. 默认,没有访问/点的的状态:a:link{...}
  2. 已访问过的状态:a:visited{...}
  3. 悬停的状态:a:hover{...}
  4. 激活,当鼠标点击压下去的时候:a:active{...}

优先级

  1. 当选择器相同的时候,与书写顺序有关,后面的样式覆盖前面的
  2. 当选择器不同时,与优先级相关,级别高的覆盖级别低的,class的优先级大于标签(tag)
  3. 如果仍想提升选择器的优先级,我们应该用id级
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>选择器的优先级</title>
  7. <style>
  8. p{
  9. color: green;
  10. }
  11. .cp{
  12. color: red;
  13. }
  14. #pp{
  15. color: pink;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <p class="cp" id="pp">PHP中文网</p>
  21. </body>
  22. </html>

总结:ID(ID选择器)>class(类选择器)>tag(标签选择器)

优先级提权方式

  1. 根据选择器优先级,有一个计算公式:[id选择器数量,class选择器数量,tag选择器数量]可以理解为申明的选择器越多,权限越高
  2. 根据计算公式,使用tag、class、ID组合来进行提权

总结:根据优先级及计算公式可以理解为如下:

  1. 多个标签选择器组合>单个标签选择器,忽略顺序
  2. 1个类选择器>多个标签选择器组合,忽略顺序
  3. 1个id选择器>多个类选择器组合,忽略顺序

可以理解为进制的进位关系,高位大于低位,低位要超越高位必须有进位并且大于原先的高位才行,如果标签选择器要大于类选择器,那就需要一个类选择器➕一个标签选择器才可。

字体与字体图标

字体属性与简写

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>属性的简写</title>
  7. <style>
  8. /* 字体属性 */
  9. .title{
  10. /* 字体 */
  11. font-family: sans-serif;
  12. /* 字体大小 */
  13. font-size: 50px;
  14. /* 字体样式 */
  15. font-style: italic;
  16. /* 字体粗细 */
  17. font-weight: lighter;
  18. }
  19. .title2{
  20. /* 简写 */
  21. font: italic lighter 50px sans-serif;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div class="title">PHP中文网</div>
  27. <div class="title2">PHP中文网2</div>
  28. </body>
  29. </html>

总结:字体的属性可以通过简写的方式达到多行书写的效果,上图两个标签实现的效果一致

字体图标的引入

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>字体图标引入</title>
  7. <!-- 引入字体样式 -->
  8. <!-- <link rel="stylesheet" href="icon-font/iconfont.css"> -->
  9. <style>
  10. /* 引入字体样式 */
  11. @font-face {
  12. font-family: 'iconfont';
  13. src: url('icon-font/iconfont.eot');
  14. src: url('icon-font/iconfont.eot?#iefix') format('embedded-opentype'),
  15. url('icon-font/iconfont.woff2') format('woff2'),
  16. url('icon-font/iconfont.woff') format('woff'),
  17. url('icon-font/iconfont.ttf') format('truetype'),
  18. url('icon-font/iconfont.svg#iconfont') format('svg');
  19. }
  20. .iconfont {
  21. font-family: "iconfont" !important;
  22. font-size: 16px;
  23. font-style: normal;
  24. -webkit-font-smoothing: antialiased;
  25. -moz-osx-font-smoothing: grayscale;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <i class="iconfont">&#xe607;大家好</i>
  31. </body>
  32. </html>

总结:可以通过阿里图标库上传下载制作需要的字体图标库进行引入

盒模型常用属性的缩写

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>盒模型的属性缩写</title>
  7. <style>
  8. .box{
  9. /* 盒子宽 */
  10. width: 300px;
  11. /* 盒子高 */
  12. height: 300px;
  13. /* 背景颜色 */
  14. background: pink;
  15. box-sizing: border-box;
  16. }
  17. .box{
  18. /* 边框属性 */
  19. /* 每个边框可以设置三个属性:宽度 样式 颜色 */
  20. /* 上边框样式 */
  21. border-top-style: solid;
  22. /* 上边框宽度 */
  23. border-top-width:3px;
  24. /* 上边框颜色 */
  25. border-top-color: blue;
  26. border-left: red solid 5px;
  27. border-right: red solid 5px;
  28. border-bottom: blue solid 3px;
  29. }
  30. .box{
  31. /* 内边距 */
  32. /* padding: 上 右 下 左 */
  33. padding: 5px 10px 15px 20px;
  34. /* 背景裁切 */
  35. background-clip: content-box;
  36. }
  37. .box{
  38. /* 内边距 */
  39. /* margin: 上 右 下 左 */
  40. margin: 20px;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <div class="box"></div>
  46. </body>
  47. </html>

总结:

  1. 所有的元素在页面都是一个默认的矩形框
  2. 元素框的四周有:内边距、外边、外边距
  3. padding,margin,border 的每一条边都可以单独设置属
  4. pading 和 margin 是背景透明的,所以只能设置宽度
  5. border除了可以设置宽度, 还可以设置样式和颜色
  6. 背景色会延伸到内边距范围内
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议