更改 Fabric 中的分隔符颜色 UI
Changing Seperator color in Fabric UI
在 Microsoft 的 Fabric UI 的 Separator 控件文档中,分隔符是一个简单的控件,它分隔内容并允许分隔符内的内容,同时允许一些自定义选项。
似乎没有办法更改实际分隔线的颜色。我需要这样做,因为我的应用程序的背景颜色几乎与分隔线的颜色完全相同。
我已经尝试了文档中所有可能的样式解决方案。我试过在 styles.root
属性 上设置颜色、borderColor、outlineColor 等。我玩过 theme
属性 的 semanticColors
部分,但到目前为止我一无所获。
在内部,该行似乎是在文本之前创建为 :before
,而 background-color
决定了颜色。不过,我找不到改变它的方法。
有人知道我该怎么做吗?
您需要覆盖 css。分隔符的背景颜色在 .root-*::before
中设置,它会发生变化,因此您不能使用 .root-45::before
,因为这可能会在不同的浏览器中更改为 .root-56::before
。使用 [attribute^=value] Selector
The [attribute^=value] selector matches every element whose attribute value begins with a specified value.
更新
您还可以创建样式对象并将其传递给组件。
const styles = {
root: [{
selectors: { // add selectors here
'::before': {
background: 'blue',
},
}
}]
};
<Separator styles={styles}>Today</Separator>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.0/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.21.1/babel.min.js"></script>
<script src="//unpkg.com/office-ui-fabric-react/dist/office-ui-fabric-react.js"></script>
<div id="root"></div>
<script type="text/babel">
const { Separator, PrimaryButton } = window.Fabric;
const styles = {
root: [{
selectors: {
'::before': {
background: 'blue',
},
}
}]
};
class App extends React.Component {
state = {
name: 'Hello React'
};
render() {
return (
<div>
<h1>{this.state.name}</h1>
<PrimaryButton>I am a button Hello</PrimaryButton>
<Separator styles={styles}>Today</Separator>
<Separator>Now</Separator>
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
</script>
在 Microsoft 的 Fabric UI 的 Separator 控件文档中,分隔符是一个简单的控件,它分隔内容并允许分隔符内的内容,同时允许一些自定义选项。
似乎没有办法更改实际分隔线的颜色。我需要这样做,因为我的应用程序的背景颜色几乎与分隔线的颜色完全相同。
我已经尝试了文档中所有可能的样式解决方案。我试过在 styles.root
属性 上设置颜色、borderColor、outlineColor 等。我玩过 theme
属性 的 semanticColors
部分,但到目前为止我一无所获。
在内部,该行似乎是在文本之前创建为 :before
,而 background-color
决定了颜色。不过,我找不到改变它的方法。
有人知道我该怎么做吗?
您需要覆盖 css。分隔符的背景颜色在 .root-*::before
中设置,它会发生变化,因此您不能使用 .root-45::before
,因为这可能会在不同的浏览器中更改为 .root-56::before
。使用 [attribute^=value] Selector
The [attribute^=value] selector matches every element whose attribute value begins with a specified value.
更新
您还可以创建样式对象并将其传递给组件。
const styles = {
root: [{
selectors: { // add selectors here
'::before': {
background: 'blue',
},
}
}]
};
<Separator styles={styles}>Today</Separator>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.0/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.21.1/babel.min.js"></script>
<script src="//unpkg.com/office-ui-fabric-react/dist/office-ui-fabric-react.js"></script>
<div id="root"></div>
<script type="text/babel">
const { Separator, PrimaryButton } = window.Fabric;
const styles = {
root: [{
selectors: {
'::before': {
background: 'blue',
},
}
}]
};
class App extends React.Component {
state = {
name: 'Hello React'
};
render() {
return (
<div>
<h1>{this.state.name}</h1>
<PrimaryButton>I am a button Hello</PrimaryButton>
<Separator styles={styles}>Today</Separator>
<Separator>Now</Separator>
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
</script>