首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使选择元素中的第一个选项成为可选占位符

问使选择元素中的第一个选项成为可选占位符
EN

Stack Overflow用户
提问于 2021-07-25 20:32:59
回答 1查看 45关注 0票数 0

我在HTML中有一个select元素,我想给它一个占位符。我希望这个占位符是可选的(这样就不会选择任何选项)。

因为它是一个占位符,所以我希望选项文本是灰色的,并且当选项被选中时,我希望select元素的文本也是灰色的。

有许多问题可以解决这个问题的一部分,但没有一个问题能提供一个功能性的解决方案(我能找到)。

下面是所需结果的示例(请参阅园区下拉列表)。

​

​

我正在为项目使用React,并查看了React-select包,但找不到像这样实现它的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-25 20:42:43

您可以使用CSS执行此操作,方法是:使用选择器将选项color设置为灰色,在选定默认设置时将所选选项设置为灰色,并将其它选项设置为特定颜色(这样,当select为灰色时,它们将保留该颜色,而不是继承它的灰色)。下面是一个例子:

​

代码语言:javascript
复制
const {useState} = React;

function Example() {
    const [value, setValue] = useState("");
    const onChange = ({currentTarget: {value}}) => {
        setValue(value);
    };
    return <select size="1" className={value ? "" : "greyed"} value={value} onChange={onChange}>
        <option value="">Default</option>
        <option value="A">Option A</option>
        <option value="B">Option B</option>
    </select>;
}

ReactDOM.render(<Example/>, document.getElementById("root"));
代码语言:javascript
复制
/*
We have this so that when the select is greyed, its options aren't
*/
select option[value] {
    color: black;
}

/*
Grey-out an element with the class, and option elements with blank values
*/
.greyed, select option[value=""] {
    color: grey;
}
代码语言:javascript
复制
<div id="root"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js"></script>

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68518584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档