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

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(使用前将#替换为@)

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

  • 我可以根据同一容器中另一个元素的大小强制内联文本换行吗?

    考虑这个 jsbin http jsbin com ElIKOKe 3 edit html css output 我有这个html div class container span The lime outlined container h
  • 滚动时将菜单栏固定在顶部[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我见过一些网站 当用户向下滚动页面时 会在右侧或左侧弹出一个框 另外 注意到这个模板 http www mvpthemes com m
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • 嵌套计算操作

    希望这很简单 我想使用CSS calc操作来执行两个计算 我想将宽度设置为等于 100 7 2 但是 如果我尝试在 CSS 计算操作中执行多个操作 则会失败 width calc 100 7 2 如何在一个 CSS 语句中执行多个计算操作
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上
  • 内嵌显示定义术语和描述

    我正在为页面上的某些元素使用定义列表 并需要它们内联显示 例如 它们normally看起来像 我需要它们看起来像 注意多个 DD 我可以让它们在 moz 中使用 float 来正常工作 但无论我尝试什么 它们都无法在 IE 中工作 我通常会
  • 如何简化这个 LESS CSS Box-shadow mixin? (带有“方向”的多个阴影)

    如何减少这段代码 可能使用循环 以拥有一个接受方向和数字的 函数 dir 想要的 方向 number 我需要多少次影子 这里是10次 color 阴影的颜色 Example 可以工作 但不是很容易使用 perspective box dir
  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 使用纯 CSS 创建向上和向下箭头图标或按钮

    我正在尝试使用纯 CSS 且无背景图像创建如下所示的 向上和向下 控制按钮 但是当我在 中添加箭头的CSS时li className after or li className before 主盒子的位置移动了 这是我遇到的问题的小提琴 g
  • Quill 公开可用的 CSS

    我最初的目的是从 PrimeFaces TextEditor 组件输出的 HTML 生成 PDF 文件 而该组件又基于 免费开源 WYSIWYG 编辑器 Quill 为此 我需要获取 TextEditor 组件生成的 HTML 将其包含在
  • 是否可以设置输入文本值的样式?

    我想知道是否可以设置输入框值的样式 such http jsfiddle net aCwhY as
  • 重新创建 CSS3 过渡三次贝塞尔曲线

    在 CSS3 过渡中 您可以将计时函数指定为 cubic bezier 0 25 0 3 0 8 1 0 在该字符串中 您仅指定曲线上点 P1 和 P2 的 XY 因为 P0 和 P3 始终分别为 0 0 0 0 和 1 0 1 0 根据苹
  • 使用内联样式有哪些风险?

    A 内容安全政策 https developer mozilla org en US docs Web HTTP CSP with a default src or style src指令将阻止内联样式应用于
  • TDD/测试 CSS 和 HTML? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法测试 CSS 和 HTML 例如 有时某些通知会受到某些 CSS 更改的影响 我不想每次进行更改时都手动测试所有通知 Tha
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 没有类的 CSS 选择器

    我正在使用选择器来选择不具有一个类的所有元素 list th not foo some rules 我怎样才能将其应用到多个班级 list th not foo list th not bar some rules 上面的 CSS 当然不会
  • CSS - div 与父 div 底部对齐(内联块)

    我知道这个 html 很草率 有一些不必要的额外 div 但无论如何 我无法理解为什么 ID 为 info box right 的 div 与父 div 的底部对齐 您可以看到 文本 与下面的 jsfiddle 示例的底部 有什么想法可以让

随机推荐

  • 重绘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