CSS基础:插入CSS样式的3种方法

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,2年时间从1800到月入过万,工作5年买房。 分享成长心得。

262篇原创内容-公众号

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

如题。CSS 样式表的作用就是当浏览器读到样式表时,它将根据 CSS 样式表中的信息来格式化 HTML 文件。

那今天就来说下 插入 CSS 样式 的 3 种方法以及延伸应用。

一、外部样式表(External Styles)

  • 外部样式表是将样式定义在一个独立的 CSS 文件中,然后通过 <link> 标签,href 属性指定样式地址,以.css 为后缀名,将其引入到 HTML 文档中。

  • 这种方式适用于多个 HTML 文档共享样式,能够实现样式的集中管理和维护。

来个案例吧。

html文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>External Styles</title>
    <link rel="stylesheet" href="css/css03.css" />
  </head>
  <body>
    <p>This is a paragraph with external styles.</p>
  </body>
</html>

css文件

/* css03.css */
p {
  color: green;
}

图片

在这个案例中,我们是在当前 html 文件,建立一个名为 css 的文件夹,并在里面建立了 css03.css 的文件,字体变成绿色的了,说明应用成功了。

二、 内部样式表(Internal Styles)

  • 内部样式表是在 HTML 文档的 <head> 标签内使用 <style> 标签定义样式的一种方式。

  • 这种方式适用于单个 HTML 文档的样式设置,能够将样式和 HTML 结构分离,但不利于多个页面的样式共享。

在下面案例中,color: blue;指定了段落文本的颜色为蓝色。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Internal Styles</title>
    <style>
      p {
        color: blue;
      }
    </style>
  </head>
  <body>
    <p>This is a paragraph with internal styles.</p>
  </body>
</html>

图片

当我们看到<style>标签时,就知道这是内部样式表的部分,它们是一种在 HTML 文档中定义样式的方法。

<style>标签内部,我们定义了一个样式规则,针对<p>标签进行了样式设置。

三、 内联样式(Inline Styles)

  • 内联样式是直接在 HTML 元素的 style 属性中定义样式的一种方式。

  • 不利于样式的复用管理。

下面是一个使用内联样式的案例,给 <body><h1> 和 <p> 标签分别设置不同的背景颜色。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Inline Styles</title>
  </head>
  <body style="background-color: green;">
    <h1 style="background-color: blue; color: white;">Welcome to my website</h1>
    <p style="background-color: pink;">This is a paragraph with some text.</p>
  </body>
</html>

图片

在这个案例中,我们直接在 <body><h1> 和 <p> 标签的 style 属性中设置了背景颜色。

这种方法虽然可以快速地为元素添加样式,但是对于复杂的页面结构来说,内联样式会使 HTML 文件变得臃肿,不利于维护和管理。

因此,内联样式更适合于一些简单的样式设置或临时调试,要谨慎使用。

四、延伸:多个样式表

我们在做项目的时候呢,有时候会涉及以上种表同时写入同一个 html 页面的情况。那如果都同时作用在一个元素上,有冲突的时候,应该如何取样式呢?

我们一起来看看这 3 种情况。

1、内部样式表和外部样式表同时存在

如果都给同一个元素定义了样式,最终应该取谁的?

答案就是:如果同一个选择器(元素)在不同的样式表中被定义了一些属性,那么最后被浏览器读取的样式表中的属性值将被应用。

ok,我们来举 2 个案例,一下就能看出来区别了。

MultipleCSS.html

<!DOCTYPE html>
<html>
  <head>
    <title>Multiple Stylesheets Example</title>

    <link rel="stylesheet" href="css/multipleStylesheets01.css" />
    <link rel="stylesheet" href="css/multipleStylesheets02.css" />
    <style>
      body {
        font-family: Arial, sans-serif;
        background-color: pink; /* 粉色*/
        color: #333333;
      }
    </style>
  </head>
  <body>
    <h1>Welcome to my website</h1>
    <div class="">
      <p>This is an example of multiple stylesheets.</p>
    </div>
  </body>
</html>

multipleStylesheets01.css

/* multipleStylesheets01.css */
body {
  background-color: #0f0; /* 绿色 */
}
h1 {
  color: #ff0000; /* 红色 */
}

multipleStylesheets02.css

/* multipleStylesheets02.css */
body {
  background-color: yellowgreen; /*草绿色*/
  color: #0000ff; /* 蓝色 */
}

效果如图。

图片

因为 style 标签在 link 样式表后面,所以主体是粉色,pink。

那如果其他 2 个.css文件不变,在 html 文件里,调换下 style 和 link 的位置呢?把 style 放前面,link 放后面。

