首页 > 其他分享 >【前端基础】1.CSS文件的加载和解析顺序

【前端基础】1.CSS文件的加载和解析顺序

时间:2024-11-19 21:58:48浏览次数:1  
标签:文件 CSS 解析 选择器 css 加载

HTML中,使用<link>标签先后加载两个CSS文件,其加载和解析顺序主要遵循以下规则:

          CSS文件的加载与解析在现代浏览器中是边加载边解析的过程,而不是等所有CSS文件加载完毕后再进行解析。

   1. 加载顺序:CSS文件按照<link>标签在HTML中的书写顺序加载。例如:

     <link rel="stylesheet" href="style1.css">      <link rel="stylesheet" href="style2.css">

     浏览器会先加载style1.css,然后加载style2.css

    • 每个CSS文件在下载过程中可以同时被解析。
    • 第一个文件(style1.css)开始加载时,浏览器立即解析内容。
    • 第二个文件(style2.css)开始加载时,同样边加载边解析。

   2.  阻塞的影响

CSS加载是一个阻塞过程。HTML解析会在CSS文件加载和解析完成后继续,确保样式正确应用到文档结构中。

因此,浏览器不会等所有CSS文件加载完后再解析,而是尽可能并行加载,但始终按照文档中<link>的顺序应用规则。

   3.  异步加载的例外

     如果通过额外的属性(如media)指定了条件加载,或者通过JS动态插入<link>标签,那么CSS加载解析的顺序可能会发生变化。例如:

<link rel="stylesheet" href="style1.css">

<link rel="stylesheet" href="style2.css" media="print">     //表示该CSS文件只在打印页面或预览打印时生效,CSS文件的媒体类型是screen(仅在屏幕设备(如电脑显示器、手机、平板)上应用)

    在这种情况下,style2.css只有在满足media="print"的条件时才会被加载和解析。

   4.  解析顺序: CSS解析的规则遵循“后定义的规则会覆盖前定义的规则”(Cascade原则),如果两个CSS文件中存在相同的选择器,后面的CSS文件会覆盖前面的规则。

假设style1.css定义了:

   body { background-color: blue; }

style2.css定义了:

   body { background-color: red; }

     由于style2.css在后面加载,最终网页的背景颜色会是红色

  5.  重要性和优先级: 如果两个文件中定义了不同选择器或规则,CSS会根据优先级决定最终应用的样式。优先级顺序如下:

    • 内联样式(style属性) > 内部CSS > 外部CSS。
    • 样式规则的优先级(权重)由选择器的类型和复杂性决定。
      • 优先级顺序:内联样式 > ID选择器 > 类选择器 > 标签选择器 > 通配符
      • !important强制优先,除非另一个规则也有!important且权重更高。
      • 声明顺序在优先级相同时决定覆盖规则。

      即使是后加载的CSS文件,也会受优先级和重要性影响。例如:

     /* style1.css */

     #header { color: blue; /* ID选择器优先级高 */ }

     /* style2.css */

     div { color: red; /* 元素选择器优先级低 */ }

无论加载顺序如何,#header的文本颜色会是蓝色。

 

标签:文件,CSS,解析,选择器,css,加载
From: https://www.cnblogs.com/luckyyys/p/18555684

相关文章

  • 2024年全国职业院校技能大赛中职组《大数据应用与服务赛项》赛项赛题解析第三模块
      职业院校技能大赛大数据应用与服务交流群:q743959419目录模块三:数据分析与可视化任务一:数据分析与可视化子任务一:柱状图数据分析与可视化子任务二:折线图数据分析与可视化子任务三:饼图数据分析与可视化子任务四:雷达图数据分析与可视化任务二:数据分析子任务一:Excel......
  • 云解析DNS的云厂商专属线路解析
    个人名片......
  • Git 忽略文件配置全解析
    Git忽略文件配置全解析在Git版本控制系统中,.gitignore文件扮演着至关重要的角色。它允许我们指定哪些文件或目录应该被Git忽略,即不被纳入版本控制之中。这对于避免提交敏感信息、构建产物或临时文件等非常有用。本文将详细介绍Git忽略文件的规则及设置方法。一、.gitignore文件......
  • Abp.VNext-显示加载实体导航属性
    方式一:为实体配置默认导航并设置includeDetails属性为true[DependsOn(typeof(AbpEntityFrameworkCoreMySQLModule))]publicclassEntityFrameworkCoreModule:AbpModule{publicoverridevoidConfigureServices(ServiceConfigurationContextcontext){Co......
  • vite4+vue2+vant2+less构建项目,按需加载定制主题配置说明
    步骤1:安装vant2、consola、less、vite-plugin-style-import说明:因为vant2需要consola,所以必装;安装加载vant组件样式,必装:vite-plugin-style-import,版本注意是2.0以上 步骤2:vite.config.js配置://vite.config.jsimportfsfrom'node:fs';importpathfrom'path';i......
  • CSS在Table列右上角添加标记简单实现
    实现效果代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>TableRibbonDemo</......
  • json解析之fastjson和jackson使用对比
    json解析之fastjson和jackson使用对比前言最近项目中需要做埋点分析,首先就需要对埋点日志进行解析处理,刚好这时候体验对比了下fastjson和jackson两者使用的区别,以下分别是针对同一个json串处理,最终的效果都是将json数据解析出来,并统一展示。一、fastjson简介?fastjson是由......
  • ScrumMaster认证机构及CSM、PSM、RSM价值解析
    近十年Scrum在国内备受关注,成为一种最流行的现代敏捷工作方式。ScrumMaster这一独特的角色,在企业内部推动Scrum落地的过程中越来越重要。各种ScrumMaster认证课程也蜂拥而至,甚至鱼目混珠。我们为大家梳理了目前市面上出现的ScrumMaster认证,感兴趣的小伙伴们,可以了解各个机构的背......
  • 上门家政系统功能解析案例实战演练
    上门家政APP平台的问世,在极大程度上化解了大众家庭中不愿做家务的难题,这让众多创业者从中看到了新的创业方向。他们觉得上门家政APP平台竞争小,易于复制,属于轻资产创业模式,经济负担不大,并且上线速度快,能够迅速抢占市场。上门家政APP平台主要涵盖用户端、家政端、后台端三个......
  • DNS解析智能线路有何优势?
    在当今数字化的网络环境中,DNS(域名系统)解析智能线路正逐渐成为提升网络性能和用户体验的关键技术。它具有诸多显著优势,深刻地影响着网络数据的传输和处理。1、智能线路优化了网络访问速度传统的DNS解析可能会将用户请求指向距离较远或网络拥塞路径上的服务器,导致数据传输延迟。而......