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

2024-02-23

我正在尝试 LESS(不喜欢 SASS 语法),并一直试图找出用它进行媒体查询的最佳方法是什么。

我通读了this http://alwaystwisted.com/post.php?s=2012-05-05-everyday-im-bubbling-with-media-queries-and-less博客文章介绍了如何使用 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
}

我知道这可能存在一些问题,但当前的设置似乎没有那么有益。

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

(以防万一,我使用 dotless 作为引擎来解析我的.less files)


首先,您在问题中给出的解决方案肯定有一定的用处。

然而,我认为的一件事是,将所有媒体查询变量定义为彼此“靠近”会很好(您的解决方案将在每个媒体查询调用下都有它们)。因此,我提出以下建议作为替代解决方案。它也有缺点,其中之一可能是需要预先编写更多代码。

更少的代码

//define our break points as variables
@mediaBreak1: 800px;
@mediaBreak2: 1024px;
@mediaBreak3: 1280px;

//this mixin builds the entire media query based on the break number
.buildMediaQuery(@min) {
    @media only screen and (min-width: @min) { 

        //define a variable output mixin for a class included in the query
        .myClass1(@color) {
            .myClass1 {
               color: @color;
            }
        }

        //define a builder guarded mixin for each break point of the query
        //in these is where we change the variable for the media break (here, color)
        .buildMyClass1() when (@min = @mediaBreak1) {
           .myClass1(red);
        }
        .buildMyClass1() when (@min = @mediaBreak2) {
           .myClass1(green);
        }
        .buildMyClass1() when (@min = @mediaBreak3) {
           .myClass1(blue);
        }

        //call the builder mixin
        .buildMyClass1();

        //define a variable output mixin for a nested selector included in the query
        .mySelector1(@fontSize) {
           section {
              width: (@min - 40);
              margin: 0 auto;
              a {
                font-size: @fontSize;
              }
           } 
        }

        //Again, define a builder guarded mixin for each break point of the query
        //in these is where we change the variable for the media break (here, font-size)
        .buildMySelector1() when (@min = @mediaBreak1) {
           .mySelector1(10px);
        }
        .buildMySelector1() when (@min = @mediaBreak2) {
           .mySelector1(12px);
        }
        .buildMySelector1() when (@min = @mediaBreak3) {
           .mySelector1(14px);
        }

        //call the builder mixin
        .buildMySelector1();

        //ect., ect., etc. for as many parts needed in the media queries.
    }
}

//call our code to build the queries
.buildMediaQuery(@mediaBreak1);
.buildMediaQuery(@mediaBreak2);
.buildMediaQuery(@mediaBreak3);

CSS 输出

