Selectable HTML 标签

问题描述 投票:62回答:7

有没有办法使选项组可选?

<select>
  <optgroup value="0" label="Parent Tag">
    <option value="1">Child Tag</option>
    <option value="2">Child Tag</option>
  </optgroup>
</select>
html html-select optgroup
7个回答
53
投票

我不认为您可以,但是您可以轻松地使用css重现视觉样式,因此只有选择项,因此所有内容都是可以选择的。

.optionGroup {
    font-weight: bold;
    font-style: italic;
}
    
.optionChild {
    padding-left: 15px;
}
<select multiple="multiple">
    <option value="0" class="optionGroup">Parent Tag</option>
    <option value="1" class="optionChild">Child Tag</option>
    <option value="2" class="optionChild">Child Tag</option>
</select>

multiple属性可让您选择多个行(按住ctrl键单击)。如果不是您想要的,可以将其删除。这是为了向您显示所有内容都变为可选择状态,并且看上去与optiongroup元素相同。


10
投票

这对于纯html是不可能的。一些浏览器(mozilla)允许您使用CSS实现类似的功能,但是在撰写本文时,大多数浏览器(webkit等)不支持html select元素的样式。


8
投票

直到在html标准中支持,否则给出的所有答案都是有问题的,包括:


4
投票

有点不同的解决方案..


0
投票

@ grifos的答案在WebKit浏览器中不受支持,并且在IE 11中进行测试时不起作用。


0
投票

这将使您有一个带有可选optgroups的下拉列表的感觉。留下的内容很简单,但您可以根据自己的喜好进行样式设置。

.hide {
  display:none;
}
.show {
  display:block;
}
.selected.button {
  display:block;
  font-weight: bold;
}
button {
  text-align: left;
  min-width: 200px;
  margin-left: 10px;
  border: 0px;
  background: #eee;
  display: block;
}
#value_display {
  width: 210px;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding-left: 8px;
}
</style>
<html>
<body>


<!-- Div is a display and also trigger for displaying dropdown -->
<div id="value_display" onclick="showOptions(this.value)">
  opt 0
</div>

<!-- setting height and doing overflow-y allows dropdown list with scrollbox -->
<div id="select_div" class="hide" style="height: 80px; overflow-y: scroll;">

<button class="selected button" onclick="select(this.id)" id="opt 0">opt 0</button>
<button onclick="select(this.id)" id="opt 0-1" style="padding-left: 15px">opt 0-1</button>
<button onclick="select(this.id)" id="opt 0-2" style="padding-left: 15px">opt 0-2</button>
<button onclick="select(this.id)" id="opt 0-3" style="padding-left: 15px">opt 0-3</button>
<button onclick="select(this.id)" id="opt 0-4" style="padding-left: 15px">opt 0-4</button>
<button class="" onclick="select(this.id)" id="opt 1">opt 1</button>
<button onclick="select(this.id)" id="opt 1-1" style="padding-left: 15px">opt 1-1</button>
<button onclick="select(this.id)" id="opt 1-2" style="padding-left: 15px">opt 1-2</button>
<button onclick="select(this.id)" id="opt 1-3" style="padding-left: 15px">opt 1-3</button>
<button onclick="select(this.id)" id="opt 1-4" style="padding-left: 15px">opt 1-4</button>

-3
投票

问题不是很清楚,但这是您要寻找的内容吗?

<select multiple="multiple">
   <optgroup label="Parent Tag">
      <option value="1">Child Tag</option>
      <option value="2">Child Tag</option>
   </optgroup>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.