当前位置:首页 > 技术 > 正文内容

CSS 样式设计入门

访客 技术 2026年6月27日 1

什么是 CSS

CSS(层叠样式表)用于定义 HTML 元素的视觉表现。它将内容结构与外观展示分离,使网页布局更灵活、维护更高效。

通过外部样式文件,可统一管理多个页面的视觉风格,显著提升开发效率。

为何需要样式系统

早期 HTML 主要用于语义标记,如标题、段落等。但随着浏览器不断引入格式化标签(如字体、颜色),内容与表现逐渐混杂。

为解决这一问题,W3C 推出标准样式机制。现代浏览器均支持多层级样式规则,实现结构与表现解耦。

样式优先级规则

当同一元素被多重规则影响时,采用以下优先级顺序:

  1. 内联样式(直接写在标签中)
  2. 内部样式(位于 <head> 内 <style> 块)
  3. 外部样式表(链接的 .css 文件)
  4. 浏览器默认样式

内联样式拥有最高控制权,可覆盖其他所有定义。

CSS 基本语法结构

selector {
  property: value;
  property: value;
}

示例:设置标题文字颜色和大小

h1 {
  color: #ff0000;
  font-size: 16px;
}

选择器指定目标元素;属性-值对定义具体样式。

值的表达方式

颜色可用多种形式表示:

  • 英文名称:red
  • 十六进制:#ff0000
  • 缩写:#f00
  • RGB:rgb(255,0,0)
  • 百分比:rgb(100%,0%,0%)

注意:数值为 0 时无需单位,如 margin: 0;

引号与分号使用规范

若值包含多个单词,需加引号:

p { font-family: "Arial Black"; }

每条声明末尾建议加分号,避免后续增删时出错:

p {
  text-align: center;
  color: blue;
}

空格与大小写处理

空格不影响解析结果,但有助于可读性:

body {
  color: #000;
  background: #fff;
  margin: 0;
  padding: 0;
  font-family: Georgia, Palatino, serif;
}

CSS 对大小写不敏感,但类名和 ID 名在 HTML 中区分大小写。

选择器组合应用

多个选择器可共享相同样式:

h1, h2, h3, h4 {
  font-weight: bold;
  color: #333;
}

简化重复规则,提高维护性。

继承机制与控制

子元素会自动继承父元素的某些样式,如字体族:

body {
  font-family: "Microsoft YaHei", sans-serif;
}

但可通过新规则覆盖继承行为:

p {
  font-family: Times New Roman, serif;
}

上下文选择器(派生选择器)

根据元素嵌套关系定义样式:

li strong {
  font-style: italic;
  font-weight: normal;
}

仅作用于列表项内的强调文本,无需额外 class。

ID 选择器

以井号(#)开头,唯一标识一个元素:

#sidebar {
  border: 1px solid #ccc;
  padding: 15px;
}

每个文档中只能有一个同名 ID。

ID 与派生结合

利用 ID 构建特定区域的样式规则:

#sidebar p {
  text-align: right;
  font-style: italic;
}

#sidebar h2 {
  font-size: 1.1em;
  color: #0066cc;
}

仅应用于特定容器内的元素。

独立使用 ID 选择器

即使不作为派生基础,也可单独定义:

#header {
  height: 80px;
  background: url("bg-header.jpg");
}

注意:旧版 IE 可能要求明确指定元素类型,如 div#header

类选择器(Class Selector)

以点号(.)开头,可被多个元素复用:

.highlight {
  background-color: yellow;
  font-weight: bold;
}

HTML 中通过 class 属性应用:

<p class="highlight">重要信息</p>

类名首字符不能是数字,否则在部分浏览器中无效。

类作为派生条件

限制样式作用范围:

.menu td {
  padding: 5px;
  border: 1px solid #ddd;
}

仅影响带有 .menu 类的表格单元。

元素与类联合选择

精确匹配元素类型与类名:

td.fancy {
  color: #f60;
  background: #666;
}

只对具有 fancy 类的 <td> 元素生效,不受其他元素影响。

属性选择器

针对特定属性的元素进行样式设定:

支持条件匹配,适用于无 id 或 class 的表单控件。

存在属性匹配

[title] {
  color: red;
}

所有含 title 属性的元素都将变为红色。

属性值精确匹配

[title="W3School"] {
  border: 5px solid blue;
}

仅当属性值完全等于指定内容时才生效。

属性值部分匹配

[title~=hello] {
  color: red;
}

[lang|=en] {
  color: red;
}

~ 表示空格分隔的值中包含目标词;|= 表示以指定前缀开始(如 en-us)。

表单样式实例

input[type="text"] {
  width: 150px;
  margin-bottom: 10px;
  background: #fff;
  font-family: Arial, sans-serif;
}

input[type="button"] {
  width: 120px;
  margin-left: 35px;
  font-family: Arial, sans-serif;
}

无需额外类名即可精准控制输入框外观。

三种插入方式对比

1. 外部样式表

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

适合全局统一风格,修改一处即可更新整站。

2. 内部样式表

<style type="text/css">
  body { background: #eee; }
</style>

适用于单页特殊需求,避免污染全局。

3. 内联样式

<p style="color: red; margin: 10px;">内容</p>

仅限一次性使用,破坏样式可维护性,应尽量避免。

多重样式叠加规则

当不同来源的规则冲突时,优先采用更具体的定义:

/* 外部样式表 */
h3 {
  color: red;
  text-align: left;
  font-size: 8pt;
}

/* 内部样式表 */
h3 {
  text-align: right;
  font-size: 20pt;
}

最终效果:颜色取外部,对齐与大小取内部。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。