javascript - 有没有办法通过添加带有情感的元素来增加特异性?

标签 javascript css reactjs emotion

我们有一个样式化的组件,当它编译时它会添加一个类名,如下所示:

<div class="app">
    <a class="css-hash">link</a>
</div>
这一切都很好,除了有人声明类似于以下的 CSS 的情况:
.app a { color: red }
如果 .css-hash 具有颜色规则,则不再拾取它。如果我们能够以“a.css-hash”之类的方式创建 CSS,则可以解决此问题。在这种情况下,我们作为情感的 .css-hash 的一部分所拥有的任何内容都将应用于页面中其他地方声明的其他样式。
我们可能会错误地处理这个问题。我尝试在各个地方寻找解决方案,但没有运气。

最佳答案

您可以使用 &选择器不止一次以增加特异性:

import { css } from '@emotion/css'

const myClassName = css({
  // Using `&` twice to increase specificity
  '&&': {
    backgroundColor: 'red'
  }
})

const MyComponent = () => {
  return <div className={myClassName}>hello</div>
}
&将简单地复制你的类名,所以如果你的类名是 .css-hash ,然后 &&将变为 .css-hash.css-hash .您可以使用更多&进一步提高特异性。
Sass Ampersand文档。

关于javascript - 有没有办法通过添加带有情感的元素来增加特异性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62660480/

相关文章:

php - PHP 中是否有类似 JavaScript 的 apply 函数?

javascript - 如何等到跟踪脚本触发后再重定向用户?

javascript - 在没有 drupal 的情况下使用 Drupal 工具栏

reactjs - react | Material 用户界面|自动完成 |如何在 onNewRequest 中将 id 分配为值

javascript - 从 redux 中删除数据并保存滚动位置

javascript - 是否有非 CSS 方式来垂直包裹一列框?

html - 将多个 div 布局从垂直更改为水平

javascript - JS 谷歌地图打破固定元素

javascript - 对窗口大小调整进行 react 更新

javascript - 表单提交后,主页卡住,而 pdf 未加载到新页面上