一、CSS简介

(1)CSS是层叠样式表(Cascading Style Sheets)的简称。

(2)CSS主要作用:美化网页、布局页面,增加视觉感官。

(3)CSS最大的价值:由HTML专注做结构呈现,样式交给CSS,即结构(HTML)和样式(CSS)相分离。

二、css语法

(1)CSS规则主要由两个主要部分构成:选择器及一条或多条声明。

选择器用于指定CSS样式的HTML标签,花括号内是对该对象设置的的具体样式。
属性是对制定对象设置的样式属性,例如字体大小、文本颜色等。
属性和属性值之间用英文“:”分开。
多个键值对之间用英文“;”进行区分。

三、CSS的三种引用样式

1、行内样式(内联样式):

直接现在HTML标签中的样式,通过给标签添加style属性来实现行内式

  1. <h1 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </h1>

语法中style是标签的属性,实际上任何HTML标签都拥有style属性,用来设置行内式。其中属性和值的书写规范与CSS样式规则相同,行内式只对其所在的标签及嵌套在其中的子标签起作用。

2、内部样式表

内部样式是将CSS代码集中写在文本的head标签中,并且用style标签定义,其基本语法格式如下

  1. <head>
  2. <style type="text/CSS">
  3. 选择器 {
  4. 属性1:属性值1; 属性2:属性值2;
  5. }
  6. </style>
  7. </head>

3、外部样式表

外部样式表是将所有的css样式放在一个或多个以.CSS为扩展名的外部样式表文件中,通过link或@import标签将外部样式表文件链接到HTML文档中

  1. <head>
  2. <link href="CSS文件的路径" type="text/CSS" rel="stylesheet" />
  3. </head>
  4. 或:
  5. <style>
  6. @import url(“style.css”)
  7. </style>

四、CSS选择器

选择器优先级

id选择器的权值为100>类选择器的权值10>标签选择器的权值1>

1.简单选择器

标签选择器

用HTML标签名作为选择器,按标签名分类,为页面中的某一类标签指定统一的CSS样式。

  1. 标签名 {
  2. 属性1: 属性值; 属性2: 属性值2
  3. }

类选择器

为了差异化选择不同的标签,单独选一个或某几个标签,可以使用类选择器。
样式点调用,结构类(class)调用,一个或多个,开发最常用

  1. .类名 {
  2. 属性1: 属性值1; 属性2: 属性值2
  3. }

我们可以给一个标签指定多个类名,或者一个类名绑定多个标签,从而达到更多的选择的目的。这些类名都可以选出这个标签。多类名之间要用空格分隔开。
可以把一些标签元素相同的样式(共同的部分)放到一个类里面。
这些标签都可以调用公共的的类,然后再调用自己独有的类。
从而节省CSS代码,统一修改非常方便。

id选择器

样式#定义,结构id调用,只能用一次

  1. #id名 {
  2. 属性1: 属性值1; 属性2: 属性值2
  3. ...
  4. }
类选择器和id选择器区别:" class="reference-link">类选择器和id选择器区别:

class可以被多次使用,id只能有一个

通配选择器

使用“*”定义,表示选中所有元素(标签)

  1. * {
  2. 属性1: 属性值1; 属性2: 属性值2
  3. ...
  4. }

群组选择器

可以同时选择多个不同类型的元素

  1. h1,h2,#id名,.类名{
  2. 属性1: 属性值1; 属性2: 属性值2
  3. }

每个标签之间用,隔开

2.上下文选择器

元素的四种角色

先祖元素" class="reference-link">先祖元素

拥有子元素,孙元素等所有层级的后代元素(如html、body)

父级元素" class="reference-link">父级元素

仅拥有子元素层级的元素
如:

  1. <ul>(父级元素)
  2. <li></li>(子元素)
  3. <li></li>(子元素)
  4. </ul>

后代元素" class="reference-link">后代元素

与其它层级元素一起拥有共同祖先元素

  1. <html>(祖先元素)
  2. <body>
  3. <ul>
  4. <li></li>(后代元素)
  5. <li></li>(后代元素)
  6. </ul>
  7. </body>
  8. </html>

子元素" class="reference-link">子元素

与其它同级元素一起拥有共同父级元素

  1. <ul>(父级元素)
  2. <li></li>(子元素)
  3. <li></li>(子元素)
  4. </ul>

四种上下文选择器

后代选择器

可以选择父元素里面子元素,外层标签写前面,内层标签写后面,中间用空格分隔。当标签形成嵌套时,内层标签是外层标签后代

  1. (父级)元素1 (元素1的后代)元素2 {
  2. 属性1: 属性值1; 属性2: 属性值2
  3. }

上述语法表示元素1里面的所有元素2(后代元素)。
元素1和元素2中间用空格分隔
元素1是父级,元素2是子级,选中的是元素2
元素2可以是儿子也可以是孙子,只要是元素1的后代即可
元素1和元素2可以是任意基础选择器

子选择器(父子选择器)

只能选择距离父元素 最近一级 的子元素

  1. (父级)元素1>(子级)元素2 {
  2. 属性1: 属性值1; 属性2: 属性值2
  3. }

上述语法表示选中元素1的所有直接后代(子元素)元素2
元素1和元素2用大于号隔开
元素1是父级,元素2是子级,作中选中的是元素2
元素2必须是亲儿子,孙子都不行,也可以理解为亲儿子选择器

同级所有选择器

  1. <style>
  2. .start~li {
  3. background-color: yellow;
  4. }
  5. </style>
  6. </head>
  7. <body>
  8. <ul>
  9. <li>item1</li>
  10. <li class="start">item2</li>
  11. <li>item3</li>
  12. <li>item4</li>
  13. </ul>
  14. </body>

