【问题标题】:How to apply CSS to specific children of an element [closed]如何将 CSS 应用于元素的特定子元素 [关闭]
【发布时间】:2017-09-12 09:02:25
【问题描述】:

我有这个 CSS 并且正在寻找一种更智能/更好的方式来编写它。

daypicker>table>tbody>tr>td>button.btn.btn-sm.btn-secondary,
daypicker>table>tbody>tr>td>button.btn.btn-default.btn-info,
daypicker>table>tbody>tr>td>button.btn.btn-sm.btn-info,
daypicker>table>tbody>tr>td>button.btn.btn-sm{
    padding: 0.25rem;
    font-size: 0.8rem;
}

也许我应该将daypicker>table>tbody>tr>td 放入一个变量中?

从 StackOverflow 上的其他类似问题中,我了解到我可以使用通用选择器,但不知道如何在我的情况下使用它。

【问题讨论】:

  • 能否分享一下HTML代码
  • 您可以为所有这些元素添加一个唯一的类并以这种方式定位它,或者您可以通过删除嵌套的父元素来缩小范围,如果我正确理解您的问题,请使用daypicker > button
  • daypicker 不是元素类型,它可能是类名或 id;在这种情况下,您需要编写 .daypicker(如果是类名)或 #daypicker(如果是 id)。
  • 我在我的 Angular 项目中使用这个库。 github.com/Gillardo/ngx-bootstrap-datetime-popup 使用 bootstrap v.4 并且需要对 css 进行一些更改。这是 html:
  • daypicker 是我从 github 安装的一个元素,我无权访问它,因此我无法向相关元素添加类。上面的 css 有效,但我正在寻找一种增强它的方法。

标签: javascript css scss-lint


【解决方案1】:

根据评论更新了答案

您的 Q 中的 sn-p 具有 button.btn 共同点,因此您可以使用它,但根据您的评论,您不需要 button.btn.btn-sm.btn-danger 上的这种样式,在这种情况下您可以使用此解决方案:

#1

 .daypicker>table>tbody>tr>td>button.btn:not(.btn-danger){
    padding: 0.25rem;
    font-size: 0.8rem;
 }

此 CSS 将选择所有 button.btn 元素,但类别为 .btn-danger 的元素除外。 Refer link

#2

.daypicker>table>tbody>tr>td>button.btn{
    padding: 0.25rem;
    font-size: 0.8rem;
}


/*the style below will reset to your need for .btn-danger*/;

.daypicker>table>tbody>tr>td>button.btn.btn-danger{
   padding: /*your desired size*/;
   font-size: /*your desired size*/;
}

由您决定使用适合您要求的那个。希望对您有所帮助。

【讨论】:

  • 不是我的想法,但效果很好。谢谢。
  • @Shay 你的想法是什么,分享一下。我们也可以试试你的方法!
  • 你的解决方案比我的 sn-p 更宽,它会影响我想要的其他元素。
  • daypicker 实际上是 nodeName,而不是 className。
  • @Shay changind .daypicker 回到daypicker 应该可以解决大多数按钮问题。如果不是,则必须保留要选择的按钮的详细定义。但是>table>tbody>tr>td> 部分肯定已经过时了,可以用一个简单的 space 替换。
猜你喜欢
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2017-06-15
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
相关资源
最近更新 更多