相关疑难解决方法(0)

CSS预处理器,可以在@media查询中定义变量

目前,我使用LESS作为我的主要CSS预处理器.我(我相信很多人都有这个需要)在@media查询中定义变量,如:

@media screen and (max-width: 479px) {
    myVar: 10px;
}
@media screen and (min-width: 480px) and (max-width: 767px) {
    myVar: 20px;
}
@media screen and (min-width: 768px) {
    myVar: 30px;
}

.myElement {
    padding: @myVar;
}
Run Code Online (Sandbox Code Playgroud)

这在LESS中不起作用,因为编译性质(@myVar仅在每个特定范围内定义@media,但不是全局定义).即使我@myVar在媒体查询之前全局定义,它也不会根据媒体查询进行更新,.myElement无论如何都会获得初始值.

所以,问题是,是否有可能在任何其他CSS预处理器中实现这一点,或者我们注定要覆盖.myElement每个媒体查询中的内容?这个最简单的例子不是问题,但在实际项目中,这可以节省大量时间和复制/粘贴.

编辑: 不是解决方案,而是我的特定项目的解决方法:

  1. 将font-size设置<html>为基本字体大小
  2. myVar定义LESS变量rem而不是px基本字体大小的衍生
  3. 使用@media查询调整不同媒体的基本字体大小.
  4. 可选使用REM单元polyfill用于浏览器,但尚不支持rem(http://caniuse.com/#search=rem).这在IE 8及更低版本中不起作用,但不是因为缺乏支持rem- 它不支持媒体查询.所以IE8及以下版本无论如何都可以获得全尺寸无媒体查询样式表.

代码段: …

css sass less media-queries

11
推荐指数
3
解决办法
3197
查看次数

媒体查询分组而不是匹配的多个分散媒体查询

我正在尝试LESS(不是SASS语法的粉丝)并且一直试图找出用它进行媒体查询的最佳方法.

我通过这篇博文了解了如何用LESS"做"媒体查询,但它指出了这一事实,这会导致所有媒体查询在生成的CSS中分离和分散.这并没有真正打扰我(我可以不关心结果,更多关心它的工作).困扰我的是一条评论,该评论在从iOS设备查看时讨论了问题,而评论者发现,一旦整合了媒体查询,问题就解决了.

有没有人找到使用LESS媒体查询的好解决方案?

我开始这种工作的方式就像......

//Have an overall structure...
.overall(){
    //Have ALL your CSS that would be modified by media queries and heavily use
    //variables that are set inside of each media queries.
}
@media only screen and (min-width: 1024px){
    //Define variables for this media query (widths/etc)
    .overall
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能存在一些问题,但目前的设置似乎并没有那么有用.

所以我想我的问题是,是否有任何好的解决方案/黑客允许分组媒体查询?

(只是因为我使用无点作为解析我的.less文件的引擎)

css less media-queries dotless

4
推荐指数
1
解决办法
6021
查看次数

如何使用LESS更有效地使用媒体查询?

我正在使用Bootstrap和LESS进行响应式网页设计.

我过去喜欢LESS的原因之一是因为它可以将HTML元素的所有属性保存在一起.

我在下面的内容是定义.sponsors块的一些规则,然后当视口> = 768px时应用于该块内的元素的一个规则

我不喜欢这条规则如何需要大量额外的代码,以及该规则与其他规则的区别.这也感觉不对.

有什么更好的方法/组织这个?我是否需要将所有内容分解为顶级@media组?

.sponsors
{
    li
    {
        .thumbnail
        {
            padding-top:20px;
            padding-bottom:15px;
            img
            {
                display:block;
                margin:0 auto;
            }
        }
    }
}


@media (min-width: 768px)
{

    .sponsors
    {
        li
        {
            .thumbnail
            {
                padding-bottom:0px!important;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有类似的东西,那将是非常甜蜜的:

.thumbnail
{
    &[@mediaWidth >=768]
    {
    padding-bottom:0px!important;
    }
}
Run Code Online (Sandbox Code Playgroud)

css less media-queries responsive-design twitter-bootstrap

2
推荐指数
1
解决办法
2087
查看次数