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

news2024/9/22 23:24:59

阅读提示:本文仅仅仅适用于刚刚接触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.coloradmin.cn/o/1910971.html

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

相关文章

数字化时代下,财务共享数据分析建设之路

随着人工智能、云计算、大数据、区块链等技术&#xff0c;以及衍生出的各种产品的大发展&#xff0c;使得数字化发展的速度再一次加快&#xff0c;也让数字经济和数字化转型得到了更多人的关注和认可。 在传统经济增长逐渐放缓&#xff0c;市场竞争愈发激烈的局面下&#xff0…

解决虚拟机文件因快照占用硬盘空间较多的情况(压缩虚拟机文件,节省硬盘空间)

在使用虚拟机(Wmware)中&#xff0c;我们经常会在需要的时候拍摄虚拟机快照&#xff0c;尤其是虚拟机运行时的快照&#xff0c;动辄几个G&#xff0c;容易占满硬盘空间&#xff0c;那么有什么方法能够压缩虚拟机文件呢 下面是压缩后的存放虚拟机的文件夹 可以看到节约了大约2…

Banana Pi BPI-F3开发板支持OpenWrt

Banana Pi BPI-F3开源硬件开发板支持OpenWrt了。 基于原生OpenWrt 23.05集成Spacemit Stone 系列芯片的 BSP&#xff0c;包含监管程序接口&#xff08;OpenSBI&#xff09;、引导加载程序&#xff08;U-Boot/UEFI&#xff09;、Linux 内核、根文件系统&#xff08;包含各种中间…

安防视频监控/云存储/视频汇聚EasyCVR平台播放设备录像不稳定,是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警…

【微信小程序开发实战项目】——个人中心页面的制作

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

hash

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

更亮更好听的户外耳机,下班之后畅快运动,哈氪聆光体验

在当今市场上&#xff0c;蓝牙耳机种类繁多&#xff0c;现在正值酷热的夏季&#xff0c;有必要准备一副适合户外活动的蓝牙耳机&#xff0c;对此&#xff0c;我觉得气传导耳机更适合在户外锻炼或散步时使用。这种耳机设计通常为后挂式&#xff0c;不仅佩戴舒适&#xff0c;而且…

08-《含笑》

含 笑 含笑花 拉丁文名&#xff1a;Michelia figo &#xff08;Lour.&#xff09;Spreng。常绿灌木&#xff0c;高2-3米&#xff0c;树皮灰褐色&#xff0c;分枝繁密&#xff1b;叶革质&#xff0c;狭椭圆形或倒卵状椭圆形&#xff0c;花期3-5月&#xff0c;果期7-8月。原产中国…

逆向分析之电脑端如何调试一些只能手机端浏览器才可以打开的网站

手机端浏览器的指纹和电脑端浏览器的指纹是不同的,这样只在手机端浏览器运行的网站则可以检测网站是否满足手机端浏览器指纹的要求,不满足则可以进行一些反爬措施。 例如一些公众号,其实就是使用手机端浏览器打开的H5网站,就可以进行手机端浏览器指纹检测。 这里只是讲解下…

表单自定义组件 - 可选择卡片SelectCard

