【问题标题】:React JSS (current) element selector - `&element`React JSS(当前)元素选择器 - `&element`
【发布时间】:2021-06-26 13:37:43
【问题描述】:

React JSS 样式语法中的当前元素选择器是否有等效的工作?

'&element': { margin: 0 }

用例

我的应用程序中的所有<Button> 组件都有这种样式。

'&:first-of-type': { marginLeft: 0 },
'&:last-of-type': { marginRight: 0 }

所以如果它们连续出现,第一个和最后一个有适当的边距。

但是,有时我会使用

<Button component={Link} ../>

这会将Button 组件变成a 元素而不是button。这可能会弄乱:first-of-type / :last-of-type 选择器并取消按钮之间a 元素的边距。

我的初衷是这样设置的,但是这样不行。

'&button:first-of-type': { marginLeft: 0 },
'&button:last-of-type': { marginRight: 0 }

到目前为止,我正在使用替代方法

'&:first-of-type:not(a)': { marginLeft: 0 },
'&:last-of-type:not(a)': { marginRight: 0 }

【问题讨论】:

  • 根据@Oleg Isonen 下面的回答,给父元素padding-leftpadding-right 而不是试图给其他所有东西margin 或使用父元素的子元素的选择器

标签: reactjs material-ui jss makestyles


【解决方案1】:

按钮元素不应该负责边距,因为它破坏了封装,你的组件不应该照顾外层空间,它的父级应该是。

【讨论】:

  • 只是想了解更多关于这个和它背后的背景。这是良好 UX 的常见做法吗?我在哪里可以阅读更多内容,我应该搜索什么?
猜你喜欢
  • 1970-01-01
  • 2012-02-27
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
相关资源
最近更新 更多