@media only screen and (min-width: 800px) {
  .myClass1 {
    color: #ff0000;
  }
  section {
    width: 760px;
    margin: 0 auto;
  }
  section a {
    font-size: 10px;
  }
}
@media only screen and (min-width: 1024px) {
  .myClass1 {
    color: #008000;
  }
  section {
    width: 984px;
    margin: 0 auto;
  }
  section a {
    font-size: 12px;
  }
}
@media only screen and (min-width: 1280px) {
  .myClass1 {
    color: #0000ff;
  }
  section {
    width: 1240px;
    margin: 0 auto;
  }
  section a {
    font-size: 14px;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

媒体查询分组而不是多个分散的匹配媒体查询 的相关文章

  • Chrome DevTools:计算样式与 css 规则不同?

    当我在 CSS 文件中定义 4px 时 我的 DOM 元素的 border top width 怎么可能是 0px 当我使用 Chrome DevTools 检查元素时 我发现计算的样式告诉 0px 而最上面的 css 规则是 4px 而且
  • a:active 不起作用

    我在这里很困惑 the a active不工作 但是 hover工作正常 我已经尝试了很多事情 但这个让我陷入困境 而且真的很令人困惑 我刚刚在表中添加了链接 我已将单元格添加到了类中 menu1 现在 当我访问活动页面时 活动链接不会突出
  • 是否可以将CSS应用于半个字符?

    我在寻找什么 一种打造风格的方法HALF一个角色的 在这种情况下 一半的字母是透明的 我目前搜索和尝试过的内容 没有运气 设置半个字符 字母样式的方法 使用 CSS 或 JavaScript 设置字符的一部分样式 将 CSS 应用于字符的
  • 将单选按钮放置在图像上

    我试图在图像上的确切位置放置一些单选按钮 我已将两者都放在 Div 中 但我不知道下一步该怎么做 这是我想要放置单选按钮的位置 红色圆圈 到目前为止 这是我的代码 center display block margin left auto
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • ReactTable 修复了最后一行

    我正在使用 ReactTable 最后我需要创建一些摘要 当分页存在时 它每次都应该可见 可以用react table来实现吗 我可以通过创建下一个表来部分解决这个问题 但我没有找到如何隐藏标题的方法 另一个问题是调整列宽度时 它不会应用于
  • CSS - SASS:使用基于@each的mixins来生成多个背景

    我正在使用 CSS 创建发型和颜色目录 我有 55 种不同颜色和发型的组合 每种发型和颜色都有自己的图像 SVG 文件 我需要将它们全部组合成一个背景 使用 CSS3 的多背景功能 我编写了这个混合来生成多个背景 它基于 mixin在这篇文
  • Menu.Item 中的 Antd 自动换行

    可以在 Menu Item 组件中应用自动换行吗 示例不起作用
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • div Hello div div Howdy dere pardner div div div 我明白它的作用 但为什么叫这个名字both 什么是both mean 两者的意思是 一组两件事中的每一项 左 和 右 两件事
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • CSS 到底如何计算相对尺寸

    我想更好地理解某些 CSS 行为 这与具体问题无关 我只是在调试网站时遇到的 让我们在固定位置的 div 中放置一个全宽图像 div img style width 100 src https via placeholder com 150
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说

随机推荐

  • 重绘canvas html5而不闪烁

    我的屏幕每 25 毫秒重绘一次 并且图像闪烁 这是我的代码 var FRAME RATE 40 var intervalTime 1000 FRAME RATE gameLoop function gameLoop context clea
  • 使用装饰器进行 Python 日志记录

    这是我们面对装饰器时遇到的第一个例子 但我无法意识到我到底想要什么 一个名为 LOG 的简单装饰器 它应该像这样工作 LOG def f a b 2 c d pass 结果应该是这样的 f 1 pippo 4 paperino luca E
  • 阻止执行父事件处理程序

    我有一棵 div 树 div div div div div div 当单击 div 时 它会使其子级不可见 即单击 a 将使 b 和 c 不可见 function func if childId hasClass visible chil
  • 带有条件的 Ansible 即席命令

    我想运行此剧本的 Ansible ad hoc 命令 hosts localhost tasks name Print message if ansible version is greater than 2 7 0 debug msg A
  • 在 Ruby 中,术语“元类”、“特征类”和“单例类”完全是同义且可替换的吗?

    的文档Class http www ruby doc org core 2 1 2 Class html类有一个涉及 元类 的令人难以置信的混乱图 我试图揭开这里到底发生了什么的神秘面纱 这三个词都是 元类 特征类 单例类 同义 in Ru
  • 什么是snakemake元数据文件?我什么时候可以删除那些?

    我注意到我的备份 rsync 脚本花费了相当多的时间从以下位置复制具有随机名称的内容 snakemake metadata文件夹 这些文件有什么用 在 Snakemake 运行完成后我可以安全地删除它们吗 或者它们对于 Snakemake
  • 从 jar 文件加载图像

    我有一个可以在 Netbeans IDE 中完美运行的应用程序 但是当从 dist 目录中的 jar 文件运行时 不会加载必要的图像 我花了 1 1 2 天阅读这个论坛和其他论坛 试图找到答案 但我无法让 jar 图像工作 这是我的代码的摘
  • C# 和 SQL Server 中的 DateTimeOffset 解析

    文档指出 NET 和 SQL Server 中的分辨率均为 100 纳秒 DateTimeOffset 值的时间部分以 100 纳秒为单位 称为刻度 进行测量 C 精度 100 纳秒 SQL服务器 然而 SQL 似乎删除了最后一位数字 例如
  • 循环内导入模块

    我有一个文件 我们称之为 foo py 它执行一些操作 包括通过串行端口发送一些数据并通过电子邮件发送返回的响应 我有另一个文件 看起来像这样 iteration 0 while True iteration 1 do some stuff
  • 在不使用外部 gem 的情况下将文件上传到 db Rails 3

    我有一个任务 我需要在 Rails 3 2 中上传一个文件 txt 而不使用任何外部 gem 来完成腿部工作 恐怕是不可协商的 该文件还需要保存到数据库中 我有以下代码 但是当我尝试使用表单上传 创建新附件时 它会返回错误 No route
  • 使用 --depth 1 进行浅层克隆、创建提交并再次拉取更新是否安全?

    The depth 1选项中git clone http git scm com docs git clone 创建一个shallow克隆历史记录被截断为指定数量的修订版 浅存储库有许多限制 您不能从中克隆或获取 也不能从其中推入或推入其中
  • 无法使用 JSF 2.0 重复标记的 varStatus 的“end”属性

    我正在使用repeatJSF 2 0 的标签用于循环对象列表并显示它们的一些属性 我想使用varStatus的属性repeat这样我就可以访问循环索引 最后一个列表项的编号 并判断是否已到达列表末尾 因此不会显示间隔符 我认为这会起作用
  • 安全的客户端脚本

    我有一个特殊的要求 其中一些关键算法必须在客户端脚本中处理 并且必须得到保护 使用 javascript 只会公开算法 我目前正在评估保护客户端脚本上的算法的方法 感谢任何建议和替代方法 我正在考虑的一个选择是将一个小小程序下载到本地 PC
  • 使用温莎城堡配置文件是否可以委托给另一个项目声明?

    使用 Castle Windsor 是否可以声明一个类型一次并将此声明用于多个 Id 而不是每次都完整地写出来 例如 我们有实现 IFoo 的 Widget 类 并且我们需要键 IFoo A 和 IFoo B 从 Castle 获取 Wid
  • CSS 优先级和针对特定元素

    我的问题应该很简单 出于某种原因 我今天无法理解它 我正在制作一个结构如下的菜单 div class wrapper ul li class menu item a href Menu Item a div class inner a hr
  • 如何实现index-core风格的索引状态monad?

    我试图理解中的索引单子index core http hackage haskell org package index core风格 我陷入了一个悖论 即在构建一些示例之前我无法理解原理 而在理解原理之前我无法构建示例 我正在尝试构建一个
  • 如何使 TAB 键关闭 TComboBox 而不丢失当前位置?

    我的表单上有一个 TComboBox 其 Style 属性设置为 csDropDownList 如果我打开下拉列表并使用鼠标或键盘选择一个选项并按 Enter 键 则下拉框将关闭 并且在触发 KeyPress 事件处理程序之前更改 Item
  • 使用 rmarkdown 在 pdf 中插入 GIF

    我正在使用 rmarkdown 生成 HTML 和 pdf 文件 在我的 Rmd 文件中 我包含了一个如下所示的 GIF www script gif 当我将其编织为 HTML 时 它工作正常 rmarkdown render docume
  • Xcode 10.3 中缺少模拟器[重复]

    这个问题在这里已经有答案了 更新到 Xcode 10 3 后 我发现我的一些模拟器丢失了 尝试从 窗口 gt 设备和模拟器 手动添加一个会产生错误 重新启动计算机对我有用
  • 媒体查询分组而不是多个分散的匹配媒体查询

    我正在尝试 LESS 不喜欢 SASS 语法 并一直试图找出用它进行媒体查询的最佳方法是什么 我通读了this http alwaystwisted com post php s 2012 05 05 everyday im bubblin