import React from react; import styles from ./index.module.less;type OptionsType {/*** 每个item渲染一行&#xff0c;第0项为标题*/labels?: any[];/*** 自定义渲染内容*/label?: string | React.ReactNode;value: any; }; interface IProps {value?: any;onChange?…

轻空间气膜做了多少项目?

轻空间作为气膜建筑领域的领导者&#xff0c;凭借其卓越的技术和创新的设计&#xff0c;在国内外完成了众多具有代表性的项目。以下是部分轻空间在各个领域中取得的辉煌成绩&#xff0c;展示了其在气膜建筑领域的领先地位和专业能力。 深汕特别合作区气膜羽毛球馆 深汕特别合作…

在任何岗位都可以把自己当成一个项目经理

这几天跟一个刚入职场的姐妹交流的时候&#xff0c;她问了我一个问题&#xff0c;如果让你总结三年从助理升到经理的关键点&#xff0c;你觉得是什么&#xff1f;我思考了那么几秒钟&#xff0c;大概就是——在任何岗位都把自己当项目经理。 今天给大家介绍我的项目管理工具——…

[从0开始轨迹预测][NMS]:NMS的应用(目标检测、轨迹预测)

非极大值抑制&#xff08;Non-Maximum Suppression&#xff0c;简称NMS&#xff09;是一种在计算机视觉中广泛应用的算法&#xff0c;主要用于消除冗余和重叠的边界框。在目标检测任务中&#xff0c;尤其是在使用诸如R-CNN系列的算法时&#xff0c;会产生大量的候选区域&#x…

基于Spring Boot的旅游信息推荐信息系统设计与实现(源码+lw+部署+讲解)

技术指标 开发语言&#xff1a;Java 框架&#xff1a;Spring BootJSP JDK版本&#xff1a;JDK1.8 数据库&#xff1a;MySQL5.7 数据库工具&#xff1a;Navicat16 开发软件&#xff1a;IDEA Maven包&#xff1a;Maven3.6.3 浏览器&#xff1a;IE浏览器 功能描述 旅游信…

怎么压缩ppt?这几种压缩方法大家都在用!

怎么压缩ppt&#xff1f;当我们沉浸在PPT创作的海洋中&#xff0c;每一个精心的布局、每一个动人的动画&#xff0c;都仿佛是我们心血的结晶&#xff0c;然而&#xff0c;随着我们不断雕琢&#xff0c;PPT文件的大小也在悄然增长&#xff0c;如同一只隐形的巨兽&#xff0c;在不…

文华财经盘立方多空变色波段趋势线指标公式源码

文华财经盘立方多空变色波段趋势线指标公式源码&#xff1a; N1:20; N2:ROUND(N1/2,1); N3:ROUND(SQRT(N1),1); N4:2*EMA2(C,N2)-EMA2(C,N1); 尊重市场:EMA2(N4,N3),COLORRED,LINETHICK2; 尊重市场1:IF(尊重市场<REF(尊重市场,1), 尊重市场,NULL),COLORGREEN,LINETHIC…

Redis数据类型和数据队列

一.Redis数据类型 参考资料&#xff1a;http://www.redis.cn/topics/data-types.html 相关命令参考: http://redisdoc.com/ Redis 是一种基于内存的开源数据结构存储系统&#xff0c;支持多种数据类型&#xff0c;每种数据类型都有自己特定的操作命令。 String&#xff08;字…

渲染农场怎么用更省钱?渲染100邀请码1a12

现在越来越多的设计师开始使用渲染农场&#xff0c;其中收费是个大问题&#xff0c;怎么用渲染农场才能更省钱呢&#xff1f;今天我们就来看下吧。 1、明确渲染方式 要根据不同情况选择合理的渲染方式&#xff0c;比如渲染农场就适合大场景渲染和紧急出图情况&#xff0c;其他…

跟我练习100道FPGA入门题目~(2/100)

难度指数&#xff1a;一颗星 关键词&#xff1a;组合逻辑、入门基础 点击此处直接答题&#xff1a;F学社-全球FPGA技术提升平台 (zzfpga.com) 提交代码就能看到波形图和电路图啦&#xff01; &#xff08;在社区加入群聊&#xff0c;更多学友等着和你探讨~&#xff09;

主流电商平台营销中大数据的应用◆

随着经济的不断发展&#xff0c;网络信息技术不断加强&#xff0c;电子商务和大数据的蓬勃发展极大地方便了人们的生活。本文章主要阐述大数据分析与电商营销的含义、大数据分析在电子商务营销中的应用&#xff0c;以及该应用的作用和存在哪些不足及解决方法。探究大数据分析在…