当前位置: 首页 > news >正文

HTML 中的 CSS 使用说明

CSS 使用说明

1. CSS 概述

CSS (Cascading Style Sheets) 是一种用于描述 HTML 或 XML(包括如 SVG、MathML 等 XML 方言)文档呈现的样式表语言。CSS 描述了元素应该如何在屏幕、纸张或其他媒体上显示。

2. CSS 的基本语法

CSS 规则由两个主要部分组成:选择器和声明块。

选择器 { 属性:; 属性:; ... }

例如:

p { color: red; font-size: 16px; }

3. CSS 引入方式

3.1 内联样式(Inline Style)

直接在 HTML 元素的 style 属性中定义 CSS。

<p style="color: red; font-size: 16px;">这是红色文本</p>

3.2 内部样式表(Internal Style Sheet)

在 HTML 文档的 <head> 部分使用 <style> 标签定义 CSS。

<head><style>p { color: red; font-size: 16px; }</style>
</head>

3.3 外部样式表(External Style Sheet)

创建单独的 .css 文件,然后在 HTML 中通过 <link> 标签引入。

<head><link rel="stylesheet" href="styles.css">
</head>

4. 选择器

4.1 基本选择器

  • 元素选择器:选择特定类型的元素

    p { color: blue; }
    
  • ID 选择器:选择具有特定 ID 的元素(ID 是唯一的)

    #header { background-color: gray; }
    
  • 类选择器:选择具有特定类的元素

    .container { width: 100%; }
    
  • 通用选择器:选择所有元素

    * { margin: 0; padding: 0; }
    

4.2 组合选择器

  • 后代选择器:选择元素内的所有后代元素

    div p { color: green; }
    
  • 子选择器:选择元素的直接子元素

    div > p { color: purple; }
    
  • 相邻兄弟选择器:选择紧接在另一个元素后的元素

    p + ul { margin-top: 10px; }
    
  • 通用兄弟选择器:选择在另一个元素后的所有兄弟元素

    p ~ ul { margin-left: 20px; }
    

4.3 属性选择器

选择具有特定属性或属性值的元素

[href] { color: blue; }
[href="https://example.com"] { color: green; }
[class^="box-"] { border: 1px solid black; }
[class$="-active"] { background-color: yellow; }

4.4 伪类和伪元素

  • 伪类:选择处于特定状态的元素

    a:hover { color: red; }
    p:first-child { font-weight: bold; }
    input:focus { border: 2px solid blue; }
    
  • 伪元素:选择元素的特定部分

    p::first-line { font-size: 120%; }
    p::before { content: "• "; }
    p::after { content: " ..."; }
    

5. 常用 CSS 属性

5.1 文本相关

  • color:设置文本颜色
  • font-family:设置字体类型
  • font-size:设置字体大小
  • font-weight:设置字体粗细
  • text-align:设置文本对齐方式(left、right、center、justify)
  • text-decoration:设置文本装饰(none、underline、overline、line-through)
  • line-height:设置行高

5.2 背景相关

  • background-color:设置背景颜色
  • background-image:设置背景图片
  • background-repeat:设置背景图片是否重复
  • background-position:设置背景图片位置
  • background-size:设置背景图片大小

5.3 盒模型相关

  • widthheight:设置元素的宽度和高度
  • margin:设置元素外部边距
  • padding:设置元素内部填充
  • border:设置元素边框
  • box-sizing:设置盒模型计算方式(content-box、border-box)

5.4 定位相关

  • position:设置元素定位方式(static、relative、absolute、fixed、sticky)
  • toprightbottomleft:设置元素的偏移量
  • display:设置元素的显示类型(block、inline、inline-block、none 等)
  • float:设置元素的浮动方式(left、right、none)
  • clear:清除浮动(left、right、both、none)

5.5 其他常用属性

  • opacity:设置元素透明度
  • cursor:设置鼠标指针样式
  • z-index:设置元素的堆叠顺序
  • overflow:设置元素溢出内容的处理方式

6. CSS 盒模型

CSS 盒模型是 CSS 布局的基础,它由以下部分组成:

  1. 内容区域(content):显示实际内容的部分
  2. 内边距(padding):内容与边框之间的空白
  3. 边框(border):围绕内边距的边界
  4. 外边距(margin):元素与其他元素之间的空白

盒模型示意图

.box {width: 300px;height: 200px;padding: 20px;border: 5px solid black;margin: 15px;box-sizing: border-box; /* 设置为 border-box 时,width/height 包含 padding 和 border */
}

