显示选择选项并排放置。

huangapple go评论59阅读模式
英文:

Display select options side by side

问题

可以更改HTML中<select>元素的普通显示样式吗?

普通的<select>显示样式如下:

[选择]
  | [选项1]
  | [选项2]
  | [选项3]

是否可能以这种方式显示选项(无下拉菜单,选项并排显示):

[选项1] [选项2] [选项3]
英文:

I would like to know if this is possible to change the normal display style of a select element in html

The normal &lt;select&gt; display style is like this :

[Select]
  | [option1]
  | [option2]
  | [option3]

Is it possible to display options like this (no dropdown, options side by side) :

[option1] [option2] [option3]

答案1

得分: 1

没有办法更改默认 HTML 选择标签选项的显示属性。您必须使用 JavaScript 创建自定义选择框,或者使用外部 UI 库如 Bootstrap。

另一种解决方法是设置 multiple 属性。

以下是一个示例:

<select name="select" id="select" multiple size="3">
    <option value="1">选项 1</option>
    <option value="2">选项 2</option>
    <option value="3">选项 3</option>
    <option value="4">选项 4</option>
    <option value="5">选项 5</option>
    <option value="6">选项 6</option>
    <option value="7">选项 7</option>
</select>

然后,您可以像这样使用 JavaScript 限制多选:

$("#select").change(function () {
    if ($("select option:selected").length > 1) {
        this.attr("disabled", "disabled");
    } else {
        this.removeAttr('disabled');
    }
});
英文:

There is no way to change display property of default html select tag options. You have to either create custom select using JS or with external UI libraries like bootstrap.

Another workaround is to set multiple attribute.

Here is an example:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

select {
  text-align: center;
  background: yellow;
  display: block;
  white-space: normal;
}

option {
  width: 50px;
  margin: 5px;
  padding: 10px 5px;
  border: 1px solid #000;
  border-radius: 5px;
  display: inline-block;
}

<!-- language: lang-html -->

&lt;select name=&quot;select&quot; id=&quot;select&quot; multiple size=&quot;3&quot;&gt;
    &lt;option value=&quot;1&quot;&gt;option 1&lt;/option&gt;
    &lt;option value=&quot;2&quot;&gt;option 2&lt;/option&gt;
    &lt;option value=&quot;3&quot;&gt;option 3&lt;/option&gt;
    &lt;option value=&quot;4&quot;&gt;option 4&lt;/option&gt;
    &lt;option value=&quot;5&quot;&gt;option 5&lt;/option&gt;
    &lt;option value=&quot;6&quot;&gt;option 6&lt;/option&gt;
    &lt;option value=&quot;7&quot;&gt;option 7&lt;/option&gt;
&lt;/select&gt;

<!-- end snippet -->

And then you can limit your multiple select with JS like so:

$(&quot;select&quot;).change(function () {
    if($(&quot;select option:selected&quot;).length &gt; 1) {
		this.attr(&quot;disabled&quot;,&quot;disabled&quot;);
    } else {
		this.removeAttr(&#39;disabled&#39;);
    }
});

huangapple
  • 本文由 发表于 2023年4月19日 17:57:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/76053160.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定