我有一个项目,我需要使用一个选择内的一个形式。所有其他类型的输入有一个浅灰色的占位符。文本键入内的输入是黑色的。
表单的select输入需要有相同的样式,default/placeholder值需要显示为深灰色,用户可以选择的真实的值需要显示为黑色,但是当我尝试为第一个(default/placeholder)选项指定不同的颜色时,它没有使用这个颜色,而是继续使用select元素中指定的颜色。
下面是元素内部的select:
<select
type="text"
name="carType"
id="carType"
v-model="carType"
placeholder="Car Type"
class="my-2 px-4 py-3 border rounded-lg text-black-primary focus:outline-none text-sm"
>
<option class="text-gray-400" value="" disabled selected>Select your option</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
1条答案
按热度按时间yqlxgs2m1#
使用普通CSS也会很麻烦,但有一个变通方法。如果它是必填字段,可以将
required
属性添加到select
元素中,并使用:invalid
pseudo class将其样式化为占位符。其思路是,如果第一个选项用作占位符,则默认为selected
和disabled
。该表单域无效,因此您可以将其样式设置为such。在下面的代码片段中,我只添加了一个
required
属性,并直接对:invalid
类设置了样式,这并不是真正的Tailwind-y,但它是有效的:定制顺风2种变体
以下仅与顺风2有关,顺风3已添加无效:公用事业
虽然Tailwind有
hover:
,focus:
,disabled:
等实用程序,但不幸的是它没有invalid:
。如果你想使用invalid:text-gray-400
变体,你需要创建一个插件。幸运的是,文档中有一个很好的例子,可以作为我们的基础:现在您可以在
select
元素中使用invalid:text-gray-400
类,并去掉自定义CSS样式:Vue条件类
在使用Vue时,第三个选项是使用条件类,只需根据
carType
的值在text-gray-400
和text-black-primary
这两个类之间切换即可。