博客列表 >css 样式的引入,选择器的使用和优先级 ----0322

css 样式的引入,选择器的使用和优先级 ----0322

木樨
木樨原创
2021年04月05日 17:19:59706浏览

1.css 样式的优先级

1.1 !important > 行内样式 > style 标签设置的内部样式
  1. <!DOCTYPE html>
  2. <html lang="en">
  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. <!-- 内部样式,仅作用于当前的html文档 -->
  9. <style>
  10. h1 {
  11. color: hotpink;
  12. /* !important 级别最高的,不建议用,适用于调试 */
  13. /* color: lawngreen !important; */
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <!-- 行内样式,仅适用于当前元素,优先级要高于style标签设置的内部样式 -->
  19. <h1 style="color: goldenrod">hello world!</h1>
  20. <h1>hello world!</h1>
  21. </body>
  22. </html>
1.2 id 选择器 > class 选择器 > 标签选择器
  1. <!DOCTYPE html>
  2. <html lang="en">
  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. <style>
  9. /* 选择器优先级的等级:
  10. 1.优先级相同时,书写顺序决定优先级
  11. 2.id选择器 > class选择器 > 标签选择器
  12. */
  13. h1 {
  14. color: hotpink;
  15. }
  16. h1 {
  17. color: lawngreen;
  18. }
  19. #first {
  20. color: red;
  21. }
  22. .active {
  23. color: lightsalmon;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <!-- 行内样式,仅适用于当前元素,优先级要高于style标签设置的内部样式 -->
  29. <h1 class="active" id="first">hello world!</h1>
  30. </body>
  31. </html>

2.外部 CSS 样式引入的方式

  1. <!-- 1. style 标签引入 -->
  2. <style>
  3. @import url(style.css);
  4. </style>
  5. <!-- 2. link 标签引入 -->
  6. <link rel="stylesheet" href="style.css" />

3.前端组件样式模块化的原理与实现

前端组件模块化的原理:把前端页面主体分为几个不同的部分,在不同的 css 文件中进行样式操作。

  1. <!-- index.html 文件-->
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <meta charset="UTF-8" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  8. <title>模块化样式表</title>
  9. <link rel="stylesheet" href="index.css" />
  10. </head>
  11. <body>
  12. <header>页眉</header>
  13. <main>主体</main>
  14. <footer>页脚</footer>
  15. </body>
  16. </html>
  1. /* index.css 文件 */
  2. @import url(header.css);
  3. @import url(main.css);
  4. @import url(footer.css);

4.伪类选择器

4.1 伪类选择器的使用方式
  • 选择任何一个: :nth-of-type(n)
  • 选择第一个: :first-of-type
  • 选择最后一个: :last-of-type
  • 选择倒数某一个: :nth-last-of-type()
  • 唯一子元素的元素: :only-of-type
  1. <!DOCTYPE html>
  2. <html lang="en">
  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. <style>
  9. /* 选中ul下的第三个li */
  10. ul li:nth-child(3) {
  11. background-color: gray;
  12. }
  13. /* 选中 ul 下的第一个li */
  14. ul li:first-child {
  15. background-color: blue;
  16. }
  17. /* 选中 ul 下的最后一个li */
  18. ul li:last-child {
  19. background-color: hotpink;
  20. }
  21. /* 选中 ul 下倒数第二个 li */
  22. ul li:nth-last-of-type(2) {
  23. color: hotpink;
  24. }
  25. /* 选择任何一个: :nth-of-type(n)
  26. 选择第一个: :first-of-type
  27. 选择最后一个: :last-of-type
  28. 选择倒数某一个: :nth-last-of-type()
  29. 唯一子元素的元素: :only-of-type */
  30. </style>
  31. </head>
  32. <body>
  33. <ul class="list">
  34. <li>item1</li>
  35. <li>item2</li>
  36. <li>item3</li>
  37. <li>item4</li>
  38. <li>item5</li>
  39. </ul>
  40. </body>
  41. </html>
4.2 用伪类来模块化元素组件
1)获取到页面中某个元素组件的入口,用伪类操作子元素
  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. <style>
  9. /* 只要获取到页面中某个元素组件的入口,再根据子元素的位置,
  10. 使用伪类就可以选择任何一个元素了 */
  11. /* 选择首页 */
  12. .index {
  13. background-color: yellow;
  14. }
  15. /* .menu是入口 */
  16. .menu :first-of-type {
  17. background-color: lightgreen;
  18. }
  19. .menu :last-of-type {
  20. background-color: lightgreen;
  21. }
  22. .menu :nth-last-of-type(2) {
  23. background-color: yellow;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <nav class="menu">
  29. <a href="">首页</a>
  30. <a href="">视频 </a>
  31. <a href="">下载</a>
  32. <a href="">注册/登录</a>
  33. </nav>
  34. </body>
  35. </html>
2)只要获取表单的入口,使用伪类可以获取表单中任何一个控件
  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. <style>
  9. /* 只要获取表单的入口,使用伪类可以获取表单中任何一个控件 */
  10. /* 获取到提交按钮 */
  11. .login :only-of-type {
  12. background-color: seagreen;
  13. color: white;
  14. }
  15. /* 文本框中输入字体为红色 */
  16. .login input:first-of-type {
  17. color: red;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <form action="" style="display: grid; gap: 1rem" class="login">
  23. <input type="text" placeholder="UserName" />
  24. <input type="password" placeholder="Password" />
  25. <input type="email" placeholder="demo@email.com" />
  26. <button>提交</button>
  27. </form>
  28. </body>
  29. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议