【CSS】入门详解

你是否曾经浏览网页时,被一些网站精美的布局、炫酷的动画和赏心悦目的色彩所吸引?这背后神奇的力量就是 CSS(层叠样式表)。CSS 就像网页的化妆师,它负责网页的样式和布局,让原本枯燥的 HTML 结构变得生动有趣。

一、什么是 CSS?

CSS 是一种用于描述网页呈现方式的样式表语言。它控制着网页的布局、字体、颜色、背景、动画等等。通过 CSS,你可以将网页的内容和样式分离,使得网页更易于维护和修改。

二、如何使用 CSS?

CSS 可以通过三种方式添加到 HTML 文档中:

  • 内联样式 (Inline Styles): 直接在 HTML 标签内使用 style 属性。

    <p style="color: blue; font-size: 18px;">这段文字是蓝色的,字体大小为 18px。</p>
    • 优点: 修改方便快捷,作用范围精确到单个元素。

    • 缺点: 不利于代码复用,难以维护,不推荐大规模使用。

    • 优先级: 最高

  • 内部样式表 (Internal Stylesheet): 在 HTML 文档的 <head> 部分使用 <style> 标签。

    <head>
      <style>
        p {
          color: green;
          font-weight: bold;
        }
      </style>
    </head>
    <body>
      <p>这段文字是绿色的,并且加粗。</p>
    </body>
    • 优点: 适用于单个页面的样式定义,比内联样式更容易管理。

    • 缺点: 不能跨页面复用。

    • 优先级: 中等

  • 外部样式表 (External Stylesheet): 创建一个独立的 CSS 文件 (例如 style.css),然后在 HTML 文档的 <head> 部分使用 <link> 标签链接到该文件。

    <head>
      <link rel="stylesheet" href="style.css">
    </head>
    /* style.css */
    p {
      color: red;
      font-style: italic;
    }
    • 优点: 最常用也最推荐,可以实现样式的复用,方便维护和管理,易于团队协作。

    • 缺点: 需要额外加载 CSS 文件。

    • 优先级: 最低

三、CSS 的基本语法

CSS 规则由选择器和声明块组成。

  • 选择器 (Selector): 指示要样式化的 HTML 元素。

  • 声明块 (Declaration Block): 包含一个或多个声明,每个声明由属性和值组成,用冒号分隔,以分号结尾。

/* 选择器 { 属性: 值; 属性: 值; ... } */
h1 {
  color: blue;  /* 文本颜色为蓝色 */
  font-size: 36px; /* 字体大小为 36 像素 */
}

四、CSS 选择器优先级详解

