Blogger Information
Blog 37
fans 2
comment 0
visits 26510
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
2015作业-css的基本语法及三种样式引入方式,选择器的应用
世纪天城
Original
588 people have browsed it

css的基本语法及三种样式引入方式

  1. 任何元素如果想引入到html文档中,必须要使用一个适当的标签,css也不例外 通过style标签引入的css规则,仅适用于当前的页面(html文档) css: 层叠样式表,用来设置页面中元素的样式,布局

2.h1: 选择器 {…}: 声明块,由一个或多个由分号分隔开的样式声明构成 h1 + {…}: 选择器 + 声明块 = 规则

css引入方式
1.style为css引入方式:内部样式>为css引入方式:内部样式 标签

内部样式代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>css引入方式:内部样式</title>
  6. <!-- 1. 内部样式 <style> -->
  7. <style>
  8. h1 {
  9. /* 声明: 属性和值组成 */
  10. color: violet;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>css引入方式:内部样式</h1>
  16. <p>style为css引入方式:内部样式 标签</p>
  17. </body>
  18. </html>

2.css引入方式:外部样式表/公共样式表/共享样式表
使用link 标签引入外部公共样式表

<link rel="stylesheet" href="css/style.css">

标签引入外部公共样式表代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>css引入方式:外部样式表/公共样式表/共享样式表</title>
  6. <!-- 使用link 标签引入外部公共样式表 -->
  7. <link rel="stylesheet" href="css/style.css">
  8. </head>
  9. <body>
  10. <h3>css引入方式:外部样式表/公共样式表/共享样式表</h3>
  11. </body>
  12. </html>

3.css引入方式:style属性设置样式
通过style属性给指定元素自定义/定制样式

style属性设置样式代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>css引入方式:style属性设置样式</title>
  6. </head>
  7. <body>
  8. <h1>css引入方式:style属性设置样式</h1>
  9. <!--通过style属性给指定元素自定义/定制样式 -->
  10. <h1 style="color:teal">css引入方式:style属性设置样式</h1>
  11. </body>
  12. </html>

样式表的模块化:公共部分进行分离
@import用于引入模块化样式表

例如:

导入公共页眉 @import url(css/header.css);
导入公共页脚 @import 'css/footer.css';

总结: 1. 内部样式: 仅对当前文档的元素有效,使用 style 标签 2. 外部样式: 适用于所有引入了这个css样式表的html文档,使用 link 标签 3. 行内样式: 使用style属性,仅适用于当前的页面中的指定的元素

选择器1: 简单选择器

标签选择器, 返回一组

  1. li{
  2. background-color: chartreuse;
  3. }

类选择器: 返回一组

  1. .li{
  2. background-color: chocolate;
  3. }

id选择器: 返回一个

  1. #app3{
  2. background-color: crimson;
  3. }
  4. /* 属性选择器: class, 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. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>选择器1: 简单选择器</title>
  8. <style>
  9. /* 1. 标签选择器, 返回一组 */
  10. li{
  11. background-color: chartreuse;
  12. }
  13. /* 2. 类选择器: 返回一组 */
  14. .li{
  15. background-color: chocolate;
  16. }
  17. /* 3. id选择器: 返回一个 */
  18. #app3{
  19. background-color: crimson;
  20. }
  21. /* 属性选择器: class, id */
  22. </style>
  23. </head>
  24. <body>
  25. <ul>
  26. <li>app1</li>
  27. <li class="li">app2</li>
  28. <li id="app3">app3</li>
  29. <li>app4</li>
  30. <li class="li">app5</li>
  31. <li class="li">app6</li>
  32. <li>app7</li>
  33. <li>app8</li>
  34. <li>app9</li>
  35. <li>app10</li>
  36. </ul>
  37. </body>
  38. </html>

选择器2:上下文选择器

因为html是一个结构化的文档:每一个元素在文档中有确切的位置
所以根据元素的上下文环境来选择是完全没有问题的

后代选择器: 所有层级

  1. ul li {
  2. background-color: lightblue;
  3. }

子元素选择器: 仅父子层级
body>ul>li {
background-color: teal;
}
同级相邻选择器: 仅选中与之相邻的第一个兄弟元素

  1. .li+li {
  2. background-color: lightgreen;
  3. }

