Blogger Information
Blog 29
fans 1
comment 0
visits 35307
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
css 选择器组合提权与盒模型常用属性缩写
祥子弟弟
Original
659 people have browsed it

一、动态伪类选择器

  • 超链接标签\<a>的四种状态(按照先后顺序,顺序固定)
伪类表示 效果
:link 默认状态
:visited 已经访问过的状态
:hover 鼠标悬停状态
:active 鼠标点击状态

样式案例(在本篇中,所有的 css 样式表代码均写在 style 标签中):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>a标签状态匹配</title>
  6. <style>
  7. /* 1. 默认状态:link */
  8. a:link {
  9. color: violet;
  10. text-decoration: none;
  11. }
  12. /* 2. 已经访问过状态:visited */
  13. a:visited {
  14. color: lightblue;
  15. }
  16. /* 3. 悬停状态:hover */
  17. a:hover {
  18. color: orange;
  19. /* 添加下划线 */
  20. text-decoration: underline;
  21. }
  22. /* 4. 点击(激活)状态:active */
  23. a:active {
  24. color: red;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <a href="https://www.php.cn/index.php">php中文网</a>
  30. </body>
  31. </html>

注:在 visited 状态下,只能设置 color 属性。

  • 表单中的几种状态
伪类表示 效果
readonly 只读属性
required 不能为空
disabled 此项禁用
:focus 聚焦

样式案例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>input标签状态匹配</title>
  6. <style>
  7. input:read-only {
  8. background-color: orange;
  9. }
  10. input:required {
  11. background-color: lightblue;
  12. }
  13. input:disabled {
  14. background-color: lightgreen;
  15. }
  16. input:focus {
  17. background-color: #aaa;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <form action="" method="">
  23. <p>
  24. <!-- readonly只读属性 -->
  25. <label for="username">用户名:</label
  26. ><input
  27. type="text"
  28. name="username"
  29. id="username"
  30. value="admin"
  31. placeholder="username"
  32. readonly
  33. />
  34. </p>
  35. <p>
  36. <!-- required不能为空 -->
  37. <label for="email">邮箱:</label
  38. ><input
  39. type="email"
  40. name="email"
  41. id="email"
  42. value=""
  43. placeholder="admin@email.com"
  44. required
  45. />
  46. </p>
  47. <p>
  48. <!-- disabled禁用此选项 -->
  49. <label for="psd">密码:</label
  50. ><input
  51. type="password"
  52. name="password"
  53. id="psd"
  54. value="123456"
  55. placeholder="不少于6位"
  56. disabled
  57. />
  58. </p>
  59. <p><button>提交</button></p>
  60. </form>
  61. </body>
  62. </html>

在表单的状态匹配中,仅列举出了四个常用的状态。

我们知道在 css 基础选择器中,权重高低如下:
id(id 选择器) > class(类选择器) > tag(标签选择器)
它的基础权重比较遵循:

  1. 当选择器相同时,与书写顺序有关,后面样式覆盖前面样式;

  2. 当选择器类型不同时,与优先级相关,级别高的覆盖级别低的。

当不再是简单的单一 tag 或者是 id 又或者是 calss,而是多种选择器的组合时,我们假设有规则:
规则设置:[0, 0, 0] ==> [id, calss, tag]
同级权重可以相加,但是永远不能进位,也就是说无限个 tag 相加也不能往 class 进一位。
提权应用场景:在不修改原始的样式表的情况下,可以用自己的样式表去更新页面,以达到自己的目的。
以下为提权示例:(style 标签中的权重关系是最上边的优先级最高,依次递减,这样写是为了过滤掉上下文同级,下文覆盖掉上文的情况)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>选择器组合提权</title>
  6. <style>
  7. /* [1,0,0] */
  8. #p {
  9. color: pink;
  10. }
  11. /* [0,2,0] */
  12. .p.pp {
  13. color: brown;
  14. }
  15. /* [0,1,3] */
  16. html body p.p {
  17. color: lightcoral;
  18. }
  19. /* [0,1,2] */
  20. body p.p {
  21. color: orange;
  22. }
  23. /* [0,1,1] */
  24. p .p {
  25. color: lightskyblue;
  26. }
  27. /* [0,1,0] */
  28. .p {
  29. color: green;
  30. }
  31. /* [0,0,3] */
  32. /* 也可以用:root表示html,不过:root是一个伪类,这样的操作会使权重直接进位。 */
  33. html body p {
  34. color: red;
  35. }
  36. /* [0,0,2] */
  37. body p {
  38. color: skyblue;
  39. }
  40. /* [0,0,1] */
  41. p {
  42. color: violet;
  43. }
  44. </style>
  45. </head>
  46. <body>
  47. <p class="p pp" id="p">测试小段落</p>
  48. </body>
  49. </html>

二、盒模型常用属性的缩写

1.字体属性的缩写

  • 字体属性
属性 含义
font-family 字体名称
font-size 字体大小
font-style 字体样式
font-weight 字体粗细

具体实例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>字体属性简写</title>
  6. <style>
  7. h1.title {
  8. /* 字体名称 */
  9. font-family: sans-serif;
  10. /* 字体大小 */
  11. font-size: 24px;
  12. /* 字体样式 */
  13. /* italic斜体 */
  14. font-style: italic;
  15. /* 字体粗细 */
  16. font-weight: border;
  17. }
  18. h1.title {
  19. /* 属性简写:先是字体样式,再是字体粗细,接下来是字体大小,最后是字体名称 */
  20. /* 这个顺序应该是不能变的,我尝试变过,样式也跟着变了 */
  21. font: italic border 24px sans-serif;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <h1 class="title">这是一个大标题</h1>
  27. </body>
  28. </html>
  • 字体图标的引用

在平时的网页中,我们经常会看到一些具有代表意义的字体图表,这些图表是可以通过 link 的方式引入的。

首先可以直接去阿里巴巴矢量图标库点击里边的一个项目,选中你需要的图标,添加入库,然后下载代码。
代码下载好之后,就可以将源代码文件夹的链接通过 link 标签导入到你的 html 页面中。
以下是字体图标引入示例:(在这里,我是把我下载好的代码文件夹放在了和我的 html 文件同级的文件夹下)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>字体图表引入</title>
  6. <style></style>
  7. <link rel="stylesheet" href="iconfont/iconfont.css" />
  8. </head>
  9. <body>
  10. <span class="iconfont icon-weibiaoti-4"></span>
  11. </body>
  12. </html>

浏览器显示效果:(在这里我将页面放大到了 500 才得到这个图片)

文字图标

你还可以通过修改它的样式来得到你想要的结果,例如:你可以修改字体大小属性 font-size 来修改图标的大小,可以修改 color 属性来更改为你喜欢的颜色,也可以修改 box-shadow 属性来给图表添加一个阴影等等。

2.盒子边框,内边距,外边距的属性缩写

  • 边框
    边框是 border 属性定义的,我们可以将一个盒子的边框分为上、右、下、左四个边。
定义
border-top
border-right
bottom
left

每个边框可以设置三个属性:宽度(weight)、颜色(color)、样式(style)

示例如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>边框属性缩写</title>
  6. <style>
  7. /* 先定义一个盒子的样式 */
  8. .box {
  9. width: 200px;
  10. height: 200px;
  11. background-color: lightblue;
  12. box-sizing: border-box;
  13. }
  14. .box {
  15. /* 边框 */
  16. /* 每个边框可以设置三个属性:宽度、颜色、样式 */
  17. /* 宽度 */
  18. border-top-width: 3px;
  19. /* 颜色 */
  20. border-top-color: red;
  21. /* 样式(solid 实线; dashed 虚线) */
  22. border-top-style: solid;
  23. /* 简写 */
  24. border-top: 3px red solid;
  25. /* border-top上边框;border-right右边框;border-bottom下边框;border-left左边框 */
  26. }
  27. .box {
  28. /* 简写 */
  29. /* border-top: 3px red solid; */
  30. border: 3px #111 solid;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="box"></div>
  36. </body>
  37. </html>
  • 内边距属性的缩写

内边距是用属性 padding 定义的,同样的,我们可以将其分为上、右、下、左四个边距,四个边距可以都不相同,也可以是左右相等,上下不等的情况,还可以是上下相等,左右相等的情况,也可以是都相等的情况。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>边框属性缩写</title>
  6. <style>
  7. /* 先定义一个盒子的样式 */
  8. .box {
  9. width: 200px;
  10. height: 200px;
  11. background-color: lightblue;
  12. box-sizing: border-box;
  13. }
  14. .box {
  15. /* 内边距 */
  16. /* padding:顺时针方向,上右下左 */
  17. padding: 5px 10px 15px 20px;
  18. /* 页面中看不到是因为padding是透明的,且背景色会自动延伸扩展到padding,
  19. 将背景色裁切到内容区就可以看到padding */
  20. /* 背景色裁切 */
  21. background-clip: content-box;
  22. /* 三值语法:上下不相等,左右相等(排在第二个的是左右) */
  23. padding: 10px 15px 20px;
  24. /* 二值语法:上下相等,左右相等 */
  25. padding: 10px 20px;
  26. /* 单值语法:四个方向都相等 */
  27. padding: 10px;
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <div class="box"></div>
  33. </body>
  34. </html>
  • 外边距属性的缩写

内边距是用属性 margin 定义的,同样的,我们可以将其分为上、右、下、左四个边距,四个边距可以都不相同,也可以是左右相等,上下不等的情况,还可以是上下相等,左右相等的情况,也可以是都相等的情况。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>边框属性缩写</title>
  6. <style>
  7. /* 先定义一个盒子的样式 */
  8. .box {
  9. width: 200px;
  10. height: 200px;
  11. background-color: lightblue;
  12. box-sizing: border-box;
  13. }
  14. .box {
  15. /* 外边距 */
  16. /* margin:顺时针方向,上右下左 */
  17. margin: 5px 10px 15px 20px;
  18. /* 三值语法:上下不相等,左右相等(排在第二个的是左右) */
  19. margin: 10px 15px 20px;
  20. /* 二值语法:上下相等,左右相等 */
  21. margin: 10px 20px;
  22. /*单值语法:四个方向都相等 */
  23. margin: 10px;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div class="box"></div>
  29. </body>
  30. </html>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post