7. CSS 布局技术

7.1 Flexbox(弹性盒子)

Flexbox 是一种一维布局模型,用于创建灵活的布局结构。

.container {display: flex;flex-direction: row; /* row | row-reverse | column | column-reverse */justify-content: space-between; /* flex-start | flex-end | center | space-between | space-around */align-items: center; /* stretch | flex-start | flex-end | center | baseline */flex-wrap: wrap; /* nowrap | wrap | wrap-reverse */
}

7.2 Grid(网格布局)

Grid 是一种二维布局模型,可同时处理行和列。

.container {display: grid;grid-template-columns: 1fr 1fr 1fr; /* 创建3个等宽列 */grid-template-rows: 100px 200px; /* 创建2行,高度分别为100px和200px */grid-gap: 10px; /* 网格项之间的间距 */
}

7.3 响应式设计

使用媒体查询(Media Queries)创建适应不同屏幕尺寸的布局。

/* 当屏幕宽度小于 768px 时应用的样式 */
@media (max-width: 768px) {.container {flex-direction: column;}.sidebar {display: none;}
}

8. CSS 优先级和继承

8.1 优先级

当多个选择器应用于同一个元素时,CSS 会按照以下优先级顺序应用样式:

  1. 内联样式(style 属性)
  2. ID 选择器
  3. 类选择器、属性选择器、伪类
  4. 元素选择器、伪元素
  5. 通用选择器

可以使用 !important 覆盖任何样式,但应谨慎使用。

8.2 继承

某些 CSS 属性会从父元素继承到子元素,如 colorfont-family 等。
可以使用 inheritinitialunset 控制属性的继承行为。

div {color: red; /* 所有子元素默认会继承这个颜色 */
}p {color: inherit; /* 显式继承父元素的颜色 */
}span {color: initial; /* 使用属性的初始值 */
}

9. CSS 变量(自定义属性)

CSS 变量允许您定义可重用的值,有助于维护和主题化。

:root {--primary-color: #3498db;--secondary-color: #2ecc71;--spacing-unit: 16px;
}.header {background-color: var(--primary-color);padding: var(--spacing-unit);
}.button {background-color: var(--secondary-color);margin: calc(var(--spacing-unit) * 2);
}

10. 最佳实践

  1. 组织和维护

    • 使用有意义的选择器名称
    • 按逻辑分组相关样式
    • 使用注释解释复杂样式
    • 考虑使用 CSS 预处理器(如 Sass、Less)提高代码可维护性
  2. 性能优化

    • 减少选择器的复杂性
    • 避免过度使用 !important
    • 合并和压缩 CSS 文件
    • 使用 CSS 变量代替重复值
  3. 可访问性

    • 确保文本与背景的对比度符合 WCAG 标准
    • 避免依赖颜色来传达信息
    • 确保交互元素有适当的状态指示(hover、focus 等)
  4. 响应式设计

    • 使用相对单位(如 em、rem、%、vh、vw)
    • 采用移动优先的设计方法
    • 使用媒体查询适配不同设备
    • 测试不同屏幕尺寸下的布局

11. 示例代码

