【发布时间】:2021-10-10 16:00:58
【问题描述】:
我有一个项目。我想创建一个带有像这张图片这样的选项的选择输入,我更喜欢用 html 和 css 编写所有代码,如果需要使用 vanilla js。 但无论我多么努力,我都没有成功。我特别坚持选项部分的风格。我在谷歌搜索但找不到我想要的结果。
这是我的代码
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
background: #eee;
direction: rtl;
}
/* Reset Select */
select {
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
appearance: none;
outline: 0;
box-shadow: none;
border: 1px solid darkgray;
background: #eee;
background-image: none;
}
/* Remove IE arrow */
select::-ms-expand {
display: none;
}
/* Custom Select */
.select {
position: relative;
display: flex;
width: 170px;
height: 46px;
line-height: 3;
overflow: hidden;
border-radius: 10px;
}
select {
flex: 1;
padding: 0 .5em;
color: #333;
cursor: pointer;
position: relative;
}
/* Transition */
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="style.css" type="text/css">
<title>Document</title>
</head>
<body>
<div class="select">
<select name="select" id="select">
<option selected disabled>Choose an option</option>
<option value="1">Pure CSS</option>
<option value="2">No JS</option>
<option value="3">Nice!</option>
</select>
</div>
</body>
</html>
如果有人可以帮助我,我非常感谢。我真的很需要它。
【问题讨论】:
-
在某种程度上为原生
<select/>设置样式是可能的——在原生选择上设置下拉列表的样式是完全不同的情况。是否可以避免使用原生<select/>元素,而是使用<div/>s、JavaScript 和 ARIA 创建一个? -
这意味着不可能用select和options创建这种风格? @AlexanderNied
-
我不确定您在应用哪些样式时遇到问题。我将您的问题解释为如何创建这些元素以避免 js。
-
我对 vanilla js 没有任何问题。对我来说很重要的一点是,这个元素是用 select 和 options 创建的。我只是为了简单起见才使用 css,但如果你可以用 js 创建这种样式,我很感激你@AsyncAwaitFetch
标签: javascript html jquery css input