【问题标题】:Why does child selector > not work with media queries in sass?为什么子选择器 > 不适用于 sass 中的媒体查询?
【发布时间】:2017-07-09 18:56:10
【问题描述】:

假设在某种情况下我需要 css 中的子选择器,所以我会将 scss 处理为:

#bslider {
     > img {
           display: block;
        }
     > #slide {
        .carousel-inner {
            perspective: 1000;
        }

    }
}

所以> 子选择器在 scss 中效果很好。但现在考虑我是否也需要媒体查询,所以我会这样做:

#bslider {
     > img {
           display: block;
        }
     > @media only screen {
        .carousel-inner {
            perspective: 1000;
        }

    }
}

但由于媒体查询,它会出错。为什么我不能在@media 规则之前使用>

建议我应该在 id、class 或 tag 用作选择器之前使用 >。但是我必须将它添加到所有选择器中才能实现这一点:

#bslider {

    > img {
      display: block;
    }
      @media only screen > {
         .carousel-inner {
            perspective: 1000;
        }
        .img {
          display: inline;
        }

        .img2 {
          display: inline-block;
        }


    }
}

【问题讨论】:

  • 媒体查询不是选择器
  • 因为没有意义。

标签: css sass media-queries


【解决方案1】:
#bslider {
     > img {
       display: block;
     }
     @media only screen {
        > .carousel-inner {
            perspective: 1000;
        }
    }
}

不能在media 之前使用> 的原因是> 是选择器的一部分,而media 不是选择器,而是根据格式显示样式的条件/分辨率等

编辑:

您可以使用其他选择器包装您的媒体查询,只是不要忘记将它添加到您的 html 中。

  #bslider {
     > img {
       display: block;
     }
     > .myContainer{
         @media only screen {
            .carousel-inner {
                perspective: 1000;
            }
         }
      }
   }

【讨论】:

  • 这个解决方案对我来说有点不方便。让我解释一下我想要什么。
  • 为你添加了一个sn-p,不知道你能做到吗?不要忘记接受答案
猜你喜欢
  • 2021-01-02
  • 2016-11-26
  • 2013-01-28
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2018-05-12
相关资源
最近更新 更多