<!DOCTYPE html>
<html>
  <head>
    <title>Multiple Stylesheets Example</title>
    <style>
      body {
        font-family: Arial, sans-serif;
        background-color: pink; /* 粉色*/
        color: #333333;
      }
    </style>
    <link rel="stylesheet" href="css/multipleStylesheets01.css" />
    <link rel="stylesheet" href="css/multipleStylesheets02.css" />
  </head>
  <body>
    <h1>Welcome to my website</h1>
    <div class="">
      <p>This is an example of multiple stylesheets.</p>
    </div>
  </body>
</html>

图片

body标签的颜色,肯定就是用样式表的草绿色的了。所以这 2 个类型的样式表如果有重合样式的元素,可以说是,后来者居上。

2、内联样式表,内部样式表和外部样式表同时存在

如果它们同时存在,则内联样式表的优先级最高。

还用以上这个案例吧,如果我们在 body 上,加一个天蓝色。

<!DOCTYPE html>
<html>
  <head>
    <title>Multiple Stylesheets Example</title>
    <style>
      body {
        font-family: Arial, sans-serif;
        background-color: pink; /* 粉色*/
        color: #333333;
      }
    </style>
    <link rel="stylesheet" href="css/multipleStylesheets01.css" />
    <link rel="stylesheet" href="css/multipleStylesheets02.css" />
  </head>
  <body style="background: #39caf7">
    <h1>Welcome to my website</h1>
    <div class="">
      <p>This is an example of multiple stylesheets.</p>
    </div>
  </body>
</html>

图片

那其他样式就被覆盖,body 就是蓝色了。

3、如果页面上没有这 3 种样式表

那默认就是浏览器默认的样式了,比如我们的页面默认是白色的,四周都有间距,这些都是浏览器默认的样式。如图。

图片

小结

以上,我们总结一下——

当一个 HTML 元素被赋予多个样式时,这些样式会按照以下规则进行“层叠”,形成一个新的“虚拟”样式表。这些规则的优先级从高到低排列如下:

1) 行内样式(直接在 HTML 元素中定义的样式)

2)外部样式表和内部样式表(在 head 部分定义的样式)

3) 浏览器默认样式

因此,行内样式拥有最高的优先级,会覆盖外部和内部样式表定义的样式,以及浏览器默认的样式。

ok,本节完。

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

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

相关文章

【UnityRPG游戏制作】Unity_RPG项目之界面面板分离和搭建

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

2_5.Linux存储的基本管理

实验环境&#xff1a; 系统里添加两块硬盘 ##1.设备识别## 设备接入系统后都是以文件的形式存在 设备文件名称&#xff1a; SATA/SAS/USB /dev/sda,/dev/sdb ##s SATA, dDISK a第几块 IDE /dev/hd0,/dev/hd1 ##h hard VIRTIO-BLOCK /de…

stm32开发之threadx使用记录(主逻辑分析)

前言 threadx的相关参考资料 论坛资料、微软官网本次使用的开发板为普中科技–麒麟&#xff0c;核心芯片为 stm32f497zgt6开发工具选择的是stm32cubemx(代码生成工具)clion(代码编写工具)编译构建环境选择的是arm-none-gcc编译 本次项目结构 CMakeList对应的配置 set(CMAKE_…

Seata(分布式事务集成测试和总结)

文章目录 1.集成测试1.集成测试正常下单1.步骤2.浏览器访问 http://localhost:10008/order/save?userId666&productId1&nums1&money1003.注意事项和细节 2.集成测试模拟异常1.步骤1.com/sun/springcloud/controller/StorageController.java 休眠12s&#xff0c;模…

虚拟机打不开

问题 另一个程序已锁定文件的一部分&#xff0c;进程无法访问 打不开磁盘“G:\centeros\hadoop104kl\hadoop100-cl2.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。 原因 前一次非正常关闭虚拟机导致.lck 文件是VMWare软件的一种磁盘锁文件&…

线性数据结构

1.数组 数组使用一块连续的内存来存储元素&#xff0c;并且元素的类型都是相同的。可以通过索引来访问。 2.链表 链表由一系列节点组成&#xff0c;每个节点包含两部分&#xff1a;数据部分和指针部分。数据部分用于存储元素的值&#xff0c;指针部分则指向下一个节点。没有使…

机器学习 - multi-class 数据集训练 (含代码)

直接上代码 # Multi-class datasetimport numpy as np RANDOM_SEED 42 np.random.seed(RANDOM_SEED) N 100 # number of points per class D 2 # dimensionality K 3 # number of classes X np.zeros((N*K, D)) y np.zeros(N*K, dtypeuint8) for j in range(K):ix rang…

多线程的入门(二)线程实现与初步使用

1.实现Runable接口 实现Runable接口&#xff0c;实现run方法&#xff1b; 这种方式创建的线程实现类执行时需要创建Thread实例去运行该任务 示例如下&#xff1a; package com.example.springbootdamo.Thread;import org.apache.logging.log4j.LogManager; import org.apach…

三子棋游戏----C语言版【超级详细 + 视频演示 + 完整源码】

