前端入门知识分享:如何在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.mzph.cn/diannao/43727.shtml

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

相关文章

分布式IO模块软件配置

组态接口模块 1、打开网络视图 2、拖拽出ET200SP 3、双击ET200SP的图片&#xff0c;进入从站配置 总线适配器的组态更换 关于IO地址分配&#xff0c;需要建立好子网通信后&#xff0c;在主机上配置。 可以看到IP 和设备名 设备与控制器的Profinet连接 先找到设备名称再找…

HarmonyOS鸿蒙DevEco Studio无法连接本地模拟器

使用DevEcoStudio 5.0.3.403版本 发现无法选择模拟器 解决方法&#xff1a; 1、打开模拟器 2、关闭DevEco Studio&#xff0c;&#xff08;不要关闭模拟器&#xff09; 3、重新打开DevEco Studio。

四道经典算法JAVA

1.爬楼地 爬20个台阶的爬法:f(19)f(18) 经典斐波拉契数列问题 public class demo4 {//爬楼梯问题public static void main(String[] args) {System.out.println(getSum(20));}public static int getSum(int n) {if (n 1)return 1;if (n 2)return 2;return getSum(n - 1) …

SpringBoot:SpringBoot中如何实现对Http接口进行监控

一、前言 Spring Boot Actuator是Spring Boot提供的一个模块&#xff0c;用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点&#xff08;endpoints&#xff09;&#xff0c;用于获取应用程序的健康状态、性能指标、配置信息等&#xff0c;并支持通过 HTTP …

关于Python的类的一些理解

才发现python的类对象只能调用类方法 我想使用对类对象a使用系统调用的len方法就会报错 2.类对象a是什么&#xff1f; 答&#xff1a;是所有的带有self的成员变量 举例说明&#xff1a;红色的就是a里面的东西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

解读‘‘不要卷模型,要卷应用‘‘

前言 2024 年 7 月 4 日&#xff0c;世界人工智能大会暨人工智能全球治理高级别会议全体会议在上海世博中心举行。百度创始人李彦宏在产业发展主论坛上发言&#xff0c;呼吁不要卷模型&#xff0c;要卷应用。 目录 四个要点 积极的观点 不合理性 总结 四个要点 李彦宏的呼吁…

多模态:Nougat详解

文章目录 前言一、模型结构1. encoder2. decoder3. set 二、数据增强三、数据splitting the pages 四、实验评估repetitions during inference 五、代码1. 环境安装2. Dataset&#xff08;dataset.py&#xff09;3. Model&#xff08;model.py&#xff09; 总结 前言 科学知识…

一网统管/视频汇聚/安防监控平台EasyCVR启动后无法访问是什么原因?

智慧城市/一网统管/视频汇聚/安防监控平台EasyCVR兼容性强&#xff0c;支持多协议接入&#xff0c;包括国标GB/T 28181协议、GA/T 1400协议、部标JT808协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等&#xff0c;并能对外分…

接口测试课程结构

课程大纲 如图&#xff0c;接下来的阶段课程&#xff0c;依次专项讲解如下专题&#xff0c;能力级别为中级&#xff0c;进阶后基本为中高级&#xff1a; 1.接口基础知识&#xff1b; 2.抓包工具&#xff1b; 3.接口工具&#xff1b; 4.mock服务搭建&#xff08;数据模拟服务&am…

Git使用——首次创建本地仓库、配置、初始化、关联远程仓库

1、安装 Git软件 官网&#xff1a;git-scm.com 有时候官网打不开&#xff0c;这里留存个之前下载过的安装包&#xff1a; https://download.csdn.net/download/weixin_43908355/89502977 2、配置本地仓库 在准备建仓库的文件夹里&#xff0c;右键点击&#xff1a;Git Bash …

鸿蒙系统创建签名文件及使用创建签名文件打包并安装

* 第一步 第二步&#xff1a;创建.p12文件&#xff0c;点击New如果有的话就Choose Existing 填好下面信息 点击Next进入到下面界面 开始生成csr文件如下图 点击OK–>Finish 文件保存在了下面目录 第三步 1.访问华为开发者平台&#xff0c;登录开发者账号&#xff0c;进…

【linux服务器篇】-Redis-RDM远程连接redis

redis desktop manager 使用远程连接工具RDM连接redis 市面上比较常见的其中一款工具redis desktop manager 简单的说&#xff1a; Redis Desktop Manager 简单的来讲就是Redis可视化工具&#xff0c;可以让我们看到Redis中存储的内容。 redis desktop manager是一款功能强…

【面试八股总结】面向对象三大特性、虚函数、纯虚函数、虚继承

参考资料&#xff1a;阿秀 一、面向对象三大特性 封装&#xff1a;将数据和代码捆绑在一起&#xff0c;避免外界干扰和不确定性访问 继承&#xff1a;让某种类型对象获得另一个类型对象的属性和方法 多态&#xff1a;同一种事务表现出不同事务的能力&#xff0c;即&#xf…

数据库课设---学生宿舍管理系统(sql server+C#)

1.引言 1.1 内容及要求 设计内容&#xff1a;设计学生宿舍管理系统。 设计要求&#xff1a; &#xff08;1&#xff09;数据库应用系统开发的需求分析&#xff0c;写出比较完善系统功能。 &#xff08;2&#xff09;数据库概念模型设计、逻辑模型设计以及物理模型设计。 …

yolov8 人体姿态识别

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

Echarts水球图(liquidFill)添加文字

效果 代码 {type: liquidFill,shape: shapes[0].value,radius: 90%,data: [{name: 独立百货,value: 0}],center: [50%, 50%],color: [{type: linear,x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: #446bf5},{offset: 1,color: #2ca3e2}],globalCoord: false}],backgro…

JSP实现简单的登录和注册

JSP实现登录和注册&#xff08;Map集合模拟数据库&#xff09; 1、login.jsp2、 loginSelect.jsp3、register.jsp4、 RegisterSelect.jsp5、 index.jsp 1、login.jsp login.jsp中username和password在LoginSelect.jsp验证是否一致使用session.setAttribute("login_msg&quo…

【RHCE】dns实验0707

题目&#xff1a; 做法: 1.创建两个虚拟机 张三&#xff1a;且有加密 李四&#xff1a; 设置zhangsan/lisi对应的html网页 主服务器测试&#xff1a; 证书验证 2.配置dns 主服务器&#xff1a; 区域文件&#xff08;zs/lisi&#xff09; 从服务器&#xff1a; 且dns为主服务…

OZON生活家居用品爆款新品

OZON生活家居用品爆款新品涵盖了多个方面&#xff0c;这些产品不仅满足了消费者对生活品质的追求&#xff0c;也反映了当前市场的热门趋势。以下是一些在OZON平台上备受关注的生活家居用品爆款新品&#xff1a; OZON生活家居用品爆款新品工具&#xff1a;D。DDqbt。COm/74rD T…

Midway Serverless 发布 2

可以看看优化后的开发情况&#xff0c;不仅和应用一样&#xff0c;速度还比较快&#xff0c;也不会生成临时目录&#xff0c;修改实时生效。 这是 v2.0 和 v1.0 的根本性变化&#xff0c;也是整体架构升级带来的巨大优势。 当然&#xff0c;这一块并不是功能的新增&#xff0c…