我有一个使用select/option的下拉列表,但是我有一个变体,在select标签之前有一个带有图标的span,所以我必须为select添加一个填充来“推送”占位符,以便适合图标和文本,但是当我打开select时,选项也会获得该填充。当我打开下拉菜单时,如何只设置选项的样式以删除此填充?我尝试在CSS中为选项添加一个padding,但是option属性不支持padding。
.select-wrapper {
position: relative;
display: inline-block;
}
.icon {
position: absolute;
top: 50%;
left: 12px;
transform: translateY(-50%);
width: 16px;
height: 16px;
background-image: url("icon.png");
background-size: cover;
}
select {
appearance: none;
padding: 8px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 4px;
width: 200px;
padding-left: 32px;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div class="select-wrapper">
<span class="icon"></span>
<select>
<option disabled selected hidden>Choose an option</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
</select>
</div>
</body>
</html>
2条答案
按热度按时间ev7lccsx1#
您可以简单地将包含您的图标和
select
的img
放在 Package 器div
中,并从select
中删除所有边框和轮廓,以便整个div
看起来像一个下拉列表。不需要填充。检查下面的代码片段。6tr1vspr2#
要使用CSS更改元素中选项的间距,可以使用padding属性。下面是一个例子:
“CSS”
select { padding-top: 10px; /* Adjust the top padding as desired */ padding-bottom: 10px; /* Adjust the bottom padding as desired */ }
在上面的CSS代码中,padding-top和padding-bottom属性用于控制元素中选项的间距。通过调整这些值,可以增大或减小选项之间的垂直间距。您可以随意修改这些值以满足您的特定要求。