我想知道是否可以使用SASS为每个媒体查询(移动设备,平板电脑,桌面等)分别创建一个文件,然后使用内联媒体查询将sass编译为该类的内联媒体查询那个具体的文件?
例如:
说我有一个sass partial _article.scss。
.test-class {
color: #000000;
background: red;
width: 980px;
@media only screen and (max-width : 300px) {
width: 100px;
height: 100px;
}
}
此部分导入base.scss。
@import "partials/article";
现在我想要的是,而不是在base.css文件中编译每个媒体查询,我希望每个与移动设备,平板电脑等相关的特定媒体查询被编译到自己的文件(mobile.css,tablet,css)等)。
换句话说,我想要内联媒体查询的好处,同时仍然为每个设备提供非常模块化的文件结构。当我提供文件时,我只需要服务器2个小文件(base.css和mobile.css)。
这可能吗?我目前只是创建一个mobile.scss文件,然后手动覆盖我在工作中的项目中的样式,这将导致以后出现问题。
有更好的选择吗?
谢谢
答案 0 :(得分:-4)
您可以使用jQuery执行此操作:
function adjustStyle(width) {
width = parseInt(width);
if (width < 777) {
$(".body").attr("href", "css/small.css");
} else if ((width >= 778) && (width < 980)) {
$(".body").attr("href", "css/medium.css");
} else {
$(".body").attr("href", "css/big.css");
}
}
$(function() {
adjustStyle($(this).width());
$(window).resize(function() {
adjustStyle($(this).width());
});
});
更好的方法是包含一个设备列表,然后包含您的CSS表格,这样您就不会有双重下载,这意味着只有在设备匹配时才会下载。为此,您可以使用Detect Mobile Browsers处的任何语言,然后根据自己的喜好进行调整。