同级所有选择器: 选中与之相邻的后面所有兄弟元素

  1. .li~li {
  2. background-color: yellow;
  3. }

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>选择器2:上下文选择器</title>
  6. <style>
  7. /* 因为html是一个结构化的文档:每一个元素在文档中有确切的位置 */
  8. /* 所以根据元素的上下文环境来选择是完全没有问题的 */
  9. /* 1. 后代选择器: 所有层级 */
  10. ul li {
  11. background-color: lightblue;
  12. }
  13. /* 2. 子元素选择器: 仅父子层级 */
  14. body>ul>li {
  15. background-color: teal;
  16. }
  17. /* 3. 同级相邻选择器: 仅选中与之相邻的第一个兄弟元素 */
  18. .li+li {
  19. background-color: lightgreen;
  20. }
  21. /* 4. 同级所有选择器: 选中与之相邻的后面所有兄弟元素 */
  22. .li~li {
  23. background-color: yellow;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <ul>
  29. <li>app1</li>
  30. <li class="li">app2</li>
  31. <li id="app3">app3</li>
  32. <li>app4</li>
  33. <li class="li">app5</li>
  34. <li class="li">app6</li>
  35. <li>app7</li>
  36. <li>app8</li>
  37. <li>app9</li>
  38. <li>app10</li>
  39. </ul>
  40. </body>
  41. </html>
  42. <!-- 上下文选择器:
  43. 1. 空格: 所有层级
  44. 2. > : 父子级
  45. 3. + : 相邻的兄弟
  46. 4. ~ : 所有相邻兄弟 -->

伪类选择器: 结构相关,难点重点

  1. 匹配任意位置的元素: :nth-of-type(an+b)
    an+b: an起点,b是偏移量, n = (0,1,2,3…)

    选择所有元素

  1. ul li:nth-of-type(1n) {
  2. background-color: violet;
  3. }

1乘以任何数都等于自己,所以省去1

  1. ul li:nth-of-type(n+3) {
  2. background-color: violet;
  3. }

反向获取任意位置的元素: nth-last-of-type(an+b)

  1. ul li:nth-last-of-type(-n+3) {
  2. background-color: violet;
  3. }

我只选择倒数第3个,直接命中

  1. ul li:nth-last-of-type(3) {
  2. background-color: violet;
  3. }

选择所有索引为偶数的子元素, 2,4,6,8…

  1. ul li:nth-of-type(2n) {
  2. background-color: violet;
  3. }

计算方式

  1. 2*0 = 0
  2. 2*1 = 2
  3. 2*2 = 4
  4. 2*3 = 6 */

选择所有索引为奇数的子元素, 1,3,5,7,9…

  1. ul li:nth-of-type(2n-1) {
  2. background-color: violet;
  3. }

这里用2n+1也是对的,大家考虑一下为什么?

偶数行: even

  1. ul li:nth-of-type(even) {
  2. background-color: rgb(250, 9, 250);
  3. }

奇数行: odd

  1. ul li:nth-of-type(odd) {
  2. background-color: rgb(32, 7, 255);
  3. }

选择第一个子元素: :first-of-type */

  1. /* :nth-of-type(1) 的语法糖 :first-of-type */
  2. ul li:first-of-type {
  3. background-color: rgb(24, 245, 98);
  4. }

选中最后一个: :last-of-type

  1. ul li:last-of-type {
  2. background-color: rgb(20, 20, 20);
  3. }

:nth-of-type(an+b)这是最核心的一个选择器,其它的相关选择器都是它的语法糖 */
:nth-last-of-type(), :first-of-type, :last-of-type,这些都是快捷方式

  1. ul:last-of-type li:first-of-type {
  2. background-color: rgb(99, 5, 99);
  3. }

如果只想匹配父元素中唯一子元素,使用 :only-of-type就可快速实现

  1. ul li:only-of-type {
  2. background-color: rgb(230, 111, 13);
  3. }

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>伪类选择器: 结构相关,难点重点</title>
  6. <style>
  7. /* 1. 匹配任意位置的元素: `:nth-of-type(an+b)` */
  8. /* an+b: an起点,b是偏移量, n = (0,1,2,3...) */
  9. /* 选择所有元素 */
  10. ul li:nth-of-type(1n) {
  11. background-color: violet;
  12. }
  13. /* 1乘以任何数都等于自己,所以省去1 */
  14. ul li:nth-of-type(n+3) {
  15. background-color: rgb(112, 110, 112);
  16. }
  17. /* 2. 反向获取任意位置的元素: `nth-last-of-type(an+b)` */
  18. ul li:nth-last-of-type(-n+3) {
  19. background-color: rgb(250, 187, 250);
  20. }
  21. /* 我只选择倒数第3个,直接命中 */
  22. ul li:nth-last-of-type(3) {
  23. background-color: rgb(8, 0, 8);
  24. }
  25. /* 选择所有索引为偶数的子元素, 2,4,6,8... */
  26. ul li:nth-of-type(2n) {
  27. background-color: violet;
  28. }
  29. /*
  30. 计算方式
  31. 2*0 = 0
  32. 2*1 = 2
  33. 2*2 = 4
  34. 2*3 = 6 */
  35. /* 选择所有索引为奇数的子元素, 1,3,5,7,9... */
  36. ul li:nth-of-type(2n-1) {
  37. background-color: violet;
  38. }
  39. /* 这里用2n+1也是对的,大家考虑一下为什么? */
  40. /* 偶数行: even */
  41. ul li:nth-of-type(even) {
  42. background-color: rgb(250, 9, 250);
  43. }
  44. /* 奇数行: odd */
  45. ul li:nth-of-type(odd) {
  46. background-color: rgb(32, 7, 255);
  47. }
  48. /* 3. 选择第一个子元素: :first-of-type */
  49. /* :nth-of-type(1) 的语法糖 :first-of-type */
  50. ul li:first-of-type {
  51. background-color: rgb(24, 245, 98);
  52. }
  53. /* 3. 选中最后一个: :last-of-type */
  54. ul li:last-of-type {
  55. background-color: rgb(20, 20, 20);
  56. }
  57. /* :nth-of-type(an+b)这是最核心的一个选择器,其它的相关选择器都是它的语法糖 */
  58. /* :nth-last-of-type(), :first-of-type, :last-of-type,这些都是快捷方式 */
  59. ul:last-of-type li:first-of-type {
  60. background-color: rgb(99, 5, 99);
  61. }
  62. /* 如果只想匹配父元素中唯一子元素,使用 :only-of-type就可快速实现 */
  63. ul li:only-of-type {
  64. background-color: rgb(230, 111, 13);
  65. }
  66. </style>
  67. </head>
  68. <body>
  69. <ul>
  70. <li>app1</li>
  71. <li class="li">app2</li>
  72. <li id="app3">app3</li>
  73. <li>app4</li>
  74. <li class="li">app5</li>
  75. <li class="li">app6</li>
  76. <li>app7</li>
  77. <li>app8</li>
  78. <li>app9</li>
  79. <li>app10</li>
  80. </ul>
  81. <ul>
  82. <li>1</li>
  83. </ul>
  84. </body>
  85. </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