- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找有关 @material-ui/core
的建议,
我希望有一种一致的方法来处理 CSS-in-js 生成的具有不确定数字后缀的类名,同时仍然使用 @material-ui/core
的 styled()
函数(如果可能的话)。
“@material-ui/core/styles
生成的类名是不确定的”(https://material-ui.com/styles/advanced/#class-names),但到目前为止,我公司的项目都使用styled()
函数,用于包装组件以应用样式。
它工作得很好,直到我想覆盖其中一个伪类如何应用于我正在设置样式的根元素。在这一点上,如果我尝试使用常规的旧类选择器来控制特定状态下的样式,如果类上没有后缀,它就会起作用,但是只要 JSS 生成的类名有一个数字后缀, 它坏了。
When I say "suffix" I'm referring to how a component's root className might be
.makeStyles-root
but when the className is generated for that specific instance, it likely has a numeric suffix appended:.makeStyles-root-123
组件:InputLabel
https://material-ui.com/api/input-label/#inputlabel-api我想摆弄发生的转换,它来自 .MuiInputLabel-formControl
,但随后该转换被 .MuiInputLabel-shrink
覆盖。
如果我尝试使用常规类选择器:
export const InputLabel = styled(MuiInputLabel)({
`&.MuiInputLabel-formControl`: {
transform: 'translate(2px, 8px) scale(1)',
},
`&.MuiInputLabel-shrink`: {
transform: 'translate(0) scale(0.6)',
},
});
仅当 JSS 类没有后缀时才有效,
如果我尝试使用规则名称(我认为 styled()
实际上不支持它)
export const InputLabel = styled(MuiInputLabel)({
formControl: {
transform: 'translate(2px, 8px) scale(1)',
},
shrink: {
transform: 'translate(0) scale(0.6)',
},
});
它只是对元素应用无效规则:
formControl: [object Object]
shrink: [object Object];
我也试过传递类
(但那似乎根本不起作用)
export const InputLabel = styled((props) => (
<MuiInputLabel
classes={{
formControl: {
transform: 'translate(2px, 8px) scale(1)',
},
shrink: {
transform: 'translate(0) scale(0.6)',
},
}}
{...props}
/>
))({});
我不想使用主题覆盖(我想这会在这里启用这些规则的使用),因为我不想将此样式应用于 InputLabel 的所有实例
所以我倾向于使用 hook api/makeStyles() :https://material-ui.com/styles/basics/#hook-api
最佳答案
据我所知,使用 styled()
是不可能的,
所以我只是按照其他帖子的建议使用了 makeStyles()
。
但是我混合使用了两者,这样我仍然可以将我的样式保存在一个单独的文件中。
const useLabelStyles = makeStyles((theme) => ({
root: {
color: theme.text.primary,
},
formControl: {
transform: 'translate(2px, 8px) scale(1)',
},
shrink: {
transform: 'translate(0) scale(0.6)',
},
}));
export const InputLabel = styled((props) => {
const theme = useTheme();
const classes = useLabelStyles(theme);
return (
<MuiInputLabel
classes={classes}
{...props}
/>
);
})({});
关于reactjs - 如何始终覆盖具有不确定后缀的 JSS 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64472230/
如何使用 JSS 设置滚动条的样式?下面的解决方案不起作用。 '::-webkit-scrollbar-track': { background: 'red', }, ':
标题真的说明了一切。我的 JSS 工作表已连接到富文本编辑器。我们想将某些编辑后的文件保存为平面 HTML/CSS 文件,但我不完全确定如何访问完整的样式表。 如何将当前 JSS 状态作为 CSS 字
我正在使用material-ui和next和jss-rtl在我的react项目但是有一个问题页面仍然是ltr使用后 -rtl组件代码: import React from "react"; impor
我有一个列表,想从父级设置列表项的嵌套元素的样式。如何访问嵌套元素?下面的代码不起作用。 react js标记 my box second box
我是 Sitecore JSS 的新手。 使用 CMD 运行以下命令时: npm install -g @sitecore-jss/sitecore-jss-cli 我得到了以下结果: npm WAR
我正在使用 JSS(Javascript Style Sheets)在我的 React 项目中。我试图选择 first-child或 last-child ,所以我尝试了以下 carousel: {
我目前正在接受 ReactJS 培训。我正在使用 Material-ui 和 JSS(对我来说完全是新的)。 我不明白如何简单地选择我的 H6 元素或我的 H6 子元素(dangerStyle)。 有
在 react-jss documentation ,作者写道:“基于 HOC 的 API 自 v10 起已弃用,并将在 v11 中删除。” 据我所知,这意味着像 injectSheet 和 with
我的 Gatbsy 网站的页面加载时,未设置样式的内容“闪烁”。在此处查看当前部署预览可能最有帮助 https://happy-mahavira-5cd669.netlify.com/ . 到目前为止
我正在寻找有关 @material-ui/core 的建议, TLDR; 我希望有一种一致的方法来处理 CSS-in-js 生成的具有不确定数字后缀的类名,同时仍然使用 @material-ui/co
我正在使用 React、带有 JSS 的 Material UI 和 React Router。 我正在连接 应用一个事件类,例如: Link /> 该类已很好地添加到父级中,但如果它是一个类,则将样
在我的 React 应用程序中,我使用 React JSS 进行样式设置。假设我有这两个文件(跳过导入和其他不有趣的东西)。 这是 App.js: const styles = { root: {
我正在使用 React 和 JSS 尝试构建一小组可重用组件,但在尝试将基本组件组合成更复杂的组件时遇到了问题。 当我通过 classes 属性从父组件向下传递类名时,它会完全覆盖默认样式而不是合并它
我为使用 JSS 的 React 项目创建了一个全局样式表。我对 CSS、SASS 和 CSS 模块非常熟悉,但这是我第一次使用 JSS。 标题都具有相同的边距。出于可维护性和性能方面的原因,我不想将
我的组件库中有一些开箱即用的组件,需要我进行一些覆盖。我试图避免使用传统的 CSS 或 SASS,但我不确定如何在 JSS 中进行类覆盖。 最佳答案 这是一个基本的实现。我首先查找 DOM 元素,然后
我有一个应该在页面加载时呈现的元素: {this.state.pageLoaded && } 渲染此组件时,我希望它淡入。所以我尝试应用一些 jss,但无法正常工作。 这是我的 JSS: cons
我正在尝试使用 JSS 实现此行为。 .thumbnail:hover+.title { display: block; } 这是一个使用 ID 而不是类的示例: https://codepen.
这是来自 Mozilla Crypto Dev ML 的交叉帖子。希望 SO 上的某个人有一些使用 org.mozilla.jss 的经验。 Link: JSS - MDN 我试图分别使用两个客户端套
我正在 React 中使用 Typescript 和 JSS 创建一个进度条组件。 我的组件扩展了: React.ProgressHTMLAttributes 我能够创建进度条组件。但是,我无法处理
我在我的应用程序中使用了 react-select 组件。我也只使用 JSS 设计我的应用程序。我的问题是,由于 react-select 是一个 npm 包,我没有能力修改组件中的类名。所以那里有一
我是一名优秀的程序员,十分优秀!