单选HTML列表框高度

Cra*_*ker 12 html css select listbox

我有一个HTML <select>,我想要显示为"列表框"(一个同时显示多个项目的框,而不是一个下拉框).但是,我只想允许选择一个项目.我还想将盒子的高度(通过CSS)设置为容器大小的100%.

这三件事似乎是相互排斥的.设置元素的multiple属性<select>将使控件呈现为列表框而不是下拉列表.但是,我不希望选择多个元素,因此这不起作用.我知道<select>进入列表框的唯一另一种方法是将size属性设置为值> 1.这也将设置框的高度,并且看起来我无法在HTML时通过CSS更改高度属性已设置.

Ste*_*n P 14

你可以使包含它的<select>100%的高度<form>.请参阅此小提琴,了解包含表单的div的示例,其中select选择填充表单的高度.

这开始于一个简单的结构,只需将表单包含在某些内容中,这样您就可以看到相对布局.

<div>
    <form>
        <select id="thelist" size="4">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
            <option value="4">Four</option>
        </select>
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

我给div一个高度,一个背景,你可以看到它,并填充所以它的内容不会自然覆盖它.使表格成为您想要的任何高度,包括100%的div.我做了90%,所以你仍然可以看到封闭的div.请注意,窗体的宽度填充除了填充之外的div宽度.

然后,您可以将选择列表的高度设置为表单内所需的任何内容.这是我的CSS

div {
    background-color: #fff0f0;
    height: 40em;
    padding: 1.5em 1.5em 0 1.5em;
}
form {
    background-color: #f0f0f0;
    height: 90%;
}
#thelist {
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

放在一起作为一个片段,并使其更小,以适应更好的...

div {
    background-color: #fff0f0;
    height: 20em;
    padding: 1.5em 1.5em 0 1.5em;
}
form {
    background-color: #f0f0f0;
    height: 40%;
}
#thelist {
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div>
    <form>
        <select id="thelist" size="4">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
            <option value="4">Four</option>
        </select>
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)