代码之家  ›  专栏  ›  技术社区  ›  ftravers

影响父样式的CSS元素样式

  •  0
  • ftravers  · 技术社区  · 7 年前

    我有一个 <div> 包含一个 <button> . 每个人都有自己的班级。在每个类的样式中,我指定 background-color 财产。出于某种原因,子按钮会覆盖父属性。

    .tab {
      background-color: red;
    }
    
    .tab,
    button.active {
      background-color: blue;
    }
    <div class="tab">
      <button>My Button</button>
      <button class="active">button 2</button>
    </div>

    下面是一个JS小提琴,显示它:

    https://jsfiddle.net/jp3kbfwn/

    3 回复  |  直到 7 年前
        1
  •  3
  •   infused    7 年前

    删除.tab后面的逗号:

    .tab button.active {
        background-color: blue;
    }
    

    用逗号,它意味着将.tab类和button.active的背景色设置为蓝色。

        2
  •  0
  •   Anonymous    7 年前

    这个 .tab 元素获取蓝色背景,因为您在 标签 和 button.active 定义它们的样式时。

    在此上下文中,逗号意味着应用于这两个元素。

        3
  •  0
  •   Oscar W    7 年前

    这是因为您在列出CSS元素,而不是使用选择器。以下是CSS的外观。

    <style>
    .tab {
        background-color: red;
    }
    .tab > button.active {
        background-color: blue;
    }
    </style>
    

    注意我在 > 选择器