【CSS】入门详解

news2024/11/30 11:40:49

你是否曾经浏览网页时,被一些网站精美的布局、炫酷的动画和赏心悦目的色彩所吸引?这背后神奇的力量就是 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,开启你的网页设计之旅!下期见,谢谢~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AttributeError: module ‘pandas‘ has no attribute ‘datetime‘

今天在进行时间序列问题处理时候&#xff0c;发生如下报错&#xff1a; AttributeError: module pandas has no attribute datetime 因为在新的pands版本中pandas已不再支持datetime模块。 from datetime import datetime 需要导入datetime库。 原代码&#xff1a; impor…

2025选题|基于Hadoop的物品租赁系统的设计与实现

作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参与学生毕业答辩指导&#xff0c;…

《虚拟现实的边界:探索虚拟世界的未来可能》

内容概要 在虚拟现实&#xff08;VR&#xff09;技术的浪潮中&#xff0c;我们见证了其从实验室的奇想逐渐走向日常生活的非凡旅程。技术发展的背后是不断突破的创新&#xff0c;早期的设备虽然笨重&#xff0c;但如今却趋向精致、轻巧&#xff0c;用户体验显著提升。想象一下…

【MySQL】视图特性 用户管理

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是视图&#xff0c;我们又该如何管理用户。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! >…

旧衣物回收小程序开发,线上线下相结合

当下&#xff0c;绿色发展是重中之重&#xff0c;旧衣回收作为一件利国利民的模式&#xff0c;在发展中深受大众欢迎。随着大众生活水平的提高&#xff0c;家中闲置的衣物逐年增加&#xff0c;这也为旧衣回收市场发展提供了广阔的发展前景&#xff0c;为入局者和创业者提供新的…

keepalived+web 实现双机热备

环境&#xff1a;利用keeplived实现web服务器的双机热备(高可用) 注意&#xff1a; (1) 利用keeplivedweb做双击热备&#xff08;高可用&#xff09;&#xff0c;最少需要两台服务器&#xff0c;可以实现多域名对应一个VIP,并且访问不同域名&#xff0c;显示不同主页&#xf…

a50股指期货是什么意思?

首先&#xff0c;股指期货&#xff0c;顾名思义&#xff0c;就是以股票指数为标的的期货合约。啥是期货呢&#xff1f;简单来说&#xff0c;就是现在约定好价格&#xff0c;将来某个时间再交易的东西。而A50股指期货&#xff0c;就是以A50指数为标的的期货合约。 A50指数&…

理解UUID 无序性对数据存储的影响

文章目录 背景问题1,移动数据问题2,频繁的页分裂背景 如果以UUID为主键,对于mysql 可能存在的问题。 问题1,移动数据 从上图来看,如果UUID是随机的话,以0012,0021 这个节点来说,如果插入的是0015,相当于要把16到21的数据向后移动一个位置,如果是自增的话,只会在尾…

HarmonyOS ArkTS与C++数据类型转换

1. HarmonyOS ArkTS与C数据类型转换 本文介绍了C与TS各自数据类型与互相之间的数据类型转换&#xff0c;在需要使用C模块时可以快速上手对各种数据类型进行转换。 1.1. 概述 HarmonyOS的主力开发语言是ArkTS&#xff0c;也提供了C语言的支持&#xff0c;对于一些能力&#xff…

Docker:容器

Docker&#xff1a;容器 容器容器命令docker psdocker createdocker startdocker rundocker logsdocker execdocker stopdocker restartdocekr rmdocker killdocker pausedocker unpausedocker commitdocker cpdocker diffdocker exportdocker importdocker renamedocker stats…

Es环境搭建 ▎kibana组件 ▎ik分词器 ▎idea继承Es ▎idea中Es操作

目录 安装Es 安装Es可视化界面(elasticsearch-head) elasticsearch-head安装: 安装可视化Kibana组件 汉化kibana ​编辑 启动服务器: 安装ik分词器插件 Idea继承Es 索引库操作 文档操作 安装Es Es下载地址: ES下载地址https://www.elastic.co/cn/downloads/elasticsea…

苏州金龙技术创新赋能旅游新质生产力

2024年10月23日&#xff0c;备受瞩目的“2024第六届旅游出行大会”在云南省丽江市正式开幕。作为客车行业新质生产力标杆客车&#xff0c;苏州金龙在大会期间现场展示了新V系V12商旅版、V11和V8E纯电车型&#xff0c;为旅游出行提供全新升级方案。 其中&#xff0c;全新15座V1…

SpringBoot3集成Swagger接口文档功能、接口排序以及如何设置接口页面的title/keyword/description?

一、SpringBoot3集成Swagger接口文档功能 在SpringBoot3 中集成 Swagger 接口文档&#xff0c;如果按照网上的很多提示&#xff0c;会有些问题。在这个过程中我就遇到报错&#xff1a; Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest 因…

总裁主题CeoMax-Pro主题7.6开心版

激活方式&#xff1a; 1.授权接口源码ceotheme-auth-api.zip搭建一个站点&#xff0c;绑定www.ceotheme.com域名&#xff0c;并配置任意一个域名的 SSL 证书。 2.在 hosts 中添加&#xff1a;127.0.0.1 www.ceotheme.com 3.上传class-wp-http.php到wp-includes目录&#xff…

Rust命令行,实现自动反编译Android APK包工具

Rust-CLI实现自动反编译APK Rust提供了比较好的CLI接口,可以快速的编写命令行应用, 用于日常的工具类使用。 分享一个用Rust命令行实现自动反编译Android APK包工具&#xff0c;是之前学习Rust写的一个练手小工具&#xff0c;可以快速反编译APK&#xff0c;同时也学习下用Rust…

Flutter升级与降级

升级 版本升级 // 升级到指定版本flutter upgrade 版本号// 升级到最新版本flutter upgrade 降级 1.需要先确定想要降级的版本号。 2.切换到系统安装Flutter的目录 3.在https://github.com/flutter/flutter&#xff0c;找到要回退的版本号对应的commit序号&#xff08;具…

熵与信息论

经典信息论的核心概念是香农熵。假设我们得到了一个变量X的值&#xff0c;X的香农熵量化了我们在获悉 X的值时所能得到的平均信息量&#xff1b;另一种观点是将X的看作在我们获悉的值前对其不确定程度的度量。这两种观点是互补的&#xff1b;我们既可以将看作在我们获悉X的值前…

Vue3+ts+vite自动导入vue的依赖

Vue3tsvite自动导入vue的依赖 unplugin-auto-import 主要依赖 npm i -D unplugin-auto-import// vite.config.ts import AutoImport from unplugin-auto-import/viteexport default defineConfig({plugins: [AutoImport({ imports: ["vue", "vue-router"…

研发运营一体化(DevOps)能力成熟度模型

目录 应用设计 安全风险管理 技术运 持续交付 敏捷开发管理 基于微服务的端到端持续交付流水线案例 应用设计 安全风险管理 技术运 持续交付

智慧停车场导航系统架构及反向寻车系统解决方案

一、系统概述&#xff1a; 随着当前室内定位导航技术在大型公共场所如政务中心、商业综合体、车站中的应用越来越多&#xff0c;人们对智慧停车场的需求也日益凸显出来&#xff0c;并且智慧停车场对大型公共场所智慧化的整体建设起到重要作用。如何更有效提高停车效率&#xf…