【问题标题】:Duplicate values on elements in different media queries不同媒体查询中元素的重复值
【发布时间】:2016-06-26 15:12:19
【问题描述】:

我正在尝试清理我的大量媒体查询,并且我已经删除了元素值中与默认元素值相同的所有更改,以便改为显示。

我的问题是,当重复值存储在单个媒体查询中时,我有哪些选择?

这是一个例子:

@media only screen and (min-width: 480px) and (max-width: 767px) {
.fa.fa-check
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}
.fa.fa-shopping-cart
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}
.fa.fa-user
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}

@media only screen and (max-width: 479px) {
.fa.fa-check
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}
.fa.fa-shopping-cart
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}
.fa.fa-user
{
    font-size: 3em;
    border-radius: 100px;
    height: 100px;
    line-height: 100px;
    width: 100px;
}

我有很多元素值的变化,这些变化在媒体查询中也不重复,所以我不能将它们全部组合在一起。还有其他选择吗?

【问题讨论】:

    标签: html css duplicates media-queries elements


    【解决方案1】:

    如果不查看您的确切代码库(或真实世界的示例),很难提供具体的帮助。仅使用上面的示例,我建议为这些元素中的每一个都设置一个基类,这样您就不会一遍又一遍地重复这些样式。

    编辑:作为使用基类的示例,对于上述代码,您可以创建以下类并将其添加到要使用这些样式属性的每个元素(因此所有图标元素):

    .standard-icon {
      font-size: 3em;
      border-radius: 100px;
      height: 100px;
      line-height: 100px;
      width: 100px;
    }
    

    这将消除大量重复代码并创建更加模块化的网站设计。

    就媒体查询/重复值而言,以下是我在使用的网站上处理响应式项目的方式。我考虑了三种主要的设备大小,desktoptabletmobile。因此,如果我正在创建一个图标,例如在两个或更多设备尺寸上使用默认样式,我将执行以下操作:

    /* Default styling */
    .icon-example {
      width: 40px;
      height: 40px;
      margin: 40px 0; /* Style which spans two or more queries */
      color: white;
      background: black;
    }
    
    @media @mobile-grid {
      margin: 30px 0; /* Overriding this style only on mobile */
    }
    

    现在我不必为每个媒体查询声明margin 值,只需为不同的媒体查询覆盖它即可。我还建议研究并使用像 Sass 或 LESS 这样的 CSS 预处理器。它们使用起来非常简单,并有助于使您的代码尽可能干燥。祝你好运!

    【讨论】:

    • 我会研究 CSS 预处理器!由于重复样式,我一直在为一堆重新定义警告而苦苦挣扎,这就是我试图清理媒体查询的原因。既然这不是我最强的套装,你愿意解释一下我将如何为这些元素中的每一个创建一个基类吗?我一直在尝试尽可能少地重复,但是如果我没有为每个媒体查询声明元素值,它将自动检测默认元素值,并且在上面的示例中以及在我的许多其他情况下都是默认值元素值不同。
    • 当然,我在原始答案中添加了一个基类示例!媒体查询有点棘手。尽量减少它们,尽量不要重叠查询。如果您有任何需要帮助的具体示例,请告诉我。
    • 好的,它看起来会像这样 (.fa.fa-check { .standard-icon } ) 还是我现在很迷茫?
    • 我的主要问题是:我需要更改媒体查询中不同元素的值,CSS 验证器将其作为重新定义值并给我警告。最小化我的媒体查询会删除一些警告,但其中大部分仍然存在,我不知道如何摆脱它们。如果您以前曾处理过此类问题并想尝试一下,我有一些示例。如果没有 - 我非常感谢您的帮助:)
    • 啊,所以你最关心的是验证器警告。有时这些有点过于敏感。您应该能够将其配置为更宽松或避免错误警告(听起来像是其中的一些警告)。我现在正在使用移动设备,但如果需要,应该会在几个小时内提供进一步帮助。如果你有你的文件和你正在使用的验证器的 URL,我非常愿意仔细看看,看看是否有什么你真正应该关心的。
    猜你喜欢
    • 2014-12-27
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多