both introduce
to solve this problem through css selector priority
when talking a little more specifically about ie9, The swiper container adds the class name isIE9
and then everything in idangerous.swiper.css is prefixed with .isIE9
to ensure that the priority is higher than that in swiper.min.css
first of all, make it clear that webpack is packaged, which can be understood as the compilation time, and there is no way to predict the runtime environment during the compilation time.
can provide you with the following implementation ideas:
- is also mentioned by the students upstairs, adding a specific
class prefix, but this modification is very expensive. How many class are there in the unpredictable CSS file
- use
System.import () , but make sure you use the ExtractTextPlugin plugin. Remember to set the ExtractTextPlugin configuration allChunks: true in the webpack configuration file (this scheme cannot export CSS files directly, but CSS in JS )
- introduce the
CSS file directly into the project as a string, and judge the environment to manually generate link tags
several solutions, you can try a wave, and you are not sure whether there are any other solutions based on webpack
.
A grumpy dynamic creation of link tags can be implemented in native js in index.html based on webpack, you can consider some methods upstairs to practice the pros and cons
.
just replace import with require
if (!isIE9) {
require('swiper/dist/css/swiper.min.css')
} else {
require('swiper2/dist/idangerous.swiper.css')
}
=
Why is it possible to test why it was stepped on? in principle, both import and require, are finally converted to webpack_require.
main.js randomly loads css
var r = Math.random();
if(r>0.5) {
require('./assets/css1.css')
}else {
require('./assets/css2.css')
}
css1:
body {
background-color: -sharp2C3E50;
}
css2:
body {
background-color: cadetblue;
}
effect


csswebpacknavigator
webpack's require.ensure can see that it is the
that handles demand loading.
if(!isIE9){
require.ensure([], function () {
require('swiper/dist/css/swiper.min.css');
})
}else{
require.ensure([], function () {
require('swiper2/dist/idangerous.swiper.css');
})
}
how to use it, you can take a look at it in the document
is actually the problem of js loading css on demand.
const loadCss = url => {
let link = document.createElement("link");
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", url);
document.body.appendChild(link);
};
if(!isIE9)
loadCss(...)
else
loadCss(...)
the loaded address must be static, and it is good to use [if lt IE 9] to judge
.