zoukankan      html  css  js  c++  java
  • Vue style里面使用@import引入外部css, 作用域是全局的解决方案

    使用@import引入外部css,作用域却是全局的

    <template>
    
    </template>
    
    <script>
        export default {
            name: "user"
        };
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    @import "../static/css/user.css";
    .user-content{
      background-color: #3982e5;
    }
    </style>
    Add "scoped" attribute to limit CSS to this component only

    这句话大家应该是见多了, 我也使用scoped, 但是使用@import引入外部样式表作用域依然是全局的,看了一遍@import的规则后, 进行初步猜测,难道是@import引入外部样式表错过了scoped style?

    又回想到此前看过的前端性能优化文章里面都有提到,在生产环境中不要使用@import引入css,因为在请求到的css中含有@import引入css的话,会发起请求把@import的css引进来,多次请求浪费不必要的资源。

    @import并不是引入代码到<style></style>里面,而是发起新的请求获得样式资源,并且没有加scoped

    <style scoped>
    @import "../static/css/user.css";
    </style>

    我们只需把@import改成<style src=""></style>引入外部样式,就可以解决样式是全局的问题

    <style scoped src="../static/css/user.css">
    <style scoped>
    .user-content{
      background-color: #3982e5;
    }
    </style>

    整体代码如下:

    <template>
    
    </template>
    
    <script>
        export default {
            name: "user"
        };
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped src="../static/css/user.css">
    <style scoped>
    .user-content{
      background-color: #3982e5;
    }
    </style>

    参考链接

  • 相关阅读:
    codevs 4511 信息传递(NOIP2015 day1 T2)
    caption标签,为表格添加标题和摘要
    用css样式,为表格加入边框
    table标签,认识网页上的表格
    认识div在排版中的作用
    使用ol,添加图书销售排行榜
    使用ul添加列表
    使用<pre>标签为你的网页加入大段代码
    想加入一行代码吗?使用<code>标签
    <address>标签,为网页加入地址信息
  • 原文地址:https://www.cnblogs.com/ajaxlu/p/9086651.html
Copyright © 2011-2022 走看看