Javascript 如何更改输入容器的样式
我浏览了文档,似乎找不到任何方法来更改此输入容器样式 我可以更改输入react-select\uuu输入样式,但除非使用此特定类名,否则无法访问父级 唯一的其他方法是使用值container>div:last-child 但这只是个坏主意不,在这种情况下,我偶尔会更改组件 我很喜欢使用这个类名css-15n6m,但根据我目前的经验,它会随着软件包的每个版本而变化Javascript 如何更改输入容器的样式,javascript,css,sass,react-select,Javascript,Css,Sass,React Select,我浏览了文档,似乎找不到任何方法来更改此输入容器样式 我可以更改输入react-select\uuu输入样式,但除非使用此特定类名,否则无法访问父级 唯一的其他方法是使用值container>div:last-child 但这只是个坏主意不,在这种情况下,我偶尔会更改组件 我很喜欢使用这个类名css-15n6m,但根据我目前的经验,它会随着软件包的每个版本而变化 你到底想做什么?出身背景利润率?宽度身高 你能举一个你想要达到的目标的例子吗 此外,您还可以将css直接添加到标记中,例如: <
你到底想做什么?出身背景利润率?宽度身高 你能举一个你想要达到的目标的例子吗 此外,您还可以将css直接添加到标记中,例如:
<div style="width:10px;height:20px;background-color:#b10000;"></div>
但是如果不引用类或id,您将无法单独更改标记元素的样式。React Select使用EmotionJs进行样式设置,并且可以为任何内部组件传入覆盖样式。例如,我想覆盖菜单控件的基本样式。我可以提供一种方法:
const menuStyles = (base, state) => {
const { menuIsOpen } = state.selectProps;
let addons = {
border: '1px solid #ccc',
zIndex: 1000,
marginTop: 0
};
if (menuIsOpen) {
addons = Object.assign(addons, {
borderTopLeftRadius: 0,
borderTopRightRadius: 0,
borderTop: 0,
boxShadow: '0 4px 5px rgba(0, 0, 0, .15)'
});
}
return Object.assign(base, addons);
};
// ...
<Select styles={{menu: menuStyles}} />
这需要玩一点游戏来真正弄清楚这一切,但有一个问题
注意:关键是,试图找出哪个组件是您真正想要设置样式的组件。输入组件不是HTML输入。与React Select一起使用的唯一控件是隐藏控件。最有可能的情况是,您正在尝试设置构成可视控件的许多容器元素之一的样式,例如SelectContainer、ValueContainer或MultiValueContainer。就像我说的,你必须玩一点,但你可以做到。这也有好处。我正在尝试重置边距和填充,由于react-select正在创建自己的输入容器div,因此我无法应用这些内联样式。这只会更改容器的样式,可能包含react-select元素,而不是元素本身。您可以尝试覆盖输入本身的样式。与您案例中的react-select\uu输入类似。在这种情况下,这不起作用,因为我无法删除放置在容器上的填充,并且输入本身已经很小。您可以提供一些您所做的代码吗?使用此方法完全可以接受,并且在大多数情况下都可以工作。但具体来说,对于输入容器,根本没有办法对其进行寻址。使用输入样式将为react-select\u输入声明样式,但不会为container div css-15n6m声明样式。你知道,你是对的。React Select输入不是您所期望的。我会修正我的答案。