• link和@import的区别


    本质上,这两种方式都是为了加载css文件

    区别

    1.从属关系区别
    @import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。

    2.加载顺序区别
    加载页面时,link标签引入的 CSS 被同时加载;@import引入的 CSS 将在页面加载完毕后被加载。

    3.兼容性区别
    @import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;link标签作为 HTML 元素,不存在兼容性问题。

    4.DOM可控性区别
    可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。

    5.权重区别(该项有争议,下文将详解)
    link引入的样式权重大于@import引入的样式。

    CSS 选择器的权重高,即选择器的优先级高。
    CSS 的优先级特性表现为,对同一 HTML 元素设置样式时,不同选择器的优先级不同,优先级低的样式将被高优先级的样式层叠掉。

    CSS 权重优先级顺序简单表示为:
    !important > 行内样式 > ID > 类、伪类、属性 > 标签名 > 继承 > 通配符

    6.链入方式上有区别。

    link导入方式:

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

    @import导入的方式:

    <style type="text/css">   

    @import的书写方式

      @import 'style.css' //Windows IE4/ NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不识别 
      @import "style.css" //Windows IE4/ NS4, Macintosh IE4/NS4不识别 
      @import url(style.css) //Windows NS4, Macintosh NS4不识别 
      @import url('style.css') //Windows NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不识别 
      @import url("style.css") //Windows NS4, Macintosh NS4不识别 

    由上分析知道,@import url(style.css)和@import url("style.css")是最优的选择,兼容的浏览器最多。从字节优化的角度来看@import url(style.css)最值得推荐。

  • 相关阅读:
    动画处理<并行和串行>
    flutter 动画 practice
    flutter AnimationBuilder
    flutter 动画
    Flutter Animation AnimatedBuilder
    Flutter 与 Android 的交互
    Flutter:教你用CustomPaint画一个自定义的CircleProgressBar
    Flutter裁剪图片
    Flutter 实现图片裁剪
    soundpool
  • 原文地址:https://www.cnblogs.com/jhflyfish/p/11969886.html
Copyright © 2020-2023  润新知