Blogger Information
Blog 3
fans 0
comment 1
visits 1343
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第3章 CSS基础与选择器-PHP培训九期线上班
Original
202 people have browsed it

CSS 基础

1. 元素的类型

1.1 按内容是否可替换

1.1.1 置换元素

  • 元素内容来自文档外部, 可以替换成不同的资源
  • 该类元素都过特定属性实现资源的置换
  • 由于这类元素不由文档直接提供,所以大小尺寸未知
  • 此时,遵循最小化原则,尽可能最小的空间来显示它们
  • 所以, 这类元素通常都是以行内元素身份出现(并非总是如此)
  • 你可能已经猜到, 置换元素大多用自闭合标签/空标签来描述
  • 实例: <img>, <input>都是这类元素
  • <img src="...">: 以src属性指向引用的外部图片资源
  • <input type="...">: type不同,替换成不同的类型

1.1.2 非置换元素

  • 元素内容由文档直接提供, HTML中绝大多数元素,都属于此类
  • 非置换元素的内容通常放在二个标签之间, 所以大多采用双标签
  • 非置换元素, 有块元素与有行内元素, 只是提供者不同罢了
  • 实例: <h1><p><span><div><table><ul+li><a>...

1.2 按元素是否独占一行

1.2.1 块级元素

  • 遵循: 最大化原则
  • 总是独占一行显示, 自动充满父级元素的内容区
  • 块级元素二边不允许有任何其它元素,也就是它总是自带换行的
  • 块级元素在没有内容撑开的情况下, 需要设置宽高,否则无法感知存在
  • 例如: <div>, <ul+li>, <table>,<p>, <h1-h6>

1.2.1 行内元素

  • 遵循: 最小化原则
  • 总是在一行文本元素的内部生成, 它的宽高由所在行决定,不可以设置
  • 例如: <span>,<input>, <em>,<strong>,<a>

2. 元素的显示方式

  • 一切元素都是
  • 任何元素都会在页面上占据一定的空间, 页面是以的形式来显示它们
  • 块级框对应的是块级元素, 行内框对应的是行内元素
  • 行内框的宽高, 由它内部的内容决定,
  • 块级框的宽高, 是由它内部的子元素决定
  • 一般来说, 块级框内,可以嵌套行内框, 反过来就不允许(可用display改变)

3. CSS 是什么,有什么用

  • CSS: 层叠样式表(Cascading Style Sheets)
  • CSS是用来设置页面中的元素样式和布局
  • CSS基本语法


4. 使用CSS的方式

4.1 如何将CSS作用到所有页面上

  • demo1.html
  • 使用<link>标签:
  • 在css中使用@import关键字, 导入另一张样式表
  • 注意: @import必须出现在第一行,否则无效

4.2 如何将CSS作用到当前页面上

  • demo2.html
  • 使用<style>标签
  • <style>标签应该始终坚持写在<head>标签内
  • <style>标签中的@import也必须写在首行

4.3 如何使CSS仅对当前元素有效

  • demo3.html
  • 给当前元素添加style="..."属性
  • 不能使用@import, 也没意义

5. 简单选择器

  • demo4.html
  • css的样式规则 = 选择器 + 样式声明
  • 根据元素的标签名称和属性来选择元素, 是最朴素,最直观的方式

  • 常用的简单选择器有5种:

    • 元素选择器: div {...}
    • 属性选择器: tag[property...]
    • 类/class选择器: .active {...}
    • ID选择器: #main {...}
    • 群组选择器: p, .active, div {...}
    • 通配符选择器: *, 表示全部元素, 通常用在上下文选择器
  • 当元素选择器, 类选择器, ID选择器同级共存时:tag < class < id

  • 类选择器与ID选择器, 本质上都是属性选择器, 为什么要单独提出来?
  • 几乎所有的页面可视元素都具有这二个属性,所以用它们来选择元素非常自然合理

6. 上下文选择器

  • demo5.html, style3.css
  • 所谓上下文, 是指元素之间的结构关系,如层级,包含等,主要有四个选择器
    • 后代选择器: 空格, 如 div p, body *
    • 父子选择器: >, 如 div + h2
    • 同级相邻选择器: +, 如 li.red + li
    • 同级所有选择器: ~, 如 li.red ~ li

