如何在 React 的基本 html 选择元素中设置下拉 UI 的样式?

Posted

技术标签:

【中文标题】如何在 React 的基本 html 选择元素中设置下拉 UI 的样式?【英文标题】:How to style the dropdown UI in the basic html select element in React? 【发布时间】:2021-12-15 18:43:31 【问题描述】:
      <select className="option-select">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
        <option value="opel">Opel</option>
        <option value="audi">Audi</option>
      </select>

这是基本选择的定义方式。如何定位下拉列表 UI?例如,更改下拉菜单的默认背景。

编辑:

如果我定位 &lt;option&gt; 元素,我发现它在 Chrome 中确实有效。但是在firefox上就不行了。

【问题讨论】:

您可以应用到&lt;select&gt; 的样式非常有限,因为它的呈现很大程度上是由主机操作系统驱动的。您最好的选择可能是使用(或创建)一个自定义组件,该组件使用其他 html 元素模仿 &lt;select&gt; 的行为。您正在使用的框架 (React) 可能为此提供了许多可用的 3rd 方组件。 【参考方案1】:

可以设置选择菜单“按钮”的样式,但不能设置下拉菜单本身的样式。要做到这一点,您需要使用 javascript 来模拟该功能。 https://www.w3schools.com/howto/howto_custom_select.asp

【讨论】:

【参考方案2】:

select 
  background: yellow    

option 
  color: red 
<select className="option-select">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>

【讨论】:

适用于 Chrome,而不是 firefox 你不能在 Firefox 上设置样式【参考方案3】:

只需几个 CSS 属性就可以改变下拉列表的外观,最好使用 material-ui 等 React 组件库。

【讨论】:

以上是关于如何在 React 的基本 html 选择元素中设置下拉 UI 的样式?的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS 在功能组件中设置状态的基本问题

在 TextField 中设置占位符的样式

如何在 GAE 中设置路由以进行反应?在基本 create-react-app 上的 GAE 中,通过 URL 直接路由到 react-router-dom 路由失败?

如何在全局样式表中设置角度4组件选择器的样式?

如何使用react js在select中设置默认值

如何在 Vue 的元素 UI 中的选择选项中设置默认值?