以下是一个综合示例,展示了 CSS 的多种用法:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS 示例</title><style>/* CSS 变量定义 */:root {--primary-color: #3498db;--text-color: #333;--background-color: #f5f5f5;--border-radius: 8px;--spacing: 20px;}/* 重置默认样式 */* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: 'Arial', sans-serif;color: var(--text-color);background-color: var(--background-color);line-height: 1.6;}.container {max-width: 1200px;margin: 0 auto;padding: var(--spacing);}header {background-color: var(--primary-color);color: white;padding: calc(var(--spacing) * 1.5);text-align: center;border-radius: var(--border-radius) var(--border-radius) 0 0;}nav {background-color: white;padding: var(--spacing);box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}nav ul {display: flex;list-style: none;gap: var(--spacing);}nav a {text-decoration: none;color: var(--text-color);padding: 8px 16px;border-radius: 4px;transition: background-color 0.3s;}nav a:hover {background-color: var(--background-color);}.main-content {display: grid;grid-template-columns: 2fr 1fr;gap: var(--spacing);margin: var(--spacing) 0;}article {background-color: white;padding: var(--spacing);border-radius: var(--border-radius);box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}aside {background-color: white;padding: var(--spacing);border-radius: var(--border-radius);box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}footer {background-color: #2c3e50;color: white;text-align: center;padding: var(--spacing);border-radius: 0 0 var(--border-radius) var(--border-radius);}/* 响应式设计 */@media (max-width: 768px) {.main-content {grid-template-columns: 1fr;}nav ul {flex-direction: column;}}</style>
</head>
<body><div class="container"><header><h1>CSS 示例页面</h1></header><nav><ul><li><a href="#">首页</a></li><li><a href="#">关于我们</a></li><li><a href="#">联系我们</a></li></ul></nav><div class="main-content"><article><h2>主要内容</h2><p>这是一个使用 CSS 布局的示例页面。</p></article><aside><h3>侧边栏</h3><p>这里是侧边栏内容。</p></aside></div><footer><p>&copy; 2023 CSS 示例。保留所有权利。</p></footer></div>
</body>
</html>

12. 学习资源

  • MDN Web Docs - CSS
  • CSS-Tricks
  • W3Schools CSS 教程
  • CSS Diner - 学习 CSS 选择器的游戏
  • Flexbox Froggy - 学习 Flexbox 的游戏
  • Grid Garden - 学习 Grid 布局的游戏

文章转载自:

http://T8AIxvRS.LsmgL.cn
http://Jerlx7MA.LsmgL.cn
http://AXihm5CR.LsmgL.cn
http://xeJWtt4W.LsmgL.cn
http://AHdfksaN.LsmgL.cn
http://epyiqAbQ.LsmgL.cn
http://8ziDHd8F.LsmgL.cn
http://Khyz1qt9.LsmgL.cn
http://ovl3FwXA.LsmgL.cn
http://iocV46NR.LsmgL.cn
http://lMpHsuBX.LsmgL.cn
http://y3zRV8ys.LsmgL.cn
http://iMJ3dQZy.LsmgL.cn
http://oyGhu26n.LsmgL.cn
http://NBk9yAEi.LsmgL.cn
http://Op2kVCXp.LsmgL.cn
http://Gc3weFTo.LsmgL.cn
http://CHKSmXWL.LsmgL.cn
http://KfJUyH8J.LsmgL.cn
http://qzdi0igt.LsmgL.cn
http://pkhtge24.LsmgL.cn
http://cImoFTnl.LsmgL.cn
http://FoIYGsEL.LsmgL.cn
http://gJHOXeGV.LsmgL.cn
http://OkS2Zw2u.LsmgL.cn
http://OpjzQi7k.LsmgL.cn
http://nokB0TJt.LsmgL.cn
http://641kMFep.LsmgL.cn
http://ff3QO785.LsmgL.cn
http://WSNDHU9h.LsmgL.cn
http://www.dtcms.com/a/371438.html

相关文章:

  • STEM背景下人工智能素养框架的研究
  • 音频驱动数字人人脸模型
  • 深入理解 `std::string_view`:现代 C++ 中的高效字符串处理工具
  • [论文阅读] 人工智能 + 软件工程 | 首个仓库级多任务调试数据集!RepoDebug揭秘LLM真实调试水平
  • 数据结构:单链表以及链表题
  • 谷歌Genie 3:让你的照片变成可以玩的游戏世界
  • 如何终止画图
  • shell脚本练习
  • Coze源码分析-资源库-删除插件-前端源码-总结
  • 【AI论文】门控联想记忆:一种用于高效序列建模的并行O(N)架构
  • 服务器请求伪造ssrf
  • TDengine 选择函数 TOP
  • 计算机的排序方法
  • C#测试调用OpenXml操作word文档的基本用法
  • c#中public类比博图
  • linux C 语言开发 (四) linux系统常用命令
  • Docker启动失败 Failed to start Docker Application Container Engine.
  • scikit-learn/sklearn学习|广义线性回归损失函数的基本表达式
  • 2025年AI PPT必修课-汇报中AI相关内容的“陷阱”与“亮点”
  • RabbitMQ 教程
  • 【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ
  • 硬件-电容学习DAY4——电容选型全攻略:从原理到实战
  • RabbitMQ--延时队列总结
  • 开放式LLM的崛起:未来已至
  • 驱动物流创新与协同,助力物流行业可持续发展的智慧物流开源了
  • GitHub 热榜项目 - 日榜(2025-09-07)
  • 定制开发开源AI智能名片S2B2C商城小程序的优势与局限性分析
  • 开源 C++ QT Widget 开发(十三)IPC通讯--本地套接字 (Local Socket)
  • win10(三)视频剪裁
  • ELK 平台入门与架构设计