前端入门知识分享:如何在HTML或CSS文件中引用CSS文件。

阅读提示:本文仅仅仅适用于刚刚接触HTML和CSS的小白从业者,新人爱好者。自觉身份不符的老鸟们,尽快绕行吧!

什么是CSS?什么是CSS文件。

CSS,全称为Cascading Style Sheets(层叠样式表),是一种用于描述网页上的信息格式化和显示方式的语言。它的主要功能是控制网页的视觉表现,包括字体、颜色、布局等样式结构。通过CSS,开发者可以将文档的内容与其表现形式分离,这样不仅提高了网页的可维护性,还使得样式更加灵活和多样化。

CSS的应用非常广泛,它可以用来控制网页中几乎所有可见元素的样式,包括但不限于文本的字体、大小、颜色,元素的位置、大小、背景色,以及各种交互效果等。CSS属性的具体书写不是本文讨论的内容。如果您还需要了解更多关于css的基础知识,请自行上网学习。

CSS样式可以直接写在HTML文档中,也可以单独存储在样式文件(.css类型的文件)中,这样可以被多个页面共享使用。 单独存储的样式表文件,就是我们常说的CSS文件(样式表文件)。

如何在HTML中使用CSS?

在HTML中使用css,有下面四种方法:

  • 行内样式:使用 HTML 标签的 style 属性定义 CSS 样式;
  • 内嵌样式:使用 style 标签在 HTML 文档头部( 通常在 head 之间)定义 CSS 样式;
  • 链接式:使用 link 标签引入外部 CSS 样式表文件。
  • 导入式:使用 @import 命令导入外部 CSS 样式表文件。

接下来,我来分别举例说明一下具体方法。

行内样式:

行内样式的写法:

所谓行内样式,就是把样式直接写在HTML的行中。比如:

<p style='color:red;font-size:14px;'>这就是一个典型的行内样式写法。颜色:红,字号大小:14像素。</p>
行内样式的语法:
style="";

在引号中间,书写css代码,在需要书写多个样式时,使用 ' ; ' 分号分隔。 在HTML页面涉及到的大部分情况下:单引号和双引号均可使用,但注意一定要成对使用。

行内样式的特点:
  • 代码短小,应用灵活:当你的页面只需要极少的样式,或者,这个样式不需要再做调整,或可能通过 JS 进行动态调整的时候,采用这样的写入方式。
  • 优先级高:直接写在行内的样式,优先级高于其他方式书写的样式表。
  • 效率低下:因为样式表写在行内,即使使用相同标签的样式,也要重复的写在每行内。这样产生大量的冗余代码,增加了大量的前端工作量,占用了大量服务器资源和流量。
  • 难读与易错:页面中大量的style,降低了页面的结构清晰度,导致页面不容易辨识,不方便修改,增加后期维护成本。
  • 没有实现内容与变现分离,与CSS设计的初衷相悖。

内嵌样式:

内嵌样式的写法:

内嵌样式,与行内样式既有相同也有不同。相同点:都是在HTML页面直接写样式表。区别是:内嵌样式是把本页用到的样式几种写在一个或几个style标签中间。而style标签可以出现在HTML页面的任何地方。但通常,它会出现在 head 标签之间。比如:

<head>
<style>
    .btn-img{  
      background: #eace00;  
    }
    
    .btn-img span{
      display: block;
      transform-style: preserve-3d;
      transition: all .5s;
    }    
</style>
</head>
内嵌样式的语法和作用优先级:
<style>
    .classA{
        ······    
    }
    .classB{
        ······    
    }
    ······
</style>

在内嵌样式的书写过程中,可以为使用相同样式的标签设置统一的class名,然后通过在html的标签内添加class,实现样式表应用。比如:

<p class='classA' > 
<p class='classA classB' >

在class的语法中,可以使用 “”,‘’ 双引号 或者 单引号 引用class类名,当一个标签需要使用多个class类时,在引用内使用空格间隔。注意,当 classB 与 classA 的样式表中存在定义的样式冲突的情况,比如:

.classA{
       color:red;  
    }
.classB{
       color: blue;   
    }

上面这样的写法 在下面这样引用时:

<p class='classA classB' >

起作用的是 color:blue 。注意,这里不是因为在样式表文件中 classB写在了classA的后面。但是,当你在同个样式表中书写了两个相同类名的相同属性时:

.classA{ color: blue; } 
.classA{ color:red; }

是书写在后面的 color:blue 起作用。这取决于 css的优先级原则:作用在后面的样式 会覆盖前面的样式,换句话说:在渲染过程中后起作用的样式优先。