所有相同父级中,位于某标签之后的同级的某标签享受样式。
相邻兄弟选择器可选择紧接在另一元素后的所有元素,且而者有相同父元素.
例如选择第二个li后面的所有li标签

伪类选择器

伪类选择器以 : 开始

  1. <style>
  2. a:伪类元素
  3. </style>

链接伪类选择器

:link ==未访问的链接
:visited ==已访问的链接
:hover ==鼠标移动到链接上
:active ==选定的链接

  1. style>
  2. a {
  3. font-size: 16px;
  4. font-weight: 700;
  5. color: black;
  6. text-decoration: none;
  7. }
  8. a:link {
  9. /* 未访问的链接 */
  10. color: gray; /*颜色:灰色*/
  11. }
  12. a:visited {
  13. /* 已访问的链接 鼠标点击过后显示的颜色*/
  14. color: orange;/*颜色:橙色*/
  15. }
  16. a:hover {
  17. /* 鼠标移动到链接上显示的颜色 */
  18. color: red;/*颜色:红色*/
  19. }
  20. a:active {
  21. /* 选定的链接 当我们点击别松开鼠标 显示的状态*/
  22. color: green;/*颜色:绿色*/
  23. }
  24. </style>

结构伪类选择器

不分组匹配:

first-child :匹配父元素的第一个子元素
:last-child :匹配父元素的最后一个子元素
:only-child :匹配只有一个子元素的父元素
:nth-child(n) : 匹配父元素的匹配任意位置的子元素
:nth-last-child(n) :从父元素的倒数第一个子元素开始计算
(n 可以是子元素的排序数字、关键词或着是公式)

  1. <style>
  2. ul li:first-child { /* 选择第一个子元素 */
  3. color: pink;
  4. }
  5. ul li:last-child { /* 选择最后一个子元素 */
  6. color: purple;
  7. }
  8. ul li:nth-child(4) { /* 选择第4个子元素 n 代表 第几个的意思 */ color: skyblue;
  9. }
  10. li:nth-child(odd) { /*可以选择所有的 odd奇数 的子元素标签 */ color: pink;
  11. }
  12. li:nth-child(even) { /*可以选择所有的 even 偶数 的孩子标签 */ color: deeppink;
  13. }
  14. li:nth-child(3n) { /* n 0 2n 2n是 选择 2.4.6.8..的孩子 3n 3.6.9的孩子元素 */
  15. color: pink;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <ul>/*父元素*/
  21. <li>第一个子元素</li>
  22. <li>第二个子元素</li>
  23. <li>第三个子元素</li>
  24. <li>第四个子元素</li>
  25. <li>第五个子元素</li>
  26. <li>第六个子元素</li>
  27. <li>第七个子元素</li>
  28. <li>第八个子元素</li>
  29. </ul>
  30. </body>
分组匹配:

.list > li:first-of-type:选取属于其父元素的首个li子元素的指定选择器
.list > li:last-of-type :选取属于其父元素的最后一个li子元素的指定选择器
.list li:nth-of-type(3) : 匹配属于其父元素的第 3 个li子元素,只匹配li元素
ul > li:only-of-type 匹配属于其父元素的唯一子元素的元素

  1. style>
  2. /* 给类选择器为class的UL下的最后一个li标签添加背景颜色 */
  3. .list > li:last-of-type {
  4. background-color: aquamarine;
  5. }
  6. /* 给类选择器为class的UL下的第一个li标签添加背景颜色 */
  7. .list > li:first-of-type {
  8. background-color: royalblue;
  9. }
  10. /* 给类选择器为class的UL下的第三个li标签添加背景颜色 */
  11. /* 用空格链接后代元素会把样式带给后代元素 */
  12. .list li:nth-of-type(3) {
  13. background-color: blueviolet;
  14. }
  15. /* 给类选择器为class的UL下的单数li标签添加前景颜色 */
  16. .list > li:nth-of-type(2n + 1) {
  17. color: red;
  18. }
  19. /* 给类选择器为class的UL下的双数li标签添加前景颜色 */
  20. .list > li:nth-of-type(2n + 2) {
  21. color: blue;
  22. }
  23. /* 给ul下只存在一个li标签的元素加上边框 */
  24. ul > li:only-of-type {
  25. border: solid 2px;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <ul class="list">
  31. <li>item1</li>
  32. <li>item2</li>
  33. <li>
  34. item3
  35. <ul>
  36. <li>孙子1</li>
  37. <li>孙子2</li>
  38. </ul>
  39. </li>
  40. <li>item4</li>
  41. <li>item5</li>
  42. <li>item6</li>
  43. <li>item7</li>
  44. <li>item8</li>
  45. <li>item9</li>
  46. <li>item10</li>
  47. </ul>
  48. <ul>
  49. <li>item1</li>
  50. </ul>

更多相关文章

  1. 【CSS入门】学习CSS盒模型及常用样式属性详解(整理)
  2. 浅谈Java:Stack浅析
  3. css元素选择器
  4. HTML选择器和JS基础
  5. 选择器的优先级,id,class,tag。前端组件样式模块化的原理与实现
  6. 选择器优先级/前端组件样式模块化原理与实现/常用伪类选择器的使
  7. 0322作业-css基本语法、选择器及模块化开发
  8. css基础、选择器、模块化组件
  9. css第一课

随机推荐

  1. 使用Android(安卓)Studio的AVD进行测试
  2. Android adb不是内部或外部命令 问题解决
  3. Android Button Maker(在线生成android sh
  4. AndroidManifest.xml的Service元素 andro
  5. Android File文件操作
  6. android inputmanager中事件的传递流程
  7. android导航设计
  8. Android异步消息框架
  9. android中如何给button加圆角
  10. Android实现打电话功能