我有一个密码类型的输入域,我想在输入域中添加一个svg图标,但是什么都没有显示。这里有什么问题?
<InputField
name={"password"}
label={"password"}
type={"password"}
/>
input[type="password"]::after {
content: url(../icons/info.svg);
width: 25px;
display: inline-block;
position: absolute;
}
1条答案
按热度按时间0s0u357o1#
由于
<input>
通常是浏览器UI,所以不能在其中应用样式,这是伪元素::before
和::after
的作用。另请参阅CBroe对https://stackoverflow.com/a/20894312/1427878的重要提示
模拟在输入中添加内容的一个常见解决方案是隐藏其边界并将其提供给 Package 器元素。
但是,您绝对需要确保焦点保持可见,例如using
:focus-within
由于图标只是视觉表示,因此它应该有一个可访问的名称,如图像的
alt
。根据它要传达的内容,可能需要一些ARIA属性,例如<input aria-description="some explanation">