7. 伪类选择器

  • demo6.html, style4.css

  • 伪类, 顾名思义, 仍然是”class”级别的选择器, 优先级小于id,大于标签

  • 为了与传统的类选择器相区别, 伪类采用冒号:, 而不是点.
  • 伪类之前常用在链接标签上<a>,非常简单大家可自行度度, 不再多说
  • 我们重点放在伪类最重要的应用场景:
    • 结构伪类: 根据子元素的位置特征进行选择
    • 表单伪类: 根据表单控制状态特征进行选择

7.1 结构伪类

结构性伪类通常用于后代选择器中, 在父元素上调用,选择子元素集合中匹配的元素

7.1.1 非限定类型

所谓非限定类型, 是指只关注子元素的位置, 忽略子元素类型(当然也可以指定类型)

:nth-child(n)是最主要的非限定类型,其它四个只是它的某种行为快捷方式罢了

  • :nth-child(n): 匹配父元素中指定索引的子元素
  • :first-child: 匹配父元素中的第一个子元素
  • :last-child: 匹配父元素中的最后一个子元素
  • :nth-last-child(n): 匹配从父元素中倒数选择子元素
  • :only-child: 匹配父元素中的唯一子元素

7.1.2 限定类型

所谓限定类型, 是指既关注子元素的位置, 也关注子元素类型(当然也可以忽略类型)

selector:nth-of-type(n)是最主要的限定类型,其它四个只是它的快捷方式

  • selector:nth-of-type(n): 匹配父元素中指定索引的子元素
  • selector:first-of-type: 匹配父元素中的第一个子元素
  • selector:last-of-type: 匹配父元素中的最后一个子元素
  • selector:nth-last-of-type(n): 匹配从父元素中倒数选择子元素
  • selector:only-of-type: 匹配父元素中的唯一子元素

  • 非限定到限定的转换规则, 将childof-type替换即可

  • 常规语法: [selector]::nth-of-type(n)

7.1.3 非限定与限定之间的转换

  • 非限定,如:nth-child(n)前面加上选择器, 则自动转换为限定类型
  • 限定类型, 如selector::nth-of-type(n),省略前面选择器, 则转为非限定类型
  • 因为二者并无本质区别, 且可互相转换, 具体使用哪个都不会影响结果,效率也相同
  • 这二种伪类选择器, 只是关注点不同罢了, 大家不必想得太复杂, 理解设计初衷就好
  • 个人推荐首选限定类型选择器, 语义化更强烈

7.1.4 结构伪类的参数

  • 伪类中的参数n有二种类型, 它对应的初值并不相同
  • n为字面量,则从1开始, 如(1,2,3…)
  • n为表达式时, 如(2n, 2n+1, 2n-1…), 则从0开始,如果计算结果为0或负数,不会匹配
  • n为负值是, 表示从反方向开始计算,如(-3), 即倒数三个
  • 为奇偶索引,创建了二个快捷参数: (odd)奇数, (even)偶数

7.2 表单伪类

  • demo7.html, style.css5

  • :enabled: 选择每个启用的 <input> 元素

  • :disabled: 选择每个禁用的 <input> 元素
  • :checked: 选择每个被选中的 <input> 元素
  • :required: 包含required属性的元素
  • :optional: 不包含required属性的元素
  • :valid: 验证通过的表单元素
  • :invalid: 验证不通过的表单
    : :read-only: 选择只读表单元素

8. 伪元素[选学]

  • 该部分是选学内容, 大家可查阅相关资料扩展
  • 伪元素, 顾名思义, HTML源码并不存在, 而是通过CSS添加的
  • 通常与content配合使用, 主要用来清除元素浮动
  • ::after: 在当前元素之后添加
  • ::before: 在当前元素之前添加

