Skip to content

第五章:CSS 基础

1. CSS 简介与引入方式

1.1 什么是 CSS?

CSS(Cascading Style Sheets,层叠样式表)用于控制网页的外观和布局,使 HTML 结构更加美观和易读。

1.2 CSS 的作用

美化网页(颜色、字体、背景等)

布局控制(位置、大小、间距)

提升用户体验(动画、响应式设计)

1.3 CSS 的三种引入方式

1.3.1 内联样式(Inline CSS)

直接在 HTML 标签内使用 style 属性定义 CSS。

html
<p style="color: red; font-size: 20px;">这是一个红色的段落</p>

优点:简单、适用于单个元素

缺点:难以维护,代码冗余

1.3.2 内部样式(Internal CSS)

在 HTML 的 <head> 部分使用 <style> 标签定义样式。

html
<head>
    <style>
        p {
            color: blue;
            font-size: 18px;
        }
    </style>
</head>
<body>
    <p>这是一个蓝色的段落</p>
</body>

优点:适用于单个页面的样式定义

缺点:样式无法复用,影响代码结构

1.3.3 外部样式(External CSS)

将样式写在独立的 .css 文件中,并通过 <link> 引入。

CSS 文件(styles.css):

css
p {
    color: green;
    font-size: 16px;
}

HTML 文件(index.html):

html
<head>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <p>这是一个绿色的段落</p>
</body>

优点:样式可复用,维护方便

缺点需额外的 HTTP 请求加载 CSS 文件

2. 选择器(Selectors)

选择器用于匹配 HTML 元素,以应用 CSS 样式。

CSS 核心选择器详解 —— 精准定位页面元素的工具

1. 基础选择器(核心三要素)

  • Type Selectors 标签选择器
  • Class Selectors 类选择器
  • ID Selectors ID选择器
  • Descendant Selector 后代选择器

2. 扩展选择器(复杂场景利器)

  • Pseudo Selectors 伪类选择器a:hover { color: blue; }定义元素特定状态(如悬停、焦点)
  • Attribute Selectors 属性选择器

2.1 标签选择器(Element Selector)

直接选中 HTML 标签,应用样式到所有相同标签。

css
p {
    color: blue;
}

作用:所有 <p> 元素都会变蓝

2.2 类选择器(Class Selector)

使用 . 选择具有特定 class 属性的元素。

css
.title {
    font-weight: bold;
    color: red;
}
html
<p class="title">这是一个加粗的红色标题</p>

多个元素可共享同一个 class 可重复使用

2.3 ID 选择器(ID Selector)

使用 # 选择具有特定 id 的元素。

css
#main-title {
    font-size: 24px;
    text-align: center;
}
html
<h1 id="main-title">这是页面的主标题</h1>

注意:id 在页面中应该是唯一的

2.4 后代选择器(Descendant Selector)

匹配 某个元素内的特定子元素

css
div p {
    color: purple;
}
html
<div>
    <p>这个段落是紫色的</p>
</div>
<p>这个段落不会受影响</p>

2.5 伪类选择器(Pseudo-classes)

用于选择特定状态的元素,如鼠标悬停、选中状态等。

伪类作用
:hover鼠标悬停时触发
:focus输入框获得焦点时触发
:first-child选中父元素的第一个子元素
:last-child选中父元素的最后一个子元素

示例:鼠标悬停变色

css
a:hover {
    color: orange;
}
html
<a href="#">鼠标悬停我会变色</a>

2.6 属性选择器(Attribute Selectors)

一、基础类型

  1. 存在性选择器

匹配具有指定属性的元素,不限制属性值

语法:[attribute]

css
[disabled] { 
    opacity: 0.5;  /* 所有带disabled属性的元素变半透明 */
}
  1. 精确匹配选择器

属性值必须完全等于目标值

语法:[attribute="value"]

css
input[type="text"] {
    border: 2px solid red;  /* 精确匹配type为text的输入框 */
}

二、模糊匹配类型

属性值中包含指定字符串即可

语法:[attribute*="value"]