当然,熟悉CSS同学会说,我们还可以通过!important 改变优先级。注意:在书写样式表时使用 !important 的权重最高(但这并不是W3C推荐的写法)。 !important 不是改变了css样式的优先级,而是脱离了优先级规则,使用一个 !important 规则时,此声明将覆盖任何其他声明。

比如下面的写法,即使 color:red 写在后面,但因为 important的作用,依然是前面的 color:blue 起作用。

.classA{ color: blue !important; } 
.classA{ color:red; }
  • !important的引入主要是为了处理浏览器兼容性问题。在早期的浏览器版本中,如IE6不识别!important,而IE7及其他浏览器则支持。通过使用!important,开发者可以为特定浏览器提供它认识的样式写法,以达到在所有浏览器中显示一致的效果。这种做法在CSS中被称为hack。
  • 然而,虽然!important在某些情况下非常有用,但它也可能导致CSS代码的混乱和难以维护。因此,建议仅在必要时使用它,并尽量通过其他方式(如调整选择器的特异性或重新组织规则)来避免使用!important。
  • 总的来说,!important是CSS中一个强大的工具,用于确保特定样式的应用,尤其是在需要覆盖其他冲突样式时。但使用时需要谨慎,以避免引入不必要的复杂性和维护问题。
  • 使用 !important 是一个坏习惯,应该尽量避免。

另外一个非常值得新手注意的是,当你的标签需要同时使用 一个以上的class类时,下面这样书写是错误的:

<p class='classA' class='classB' >

上面的书写方式,将导致classA失效。正确的打开方式是:

<p class='classA classB' >
内嵌样式的特点:
  • 内容与表现进行了简单的分离。
  • 提高了页面样式的复用性。
  • 没有脱离页面,在需要修改样式表的时候,还是需要在页面上进行修改,使前端工程师与程序工程师同时在页面上工作,提高了出错的几率。

链接式:

链接式引用CSS文件的写法:

链接式通过 HTML 的 link 标签,将外部样式表文件链接到 HTML 文档中,这也是网络上网站应用最多的方式,同时也是最实用的方式。比如:

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

当你有多个CSS文件时,你可以这写:

<link href="reset.css" type="text/css" rel="stylesheet"/> 
<link href="style.css" type="text/css" rel="stylesheet"> 
<link href="index.css" type="text/css" rel="stylesheet">

使用上面的写法,CSS编写可以非常清晰的管理项目的样式表,比如:

  • reset.css --- 清除浏览器默认样式
  • style.css --- 全站通用的控件,字体,布局等样式
  • index.css --- 首页涉及到的样式

需要特别注意的是,页面渲染时,也同样遵循了写在后面的样式覆盖前面样式的规则。所以,要记得把清除浏览器样式放在最前面,不把首页的样式表放在最下面:越局部的,越靠后。

接着以上述书写顺序为例,假设你在style.css 的 H1 标签中,写了如下样式:

/* style.css */ 
h1 { color:red; font-size:1.8rem; }

而你在index.css 中,需要将 h1 的颜色变成 绿色,但不调整文字的大小,那么你不需要去 style.css 中去修改 h1 的样式,你只需要在 index.css 中这样写:

/* index.css */ 
h1{ color:green; }

这时候,你的首页的H1 的文字样式就改变成绿色了。而其他页面的H1依然还是红色的。这个例子,体现了样式表拆分管理的优点,也体现了样式表在页面中的优先级规则。

链接式引用CSS文件的特点:
  • HTML 文档和 CSS 文件完全分离,实现结构层和表示层的彻底分离。
  • 提高了网页结构的扩展性和 CSS 样式的可维护性,当你需要修改某个页面的样式时,你只需要将某个样式表从服务器上下载到本地,修改完成后上传即可。
  • 使从事样式表编写的工作者,专注于样式表本身。

导入式:

使用 @import 命令导入外部样式表。

导入式引用样式表的的写法:
@import url(css/daoru.css);
@import url('style/daoru.css');
@import url("daoru.css");

上面的例子展示了位于相同或不同路径下的页面和样式表文件的导入方法。如果两个文件位于同一目录,也可以省略URL路径,直接使用文件名:

@import daoru.css; 
@import 'daoru'; 
@import "daoru.css";

如你所见,这个写法是非常不严谨的。你可以和灵活的将css文件通过上述方式引用到HTML文件中。其实,这是一种在HTML页面中不太常见的引用样式表文件的方法。至于优先级规则,@import 与

受前后顺序的规则限制一模一样。这里就不再做讨论了。

在CSS文件中引用CSS文件:

在CSS文件中引用另一个CSS文件,可以使用CSS的@import规则。这个规则必须在其他CSS规则之前使用,所以通常放在文件的最开始。

例如,假设你有两个CSS文件:base.css和theme.css。你想要在theme.css中引入base.css,可以在theme.css文件的最开始添加以下代码:

@import url('base.css'); 
/* 其他theme.css的样式规则 */

同前面所说的在页面中导入样式表的方法一样,如果两个样式表文件位于同一目录,也可以省略URL路径,直接使用文件名:

@import 'base.css'; 
/* 其他theme.css的样式规则 */

请注意:@import规则可能会导致性能问题,因为它可能增加额外的HTTP请求,从而影响页面加载性能。因此,在包含内容较多的站点上,应谨慎使用或考虑使用其他技术如预处理器(如Sass或Less)来合并CSS文件。

样式表优先级:

基于前面所有陈述总结,样式表的优先规则可以归纳为:

  • 内联样式 > 内部样式 和 外部样式比较:标签上面使用的style属性优先级最高。
  • 内部样式 和 外部样式 的优先级比较:后读取的样式优先级更高,即:哪个最后定义,就使用哪个样式,也可以理解为后定义的样式,会覆盖前面定义的样式。在渲染过程中,最后起作用的样式优先级最高。
  • 最近祖先样式的优先级:‌如果一个元素嵌套在另一个元素内,‌那么内部元素的直接样式将优先于外部元素的祖先样式。‌例如,‌如果一个类名为son的div的颜色被设置为蓝色,‌而它的祖先div的颜色被设置为红色,‌那么son这个div的颜色将是蓝色2。‌
  • 权重:‌权重是决定CSS规则如何被浏览器解析并最终显示的关键。‌权重越高的样式优先级越高。‌每个选择器都有一个特定的权重值,‌当多个样式被应用到同一个元素上时,‌权重决定了哪种样式将被采用。!important 的权重最高。

说了这么多,相信对于新手来说会有所帮助!别看我文章不收费,但是内容却是实实在在的。所以,看完了的同学,请帮忙点赞+关注+评论!谢谢!

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

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

相关文章

淮北在选择SCADA系统时,哪些因素会影响其稳定性?

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 在选择SCADA系统时&#xff0c;稳定性是一个关键因素&#xff0c;因为它直接影响到生产过程的连续性和安全性。以下是一些影响SCADA系统稳定性的因素&#xff1a; 硬件质量…

2024机器遗忘(Machine Unlearning)技术分类-思维导图

1 介绍 机器遗忘&#xff08;Machine Unlearning&#xff09;是指从机器学习模型中安全地移除或"遗忘"特定的数据点或信息。这个概念源于数据隐私保护的需求&#xff0c;尤其是在欧盟通用数据保护条例&#xff08;GDPR&#xff09;等法规中提出的"被遗忘的权利…

1、课程导学(react+区块链实战)

1、课程导学&#xff08;react区块链实战&#xff09; 1&#xff0c;课程概述&#xff08;1&#xff09;课程安排&#xff08;2&#xff09;学习前提&#xff08;3&#xff09;讲授方式&#xff08;4&#xff09;课程收获 2&#xff0c;ibloackchain&#xff08;1&#xff09;安…

前端Debugger时复制的JS对象字符转JSON对象

前端debugger时&#xff0c;复制的对象在控制台输出时是如下格式&#xff0c;需要转换为对象格式来进行验证操作 bridgeId : 4118 createBy : null createTime : "2023-03-24 10:35:26" createUserId : 1 具体实现代码&#xff1a; // 转换transform (text) {l…

yolov8 人体姿态识别

引言 在计算机视觉的各种应用中&#xff0c;人体姿态检测是一项极具挑战性的任务&#xff0c;它能够帮助我们理解人体各部位的空间位置。本文将详细介绍如何使用 YOLOv8 和 Python 实现一个人体姿态检测系统&#xff0c;涵盖模型加载、图像预处理、姿态预测到结果可视化的全流…

业务咨询方案 + IT落地方案建议设计

近期&#xff0c;在深入探索咨询方案的实施与落地路径时&#xff0c;体会到了一系列心得与启示&#xff0c;旨在为未来的项目实践提供可借鉴的蓝本。 咨询方案的精髓&#xff0c;在于“业务引领&#xff0c;IT支撑”的核心理念。所以方案的前提是在于业务的梳理&#xff1b; …

侯捷C++面向对象高级编程(上)-11-虚函数与多态

1.虚函数 2.virtual 3.继承&#xff0b;复合关系下的构造和析构 4.委托&#xff0b;继承

【深度学习】图形模型基础(5):线性回归模型第五部分:多变量线性回归模型

1.引言 当我们从基础的线性模型 y a b x error y a bx \text{error} yabxerror 转向更复杂的模型 y β 0 β 1 x 1 β 2 x 2 … error y \beta_0 \beta_1 x_1 \beta_2 x_2 \ldots \text{error} yβ0​β1​x1​β2​x2​…error 时&#xff0c;我们面临了诸多…