9. 作业

  • 元素按显示方式分为哪几种, 并举例, 正确描述它们
  • CSS是什么? 它的主要作用是什么?
  • 什么是CSS选择器,它的样式声明是哪二部分组成?
  • 举例演示CSS简单选择器(全部)
  • 举例演示CSS上下文选择器(全部)
  • 举例演示常用CSS结构伪类选择器(不少于四种)
  • 举例演示常用CSS表单伪类选择器(不少于三种)
    1、元素按显示方式分为哪几种,并举例,正确描述它们

元素按显示方式分为块级元素和行内元素。

块级元素总是独占一行,两边不允许有元素,总是追求最大化把父级元素撑满,高度是其子元素的总高度,块级元素允许并需要设置宽高,例如<div>、<p>、<table>、<tr>、<td>、<ul>、<li>、<form>、<iframe>、<h1>~<h6>…

行内元素通常在一行中进行设置,两边允许有内容,它的宽高追求最小化。高度和两边的内容一致,宽度是自身当前内容的宽度,不可自己设置宽高,设置了也没用。例如<span>、<input>、<a>、<em>、<strong>、<i>、<label>…

2、CSS是什么? 它的主要作用是什么?

CSS是层叠样式表(Cascading Style Sheets),它的主要作用是设置HTML元素在文档中的布局和显示方式。它能精确的找到网页中元素的位置并给元素添加样式,使html页面看起来更加整洁美观。

3、什么是CSS选择器,它的样式声明是哪二部分组成?

CSS选择器是用来选择页面中某一个或某一组标签,它的样式声明由一个键值对组成,分别是属性名:属性值。

4、举例演示CSS简单选择器(全部)

优先级:id选择器>class选择器>元素选择器

(1) 元素选择器 ——按名称

实例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>css元素选择器</title>
  6. <link rel="stylesheet" href="static/css/style1.css">
  7. </head>
  8. <body>
  9. <p>作为“亚洲第一男团”的德云社,向来自带热搜体质,今天又是紧紧贴在榜首</p>
  10. <p>一批新规自11月起施行 将影响你我的生活</p>
  11. <p>位于日本冲绳县那霸市的首里城31日凌晨突发火灾</p>
  12. <h3>今日练习CSS</h3>
  13. </body>
  14. </html>
  15. p{
  16. /*文本前景色*/
  17. color: red;
  18. }

(2) 属性选择器 (class和id都是属性选择器的一种)

2.1 类/class选择器
  1. 实例
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>css类选择器</title>
  7. <link rel="stylesheet" href="static/css/style1.css">
  8. </head>
  9. <body>
  10. <p class="blue">作为“亚洲第一男团”的德云社,向来自带热搜体质,今天又是紧紧贴在榜首</p>
  11. <p class="blue">一批新规自11月起施行 将影响你我的生活</p>
  12. <p>位于日本冲绳县那霸市的首里城31日凌晨突发火灾</p>
  13. <h3>今日练习CSS</h3>
  14. </body>
  15. </html>

p[class=”blue”]{
color:blue;
}
类选择器可简写为

.blue{
color: blue;
}

2.2 id选择器
  1. 实例
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>id选择器</title>
  7. <link rel="stylesheet" href="static/css/style1.css">
  8. </head>
  9. <body>
  10. <p class="blue">作为“亚洲第一男团”的德云社,向来自带热搜体质,今天又是紧紧贴在榜首</p>
  11. <p class="blue" id="p1">一批新规自11月起施行 将影响你我的生活</p>
  12. <p>位于日本冲绳县那霸市的首里城31日凌晨突发火灾</p>
  13. <h3>今日练习CSS</h3>
  14. </body>
  15. </html>

style1.css

  1. p[id="p1"]{
  2. font-size: 25px;
  3. }

id选择器可简写为

  1. #p1{
  2. font-size: 25px;
  3. }
(3) 群组选择器

实例

  1. .blue,#p1,h3{
  2. background-color: lightcyan;
  3. }
(4) 通配符选择器

实例

  1. body *{
  2. background-color: #ccc;
  3. }

5、举例演示CSS上下文选择器(全部)

上下文选择器也叫结构选择器。