css
img[src*="logo"] {
    filter: grayscale(100%);  /* 图片路径包含logo的变灰 */
}
  1. 开头匹配选择器

属性值以指定字符串开头

语法:[attribute^="value"]

css
a[href^="tel:"]::after {
    content: "☎";  /* 电话链接添加电话图标 */
}
  1. 结尾匹配选择器

属性值以指定字符串结尾

语法:[attribute$="value"]

css
a[href$=".pdf"] {
    color: red;  /* PDF链接显示为红色 */
}

三、特殊场景类型

属性值为多个空格分隔的单词时匹配

语法:[attribute~="value"]

css
[data-tags~="urgent"] {
    background: #ffeb3b;  /* 标签含urgent的元素高亮 */
}
  1. 连字符前缀匹配

匹配属性值以连字符分隔且前缀符合的情况(常用于语言代码)

语法:[attribute|="value"]

css
[lang|="zh"] {
    font-family: "PingFang SC";  /* 中文语言版本特殊字体 */
}

四、组合使用技巧

css
input[type="email"][required] {
    border: 2px solid #4CAF50;  /* 必填的邮箱输入框 */
}

• 伪类联动:结合交互状态

css
a[href^="http"]:hover::after {
    content: "(外部链接)";  /* 鼠标悬停时提示外部链接 */
}

五、实际应用场景

  1. 表单验证增强
css
input:invalid[required] {
    box-shadow: 0 0 8px red;  /* 必填项未填时显示红框 */
}
  1. 国际化适配
css
[lang|="en"] { quotes: '"' '"'; }  /* 英文引号样式 */
  1. 动态数据标记
css
tr[data-status="expired"] td {
    text-decoration: line-through;  /* 过期数据划除显示 */
}

优先级注意:属性选择器优先级与类选择器相同,低于ID选择器。建议结合浏览器开发者工具验证样式覆盖关系。

3. 常用样式属性

3.1 颜色(Color)

css
h1 {
    color: red; /* 颜色名称 */
    color: #ff0000; /* 十六进制颜色 */
    color: rgb(255, 0, 0); /* RGB 颜色 */
}

3.2 字体(Font)

属性作用
font-size字体大小
font-weight字体粗细(bold、normal)
font-style斜体(italic)
font-family字体

示例

css
p {
    font-size: 18px;
    font-weight: bold;
    font-style: italic;
    font-family: Arial, sans-serif;
}

3.3 背景(Background)

属性作用
background-color背景颜色
background-image背景图片
background-size背景大小(cover、contain)

示例

css
body {
    background-color: #f0f0f0;
    background-image: url('background.jpg');
    background-size: cover;
  
}

3.4 边框(Border)

css
div {
    border: 2px solid black;
    border-radius: 10px; /* 圆角 */
}
关键字作用
solid实线
dashed虚线
dotted点状线

3.5 内外边距(Margin & Padding)

属性作用
margin设置外边距
padding设置内边距

示例

css
div {
    margin: 20px;
    padding: 10px;
}

4. 课后练习

4.1 实践任务

  1. 创建一个 HTML 页面并使用 CSS 样式

- 让`<h1>` 变红色

- 让`<p>` 变蓝色

- 添加一个带背景图片的`<div>`

- 给`<a>` 添加鼠标悬停变色效果
  1. 选择器练习

    • 使用 类选择器 让多个元素共享样式
    • 使用 ID 选择器 定义唯一样式
    • 使用 后代选择器 让 div 内的 p 变紫色
  2. 思考题

    • 为什么建议使用外部 CSS 而不是内联 CSS?
    • 类选择器和 ID 选择器的区别是什么?
    • 伪类 :hover 可以用于哪些 HTML 元素?

5. 总结

CSS 通过不同方式引入,外部 CSS 最推荐

使用选择器可以灵活地应用样式

常用样式包括颜色、字体、背景、边框、内外边距

伪类可以用于用户交互,如 :hover 和 :focus

📌 下一步:学习 CSS 布局(盒模型、浮动、定位、Flexbox)