㊙️小明博客主页&#xff1a;➡️ 敲键盘的小明 ㊙️ ✅关注小明了解更多知识☝️ 文章目录 前言一、三子棋的实现思路二、三子棋的实现步骤2.1 先显示游戏的菜单2.2 游戏的具体实现2.2.1 棋盘的初始化2.2.2 展示棋盘2.2.3 下棋&#x1f534;玩家下棋&#x1f534;电脑下棋2.2…

二叉树进阶——手撕二叉搜索树

troop主页&#xff1a;troop 手撕二叉搜索树 1.二叉搜索树的定义2.实现&#xff08;非递归&#xff09;补充结构2.1查找2.2插入2.3删除&#xff08;重要&#xff09;情况1(无孩子&&一个孩子&#xff09; 3.二叉搜索树的应用3.1K模型3.2KV模型3.2.1KV模型的实现 总结二叉…

RUST语言值所有权之内存复制与移动

1.RUST中每个值都有一个所有者,每次只能有一个所有者 String::from函数会为字符串hello分配一块内存 内存示例如下: 在内存分配前调用s1正常输出 在分配s1给s2后调用报错 因为s1分配给s2后,s1的指向自动失效 s1被move到s2 s1自动释放 字符串克隆使用

I2C驱动实验:读取AP3216C设备中寄存器的数据

一. 简介 经过前面几篇文章的学习&#xff0c;已经完成了I2C驱动框架&#xff0c;字符设备驱动框架&#xff0c;编写了 读写 I2C设备中寄存器的数据的代码&#xff0c;文章如下&#xff1a; I2C驱动实验&#xff1a;实现读/写I2C设备寄存器的函数-CSDN博客 本文在此基础上&a…

C#开发中一些常用的工具类分享

一、配置文件读写类 用于在开发时候C#操作配置文件读写信息 1、工具类 ReadIni 代码 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;namesp…

不同设备使用同一个Git账号

想要在公司和家里的电脑上用同一个git账号来pull, push代码 1. 查看原设备的用户名和邮箱 第1种方法&#xff0c; 依次输入 git config user.name git config user.email第2种方法&#xff0c; 输入 cat ~/.gitconfig2. 配置新设备的用户名和邮箱 用户名和邮箱与原设备保持…

高效学习方法:冥想背诵,看一句念一句,再每个词分析位置及语法等合理性,忘记哪个词再看猜下为什么会忘,跟自己的表达哪里不一样。

原则&#xff1a;易学则易行&#xff0c;则效果最好。《易经》 你提到的这种学习方法结合了多种记忆和理解技巧&#xff0c;可以帮助提高学习效率。下面是对这种方法的一个详细解释和一些建议&#xff1a; 冥想背诵&#xff1a;通过冥想来集中注意力&#xff0c;可以帮助你在没…

数据如何才能供得出、流得动、用得好、还安全

众所周知&#xff0c;数据要素已经列入基本生产要素&#xff0c;同时成立国家数据局进行工作统筹。目前数据要素如何发挥其价值&#xff0c;全国掀起了一浪一浪的热潮。 随着国外大语言模型的袭来&#xff0c;国内在大语言模型领域的应用也大放异彩&#xff0c;与此同时&#x…

使用YOLOv8训练自己的【目标检测】数据集

文章目录 1.收集数据集1.1 使用开源已标记数据集1.2 爬取网络图像1.3 自己拍摄数据集1.4 使用数据增强生成数据集1.5 使用算法合成图像 2.标注数据集2.1确认标注格式2.2 开始标注 3.划分数据集4.配置训练环境4.1获取代码4.2安装环境 5.训练模型5.1新建一个数据集yaml文件5.2预测…

java中的正则表达式和异常

正则表达式&#xff1a; 作用一&#xff1a;用来校验数据格式是否合法 作用二&#xff1a;在文本中查找满足要求的内容 不用正则表达式&#xff1a;检验QQ号是否合法&#xff0c;要求全部是数字&#xff0c;长度在6-20&#xff0c;不能以0开头 public class test {public stat…

手机扫码查看视频如何实现?扫描二维码在线看视频的制作技巧

现在的学校或者幼儿园会需要拍摄学生的视频&#xff0c;然后展示给其他人查看&#xff0c;为了能够方便用户能够快速的获取文件内容&#xff0c;所以经常会通过生成视频二维码的方法&#xff0c;将二维码分享之后手机扫码来获取视频内容&#xff0c;有效提升用户获取内容的体验…

PTA C 1050 螺旋矩阵(思路与优化)

本题要求将给定的 N 个正整数按非递增的顺序&#xff0c;填入“螺旋矩阵”。所谓“螺旋矩阵”&#xff0c;是指从左上角第 1 个格子开始&#xff0c;按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列&#xff0c;满足条件&#xff1a;mn 等于 N&#xff1b;m≥n&#xff1b;且…