5.1 后代选择器:父元素+空格 选子女
  1. 实例
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>上下文选择器</title>
  7. <link rel="stylesheet" type="text/css" href="static/css/style2.css">
  8. </head>
  9. <body>
  10. <section>
  11. <div>
  12. <h2>PHP</h2>
  13. <h2>HTML</h2>
  14. <h2>CSS</h2>
  15. </div>
  16. <h2>Java</h2>
  17. <h2>Python</h2>
  18. <h3>GOlang</h3>
  19. </section>
  20. </body>
  21. </html>
  22. style2.css
  23. section h2{
  24. color: lightgreen;
  25. }
5.2 父子选择器 父元素+>选 直接子元素

section>h2{
color: lightgreen;
}

5.3 同级相邻选择器
  1. div+ *{
  2. background-color: #ccc;
  3. }
5.4 同级所有选择器
  1. div~ *{
  2. background-color: #ccc;
  3. }

6、举例演示常用CSS结构伪类选择器(不少于四种)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>结构伪类选择器</title>
  6. <link rel="stylesheet" type="text/css" href="static/css/style3.css">
  7. </head>
  8. <body>
  9. <ul>
  10. <li>
  11. <h3>执勤表</h3>
  12. <ul>
  13. <li>php</li>
  14. <li>html</li>
  15. <li>css</li>
  16. </ul>
  17. </li>
  18. <li>
  19. <h3>购物单</h3>
  20. <ul>
  21. <li>牛肉</li>
  22. <li>土鸡蛋</li>
  23. <li>低卡蔬菜</li>
  24. </ul>
  25. </li>
  26. <li>
  27. <h3>娱乐项目</h3>
  28. <p>太极拳</p>
  29. <ul>
  30. <li>练琴弹吉他</li>
  31. <li>跟着节拍器连8/6拍鼓点</li>
  32. <li>下棋</li>
  33. </ul>
  34. <p>娱乐时间结束了</p>
  35. </li>
  36. </ul>
  37. </body>
  38. </html>
6.1 非限定类型的伪类选择器
  1. style3.css
  2. ul > :nth-child(2){
  3. background-color: grey;
  4. }
  5. ul:first-child > :nth-child(2){
  6. background-color: lightgreen;
  7. }
  8. ul:first-child > :last-child{
  9. background-color: lightblue;
  10. }
  11. ul:first-child > :last-child > p:nth-child(n+1){
  12. background-color: pink;
  13. }
  14. ul:first-child>:last-child li:nth-child(n+1){
  15. color: white;
  16. }
6.2 限定类型的伪类选择器
  1. ul:first-of-type > :last-of-type > p:nth-of-type(n+1){
  2. color: blue;
  3. }
  4. ul:first-of-type>:last-of-type li:nth-of-type(n+1){
  5. color: white;
  6. }

7、举例演示常用CSS表单伪类选择器(不少于三种)

  1. 实例
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>表单伪类选择器</title>
  7. <link rel="stylesheet" type="text/css" href="static/css/style4.css">
  8. </head>
  9. <body>
  10. <h2>用户登录</h2>
  11. <form action="" method="">
  12. <p>
  13. <label for="email">邮箱:</label>
  14. <input type="email" name="email" id="email" required>
  15. </p>
  16. <p>
  17. <label for="pass">密码:</label>
  18. <input type="password" name="pass" id="pass">
  19. </p>
  20. <p>
  21. <label for="warning">警告:</label>
  22. <input type="text" value="不允许重复登录" id="warning" style="border:none;" disabled>
  23. </p>
  24. <p>
  25. <label for="save">保存密码:</label>
  26. <input type="checkbox" name="save" id="save" checked>
  27. </p>
  28. </form>
  29. </body>
  30. </html>
  31. ```css
  32. style4.css
  33. input:enabled{
  34. background-color: lightgreen;
  35. }
  36. input:disabled{
  37. background-color: pink;
  38. }
  39. input:required{
  40. background-color: yellow;
  41. }

```
前两年出了点状况一直在辗转住院养病什么的。最近才身体有所好转。认真开始每天看看课程。给老师添麻烦了!

Correction status:Uncorrected

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