@import和link的区别

使用媒体查询进行响应式布局,有三种实现方法:

  1. 使用写在style中的@media;
  2. 在style中使用@import关键字导入样式表;
  3. 使用link标签导入样式表;

问题:其中,在使用@import导入样式表会出现样式表中的样式完全没有产生效果的现象,由于水平有限,理解不深,下边就对这一现象进行简单的分析,以此来学习@import和link

下面是正确的产生预期效果的代码

<!--HTML代码-->
<div id="container">
    <div id="s1"></div>
    <div id="s2"></div>
    <div id="s3"></div>
    <div id="s4"></div>
</div>
/*css样式代码*/


        @import url("../../css/style1.css") all and (min-width: 1024px);
        @import url("../../css/style2.css") all and (max-width: 1024px) and (min-width: 900px);

        #container {
            width: 80%;
            margin: 0 auto;
            height: 500px;
            background-color: #F6AF55;
        }
/*外部样式表style1.css*/
#s1,#s2,#s3,#s4{
    width: 24%;
    height: 100px;
    background-color: black;
    float: left;
    margin-left:1%;
    margin-top: 20px;
}

运行效果:
这里写图片描述

/*外部样式表style2.css*/
#s1,#s2,#s3,#s4{
    width: 30%;
    height: 100px;
    background-color: red;
    float: left;
    margin-left:1%;
    margin-top: 20px;
}

运行效果:
这里写图片描述

导致无法出现正常效果的错误代码:

/*css样式代码*/
          #container {
            width: 80%;
            margin: 0 auto;
            height: 500px;
            background-color: #F6AF55;
        }
        @import url("../../css/style1.css") all and (min-width: 1024px);
        @import url("../../css/style2.css") all and (max-width: 1024px) and (min-width: 900px);

原因:由于@import的特殊性,所以他放的位置只能是在style的最前面,如果放在后边,他将会被忽略。


@import和link的几点简单的区别:
1,从属关系上:@import是css提供的语法规则,他只有导入样式表的作用;
而link标签是HTML标签它的功能不止有引入样式。
2,加载顺序上:@import是只有在页面加载完毕之后才能够引入样式;而link标签的
加载是可以在页面加载的过程中一并进行加载的,这个也是造成了目前提倡使用link而不提倡使用@import的原因。效率高!
3,兼容性上:@import是在css2.1之后才具有的属性,只有在IE5+之后才会被兼容使用,但是link是一个HTML标签,所以他不存在兼容性问题。但是随着时间的发展,IE5之前的浏览器将会被逐一的取缔,所以现在基本上是无须担心兼容性问题。
4,DOM的可控性:@import由于只是一个css语法规则,所以在使用js进行DOM操作的时候,是不能操纵@import来进行样式的改变的。可以通过操纵link来进行改变样式。

关于@import的注意点:
1:@import规则一定要先于除了@charset的其他任何的css规则。即如果想要在style中再添加另外的css样式时,一定要记住写在@import的后边。
2:从其他博客中借鉴的关于@import的最兼容的写法是:
@import url(style.css)和@import url(“style.css”);这两种方法的兼容性最高,
3 :目前更加追求的是高性能的网站设计,所以样式表的并行载入也应当考虑进来,所以为了能够使网页的加载速度更快,需要使用link来代替@import。这一点在一篇技术博客中他使用了一些http瀑布状图表来详细的描述@import的特点【https://www.qianduan.net/high-performance-web-site-do-not-use-import/】
4:不建议使用@import!!!;


最后的话:
人这一辈子,从幼稚到成熟,不知道要辜负多少人,流下多少眼泪。而自己也终究会为这份幼稚付出代价。 对自己好一点,也对身边的人温柔一点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值