当多个 CSS 规则应用于同一个 HTML 元素时,最终应用的样式取决于选择器的优先级。 优先级可以理解为一个计分系统,分数越高,优先级越高。

  1. !important: 拥有最高的优先级,会覆盖所有其他样式。 慎用! 过度使用会使 CSS 难以维护。

  2. 内联样式: 优先级仅次于 !important。

  3. ID 选择器 (#id): 例如 #myElement。

  4. 类选择器 (.class)、属性选择器 ([attribute])、伪类 (:pseudo-class): 例如 .highlight, [type="text"], :hover。

  5. 元素选择器 (element) 和伪元素 (::pseudo-element): 例如 p, div, ::before。

  6. 通配符选择器 (*): 优先级最低。

五、计算优先级

可以将选择器的优先级表示为四个数字 (a, b, c, d):

  • a: 如果声明中有 !important,则 a = 1,否则 a = 0。

  • b: ID 选择器的数量。

  • c: 类选择器、属性选择器和伪类的数量。

  • d: 元素选择器和伪元素的数量。

比较两个选择器的优先级时,从左到右依次比较 a、b、c、d 的值。 哪个数字先出现更大的值,哪个选择器的优先级就更高。

示例

<div id="myDiv" class="highlight">
  <p>This is a paragraph.</p>
</div>
#myDiv p { color: red; }  /* (0, 1, 0, 1) */
div.highlight p { color: green; } /* (0, 0, 1, 1) */
p { color: blue; } /* (0, 0, 0, 1) */

最终段落文字颜色为红色,因为 #myDiv p 的优先级最高。

六、案例

为了更好地理解 CSS 的应用,我们来看一个具体的案例。我们将创建一个简单的网页,包含一个标题、一个段落和一个按钮,并使用 CSS 设置它们的样式。

HTML 结构 (index.html)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS 入门案例</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <h1>欢迎来到我的网页</h1>
  </header>
  <main>
    <p>这是一段简单的文本,我们将使用 CSS 设置它的样式。</p>
    <button>点击我</button>
  </main>
</body>
</html>

CSS 样式 (style.css)

/* 全局样式 */
body {
  font-family: sans-serif;
  margin: 0;
  padding: 20px;
  background-color: #f4f4f4;
}

/* 标题样式 */
h1 {
  color: #333;
  text-align: center;
  margin-bottom: 30px;
}

/* 段落样式 */
p {
  font-size: 18px;
  line-height: 1.6;
  color: #666;
}

/* 按钮样式 */
button {
  background-color: #007bff;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer; /* 鼠标悬停时显示小手 */
  transition: background-color 0.3s ease; /* 添加过渡效果 */
}

button:hover {
  background-color: #0056b3; /* 鼠标悬停时改变背景颜色 */
}

/*  媒体查询示例,当屏幕宽度小于 768px 时应用 */
@media (max-width: 768px) {
  body {
    padding: 10px;
  }
  h1 {
    font-size: 24px;
  }
}

代码解释:

  • body 选择器: 设置了全局字体、去除默认外边距、添加内边距和背景颜色。

  • h1 选择器: 设置了标题颜色、居中对齐和底部外边距。

  • p 选择器: 设置了段落字体大小、行高和颜色。

  • button 选择器: 设置了按钮的背景颜色、文本颜色、内边距、去除边框、设置圆角边框、鼠标样式和过渡效果。

  • button:hover 伪类选择器: 设置鼠标悬停在按钮上时的样式,改变背景颜色。

  • @media (max-width: 768px): 这是一个媒体查询的例子,当屏幕宽度小于 768px 时,会应用其中的样式,例如调整 body 的内边距和 h1 的字体大小,以适应 smaller screens.

运行结果:

学习要点:

  • 选择器的使用: 这个例子使用了元素选择器 (body, h1, p, button) 和伪类选择器 (button:hover)。

  • CSS 属性: 学习了常用的 CSS 属性,例如 color, font-size, background-color, margin, padding, border, border-radius, cursor, transition 等.

  • 层叠性: 如果在 HTML 中使用内联样式,它会覆盖 CSS 文件中的样式。

  • 优先级: 理解不同选择器的优先级,例如 button:hover 的优先级高于 button。

  • 响应式设计: 通过媒体查询 @media 可以根据不同的屏幕尺寸应用不同的样式。

通过这个案例,你可以更直观地理解 CSS 的使用方法和效果。 建议你动手修改 CSS 代码,尝试不同的属性和值,观察它们对页面样式的影响。 不断练习才能更好地掌握 CSS 的技巧。

总结

CSS 是网页开发中不可或缺的一部分。学习 CSS 可以让你更好地控制网页的样式和布局,打造更美观的用户体验。希望本文能帮助你更好地入门 CSS,开启你的网页设计之旅!下期见,谢谢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/903348.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文分享】HashGAT-VCA:一种结合哈希函数和图注意力网络的矢量元胞自动机模型,用于城市土地利用变化模拟

本文考虑地块内部异质性&#xff0c;提出一个结合哈希函数和图注意力网络&#xff08;GAT&#xff09;的矢量元胞自动机&#xff08;VCA&#xff09;方法&#xff0c;用于研究城市土地利用变化&#xff1b;并将该模型应用于模拟深圳市2009年至2012年的城市土地利用变化&#xf…

二十、Innodb底层原理与Mysql日志机制深入剖析

文章目录 一、MySQL的内部组件结构1、Server层1.1、连接器1.2、查询缓存1.3、分析器1.4、优化器1.5、执行器 2、存储引擎层 二、Innodb底层原理与Mysql日志机制1、redo log重做日志关键参数2、binlog二进制归档日志2.1、binlog日志文件恢复数据 3、undo log回滚日志4、错误日志…

安全芯片 OPTIGA TRUST M 使用介绍与示例(基于STM32裸机)

文章目录 目的资料索引硬件电路软件框架介绍数据存储框架移植框架使用 使用示例示例地址与硬件连接通讯测试功能测试 总结 目的 OPTIGA TRUST M 是英飞凌推出的安全芯片&#xff0c;芯片通提供了很多 slot &#xff0c;用于存放各类安全证书、密钥、用户数据等&#xff0c;内置…

10. NSTableView Table 数据表格

表格是非常重要和复杂的一个控件&#xff0c;本节会用大量篇幅来把表格这东西力求讲清楚。 基本设置 表格结构 表格是 OS X 组件中为数不多采用了MVC设计模式来实现的控件&#xff0c;即tableView–dataSource–Delegate&#xff0c;这种分层架构给处理数据带来了极大的便利…

控制流与循环:掌握程序的基本控制(2/10)

目录 控制流与循环&#xff1a;掌握程序的基本控制&#xff08;2/10&#xff09; 介绍 条件语句 基本用法 示例&#xff1a;判断用户输入的数字 条件语句中的逻辑运算符 示例&#xff1a;判断年龄阶段 循环结构 for 循环 示例 1&#xff1a;遍历列表 示例 2&#xf…

Python酷库之旅-第三方库Pandas(173)

目录 一、用法精讲 796、pandas.Float32Dtype类 796-1、语法 796-2、参数 796-3、功能 796-4、返回值 796-5、说明 796-6、用法 796-6-1、数据准备 796-6-2、代码示例 796-6-3、结果输出 797、pandas.Float64Dtype类 797-1、语法 797-2、参数 797-3、功能 797-…

linux查看系统架构的命令

两种方式&#xff0c;以下以中标麒麟为示例&#xff1a; 1.cat /proc/verison Linux version 3.10.0-862.ns7_4.016.mips64el mips64el即为架构 2.uname -a 输出所有内容 Linux infosec 3.10.0-862.ns7_4.016.mips64el #1 SMP PREEMPT Mon Sep 17 16:06:31 CST 2018 mips64el…

第J8周:Inception v1算法实战与解析

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营]中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊]** &#x1f4cc; 本周任务&#xff1a; 1了解并学习图2中的卷积层运算量的计算过程&#xff08;&#x1f3d0;储备知识->卷积层运算…

