javascript - 如何使用 javascript vuejs 有条件地导入内部 css?

标签 javascript css vue.js

目前,我必须根据用户使用的浏览器类型有条件地导入 css 文件。为了不使 css 文件全局化,我有以下代码:

  created() {
      this.checkIsMobile()
  },
  methods: {
      checkIsMobile(){
        var isMobile = new MobileDetect(window.navigator.userAgent);
        if (isMobile.mobile()){
          $('head').append('<link rel="stylesheet" type="text/css" href="@/assets/css/main-pc.css">');
        }else {
          $('head').append('<link rel="stylesheet" type="text/css" href="@/assets/css/main-m.css">'); //must be load external css
        }
      },

它不起作用,因为它是内部 css。

我无法导入样式标签,因为我的 css 中有一些指向其他图像的链接。以样式导入会导致未找到相关模块

不上传css文件怎么办?

编辑:This question理论上和我刚才做的一样(没有 jQuery)

最佳答案

Vuejs 以不同的方式编译,因此导入或添加内部 css 文件到 head 不起作用。只需使用 require:

    if (isMobile.mobile()){
      require('@/assets/css/mobile.css');
    }else {
      require('@/assets/css/pc.css');
    }

关于javascript - 如何使用 javascript vuejs 有条件地导入内部 css?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59387197/

相关文章:

javascript - 我正在尝试使用纯 JavaScript 在 AJAX 调用中添加授权 header 。但给出错误

html - 基于 Bootstrap 的移动网站 - 删除额外的填充

javascript - Vuejs数组渲染

javascript - 如何在 Vuetify v-data-table 上对齐标题

javascript - d3.js 为 Y 轴包装长标签

javascript - 为什么我的 Javascript 代码没有向对象添加新属性?

javascript - 如何识别正在使用哪个元素滚动?

html - 将提交按钮附加到输入

html - li 元素在 sibling 有不同数量的文本行时下推

vue.js - 如何修复 : this. setDynamic 不是函数