博客列表 >css样式来源和CSS优先级冲突解决方案

css样式来源和CSS优先级冲突解决方案

宏富
宏富原创
2020年10月11日 23:38:16949浏览

1009作业:

必做: css元素样式来源有哪些,实例演示
选做: css优先级冲突的解决方案


作业:

1.css元素样式来源有哪些?

  • 1.当前文档,行内样式表<style>
  • 2.当前元素的属性,style="..."
  • 3.外部公共属性:common.css,jQuery.css,layui.css 通过link标签引入

    2.实例演示

  1. index.html
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>css元素样式来源有哪些</title>
  8. <link rel="stylesheet" href="static/css/common.css" />
  9. <style>
  10. h1 {
  11. color: red;
  12. font-size: 1rem;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <h1>一、当前文档,行内样式表style</h1>
  18. <h2 style="color: rgb(38, 41, 207); font-size: 2rem">
  19. 二、当前元素的属性,style="..."
  20. </h2>
  21. <h3>三、外部公共属性:common.css</h3>
  22. </body>
  23. </html>
  24. common.css
  25. body {
  26. color: green;
  27. font-size: 3rem;
  28. border: 1px solid;
  29. }

效果图如下:

3.css优先级冲突的解决方案?


案例 id class tag 标识
html body header h1 0 0 4 0,0,4
body header.page-header h1 0 1 3 0,1,3
.page-header .title 0 2 0 0,2,0
#page-title 1 0 0 1,0,0

注意事项

  • 尽可能不要用!important
  • 尽可能不要用id

  • 为什么要少用或者不用 ID ?

    • 原因是级别太高,丧失了灵活性
  • 为什么尽可能不用 TAG ?
    • 因为 CSS 的本质是为了“样式复用”
  • 尽可能在可用的情况下,使用 class 来完成

以下视频学习笔记

CSS 第一课

1.CSS 是什么

  • CSS : cascade style sheet (层叠样式表)
  • CSS 是编程语言吗?不是
  • CSS 难吗?因人而异
  • 核心:层叠,盒模型,单位(px/em/rem/vh/vw/fr),定位,浮动

2.层叠

  • 当一个元素可以被多种选择器匹配时,层叠可以解决样式设置上的冲突

3.层叠解决样式冲突的三种方案

  • 1.样式表的来源
  • 2.选择器的优先级
  • 3.源码的顺序

4. 样式表的来源(自定义样式)

  • 1.当前文档 <style>
  • 2.当前元素的属性:style="..."
  • 3.外部公共样式:common.css,jQuery.css,layui.css通过<link>标签引入

5.选择器的优先级

  • tag < class < id

6. 源码的顺序的影响

7. 用户代理样式

  • 用户代理:就是浏览器,代理的是用户的 HTTP 请求,请求一个网络资源 URL
  • 浏览器默认样式

8.选择器的优先级方案

案例 id class tag 标识
html body header h1 0 0 4 0,0,4
body header.page-header h1 0 1 3 0,1,3
.page-header .title 0 2 0 0,2,0
#page-title 1 0 0 1,0,0

9.注意

  • 尽可能不要用!important
  • 尽可能不要用id

  • 为什么要少用或者不用 ID ?

    • 原因是级别太高,丧失了灵活性
  • 为什么尽可能不用 TAG ?
    • 因为 CSS 的本质是为了“样式复用”
  • 尽可能在可用的情况下,使用 class 来完成

10. 继承

  • 有的属性可以被继承,如颜色,字体等文本,有的则不能,如盒模型
  • 二个关键字
    • inherit : 继承
    • initail : 初值

代码示例:

  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. <style>
  9. /* 标签:选择器selector */
  10. /* 选择器 规则集 rule */
  11. h1 {
  12. /* 声明 : 属性color :值green */
  13. /* 声明块 : 使用大括号 将多个声明包裹起来 */
  14. color: green;
  15. font-weight: normal;
  16. }
  17. /*
  18. 1.声明:由属性和属性值二部分组成
  19. 2.声明块:由一个或多个声明,包裹在一对大括号中
  20. 3.选择器:写在声明块签名的一个标识符,用来选择页面中一个或多个元素
  21. 4.规则集:选择器和声明块组成 */
  22. /* #ID选择器 */
  23. #page-title {
  24. color: chartreuse;
  25. }
  26. /* class 类选择器 */
  27. .title {
  28. color: crimson;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <h1 id="page-title" class="title">我在PHP中文网学习PHP</h1>
  34. <h1>php中文网:php.cn</h1>
  35. <!-- 三个选择器,选中了同一个元素,但是呈现的效果却不一致,原因是这些选择器具有优先级 -->
  36. <script>
  37. console.log(document.querySelector(".title"));
  38. console.log(document.querySelector("#pgge-title"));
  39. console.log()document.querySelector("h1");
  40. </script>
  41. </body>
  42. </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. h1 {
  9. color: red;
  10. }
  11. .title {
  12. color: green;
  13. }
  14. #page-title {
  15. color: blue;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <h1 class="title" id="page-title" style="color: yellow">
  21. 我喜欢PHP中文网:php.cn
  22. </h1>
  23. </body>
  24. </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. <link rel="stylesheet" href="static/css/style1.css" />
  7. <title>继承</title>
  8. </head>
  9. <body>
  10. <header>
  11. <h1>我现在学习PHP编程</h1>
  12. <h2>我现在学习CSS样式层叠</h2>
  13. <p>来自中文PHP中文网学习</p>
  14. <h3 class="red">老师晚上好</h3>
  15. </header>
  16. <footer>&copy;php.cn版权所有</footer>
  17. </body>
  18. </html>
  19. css
  20. /* 0,0,4 */
  21. html body header h1 {
  22. color: red;
  23. }
  24. /* 0,1,3 */
  25. body header.page-header h1 {
  26. color: green;
  27. }
  28. /* 0,2,2 */
  29. /* header.page-header h1.title */
  30. /* 0,2,0 */
  31. .page-header .title {
  32. color: greenyellow;
  33. }
  34. /* 1,0,0 */
  35. #page-title {
  36. color: red;
  37. }
  38. .red {
  39. color: brown;
  40. }
  41. body {
  42. color: initail;
  43. font-size: 2rem;
  44. /* 边框不可以继承 */
  45. border: 1px solid;
  46. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议