内网穿透之网络层ICMP隧道

免责申明 本文仅是用于学习检测自己搭建的靶场环境有关ICMP隧道原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规…

提升网站流量和自然排名的SEO基本知识与策略分析

内容概要 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;成为加强网站可见度和提升流量的重要工具。SEO的基础知识包括理解搜索引擎的工作原理&#xff0c;以及如何通过优化网站内容和结构来提高自然排名。白帽SEO和黑帽SEO代表了两种截然不同的策略&a…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-27

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-27 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-27目录1. Large Language Model-based Augmentation for Imbalanced Node Classification on Text-Attributed Graphs摘要研究背…

耳背式助听器与定制式助听器,究竟该如何选?

在面对听力损失问题时&#xff0c;选择一款合适的助听器至关重要。目前&#xff0c;耳背式助听器和定制式助听器是比较常见的两种类型&#xff0c;很多人在二者之间犹豫不决。那么&#xff0c;到底应该怎么选呢&#xff1f; 一、耳背式助听器的特点 耳背式助听器形状类似香蕉&a…

论文阅读 - Pre-trained Online Contrastive Learning for Insurance Fraud Detection

Pre-trained Online Contrastive Learning for Insurance Fraud Detection| Proceedings of the AAAI Conference on Artificial Intelligence 目录 摘要 Introduction Methodology Problem Formulation Pre-trained Model for Enhanced Robustness Detecting Network a…

【STM32】程序建立模板

文章目录 STM32的开发方式建立基于库函数的工程建立工程的具体步骤具体程序举例工程架构 本篇介绍如何建立一个STM32工程 STM32工程结构比较复杂&#xff0c;需要用到的文件很多&#xff0c;并且程序代码也都是建立在工程结构的基础之上&#xff0c;所以学习如何新建一个STM32工…

Oracle视频基础1.1.4练习

1.1.4 dbb,ddabcPMON,SMON,LGWR,CKPT,DBWna5,b4,c2,d3,e1ad,a,c,b,eOracle instance,Oracle databaseSGA,background processcontrol file,data file,online redo file 以下是一篇关于 Oracle 基础习题 1.1.4 的博客&#xff1a; Oracle 基础习题解析&#xff1a;1.1.4 本篇文…

UE5 喷射背包

首选创建一个输入操作 然后在输入映射中添加&#xff0c;shift是向上飞&#xff0c;ctrl是向下飞 进入人物蓝图中编写逻辑&#xff0c;变量HaveJatpack默认true&#xff0c;Thrust为0 最后

linux进程的状态

​​​​​​​linux进程的概念 上篇我们学习了进程的概念&#xff0c;这篇我们将学习进程的状态 目录 前言 一、子进程和父进程 1、pid和ppid 2、通过系统调用创建进程-fork初识 二、进程的状态 1.Linux内核源代码 2.进程状态查看 3、Z(zombie)-僵尸进程 ​编辑 僵尸…

Linux下docker中elasticsearch与kibana的安装

他的脸红不是因为亚热带季风气候&#xff0c;而是因为那天太阳不忠&#xff0c;出卖一九九四年夏末心动。–《太平山顶》 在本篇博客中&#xff0c;我将详细介绍如何在 Linux 系统中安装并配置 Elasticsearch 和 Kibana&#xff0c;这两者是 ELK 堆栈的重要组成部分&#xff0c…

密钥管理方法DUKPT的OpenSSL代码实现Demo

目录 1 DUKPT简介 2 基本概念 2.1 BDK 2.2 KSN 2.3 IPEK 2.4 FK 2.5 TK 3 工作流程 3.1 密钥注入过程 3.2 交易过程 3.3 BDK派生IPEK过程 3.4 IPEK计算FK过程 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 5 在线工具 6 标准下载 1 DUKPT简介 DUKPT&a…

DEVOPS: 集群伸缩原理

概述 阿里云 K8S 集群的一个重要特性&#xff0c;是集群的节点可以动态的增加或减少有了这个特性&#xff0c;集群才能在计算资源不足的情况下扩容新的节点&#xff0c;同时也可以在资源利用 率降低的时候&#xff0c;释放节点以节省费用理解实现原理&#xff0c;在遇到问题的…