【问题标题】:specifying css if surrounded by a class如果被一个类包围,则指定 css
【发布时间】:2012-07-05 18:27:41
【问题描述】:

我试图在我的 rails 应用程序中执行以下操作:

假设我有一个类 .foo

 .foo{ color:red;}

我还有另一个类.bar

.bar{ color:green;}

我希望将 foo 元素的颜色更改为蓝色,仅当被 bar 类包围时

示例:这里我希望“blah blah”是蓝色的

<div class = "bar" >
  <div class = "foo" >
  blah blah
  </div>
</div>

我该怎么做?不使用 LESS 或类似的东西。

【问题讨论】:

    标签: ruby-on-rails css sass


    【解决方案1】:

    这样写:

    .bar .foo{
    color:blue
    }
    

    & 更具体的写法如下:

    .bar > .foo{
        color:blue
        }
    

    查看http://jsfiddle.net/DEmk7/1/

    【讨论】:

    • 也许还值得一提 &gt; 组合子,因为“环绕”有点暗示它可能只用于直系子女。
    【解决方案2】:

    您可以用空格分隔 css 选择器以指定嵌套。 例如

    .bar .foo
    {
        color:blue;
    }
    

    值得注意的是,在这种格式下,它将同时匹配:

    <div class = "bar" >
      <div class = "foo" >
      blah blah
      </div>
    </div>
    

    <div class = "bar" >
      <div class = "yay" >
        <div class="foo">
          blah blah
        </div>
      </div>
    </div>
    

    使用 ">" 子选择器将允许您仅定位直接子级,这意味着不会匹配带有 yay 的子级。

    【讨论】:

      【解决方案3】:

      根据这个例子:

      <div class = "bar" >
        <div class = "foo" >
        blah blah
        </div>
      </div>
      

      你也可以给你的 div 类 foo 另一个类。

      <div class = "bar" >
        <div class = "foo blue" >
        blah blah
        </div>
      </div>
      

      在你的 css 中你写以下内容:

      .foo{ color:red;}
      .bar{ color:green;}
      .blue{color:blue !important;}
      

      【讨论】:

      • !important 通常应该避免使用自然的css级联,一篇有用的文章:coding.smashingmagazine.com/2010/11/02/…
      • 我认为使用它没有问题。它工作正常,所以对我来说没有问题。
      • 感谢您保留我的评论@Liquid
      • 确实,亚历克斯在阅读了那篇文章后立即被说服了,所以我试图传播这个词。
      • 只是在我的网站上寻找一个小问题。经过 1 小时的思考和寻找正确答案,我终于用 ... !important; 修复了它。 :D 抱歉,只是想提一下。
      猜你喜欢
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 2018-09-09
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多