汇聚荣拼多多实力怎么样?

汇聚荣拼多多实力怎么样?拼多多作为中国电子商务行业的后起之秀&#xff0c;其市场表现和商业策略引起了广泛的关注。在回答“汇聚荣拼多多实力怎么样?”这一问题时&#xff0c;我们可以明确地看到&#xff0c;拼多多通过其独特的商业模式和创新策略&#xff0c;在竞争激烈的…

2024-07抖音/快手/小红书/视频号/美团无人直播技术:最新不封号无人直播的操作方法详细介绍

2024年最新研究出来的无人直播技术&#xff0c;目前不封号&#xff0c;用途大大的&#xff0c;可带货&#xff0c;可引流&#xff0c;可获客。 手机自动直播源码通常涉及到实时流媒体技术和应用开发&#xff0c;它涉及以下几个关键部分&#xff1a; 摄像头接入&#xff1a;使用…

Mysql-内置函数

一.什么是函数&#xff1f; 函数是指一段可以直接被另外一段程序调用的程序或代码。 mysql内置了很多的函数,我们只需要调用即可。 二.字符串函数 MySQL中内置了很多字符串函数: 三.根据需求完成以下SQL编写 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全…

[极客大挑战 2019]RCE ME

[极客大挑战 2019]RCE ME <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($code); } else{highlight_f…

施罗德数列SQL实现

在组合数学中,施罗德数用来描述从(0,0)到(n,n)的格路中,只能使用(1,0)、(0,1)、(1,1)三种移动方式,始终位于对角线下方且不越过对角线的路径数 DECLARE n INT 10 DECLARE i INT DECLARE rst INT DECLARE old INT1CREATE TABLE #rst (i INT ,rst int )INSERT INTO #rst values(…

ozon跨境电商可以做吗,俄罗斯ozon跨境电商可不可以做

当今全球化的浪潮下&#xff0c;跨境电商已成为连接世界各地消费者与商家的桥梁&#xff0c;为无数企业开辟了全新的市场蓝海。俄罗斯&#xff0c;作为世界上最大的国家之一&#xff0c;其电商市场近年来蓬勃发展&#xff0c;尤其是ozon平台&#xff0c;作为俄罗斯本土的电商巨…

hash

哈希 key->value&#xff0c;借助离散化的思想对数据进行映射&#xff0c;可视为用value代表原本的key 在C中&#xff0c;可使用map当做哈希表使用&#xff0c;将std::hash当做哈希函数使用 hash<Typename>name; size_t valuename(key);数字哈希 哈希函数的设计 方…

科普文本分类背后的数学原理——最新版《数学之美》第14、15章读书笔记

新闻分类&#xff0c;或广义上的文本分类&#xff0c;其核心任务是根据文本内容将相似文本聚合在同一类别中。在新闻领域&#xff0c;这意味着将报道划分为财经、体育、军事等不同主题。人类执行此任务时&#xff0c;通过阅读和理解新闻的主旨来进行归类。然而&#xff0c;作者…

软件工具网站推荐

1.菜鸟工具 菜鸟工具 - 不止于工具菜鸟工具&#xff0c;为开发设计人员提供在线工具&#xff0c;网址导航&#xff0c;提供在线PHP、Python、 CSS、JS 调试&#xff0c;中文简繁体转换&#xff0c;进制转换等工具。致力于打造国内专业WEB开发工具&#xff0c;集成开发环境&…

linux磁盘分区管理

首先关机状态下&#xff0c;先配置硬盘 硬盘分区管理 识别硬盘 》分区规划 》 格式化 》 挂载使用 [rootlocalhost ~]# lsblk 查看硬盘 分区划分&#xff08;m帮助, p 查看分区, n 创建分区, d 删除分区, q 退出, w 保存&#xff0c; g gpt分区&#xff09; [roo…

论文 | Chain-of-Thought Prompting Elicits Reasoningin Large Language Models 思维链

这篇论文研究了如何通过生成一系列中间推理步骤&#xff08;即思维链&#xff09;来显著提高大型语言模型进行复杂推理的能力。论文展示了一种简单的方法&#xff0c;称为思维链提示&#xff0c;通过在提示中提供几个思维链示例来自然地激发这种推理能力。 主要发现&#xff1…

接口基础知识1:认识接口

课程大纲 一、定义 接口&#xff1a;外部与系统之间、内部各子系统之间的交互点。 比如日常使用的电脑&#xff0c;有电源接口、usb接口、耳机接口、显示器接口等&#xff0c;分别可以实现&#xff1a;与外部的充电、文件数据传输、声音输入输出、图像输入输出等功能。 接口的本…