【发布时间】:2013-05-03 09:20:41
【问题描述】:
是否有 CSS 选择器允许我根据 HTML 选择选项值选择元素?
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<p>Display only if an option with value 1 is selected</p>
我正在寻找一种仅显示选定数量的表单字段的 HTML/CSS 方法。我已经知道如何使用 Javascript。
有没有办法做到这一点?
编辑:
问题标题可能具有误导性。我不是在尝试设置选择框的样式,这很常见,并且已经有很多关于 SO 的答案。我实际上是在尝试根据<select> 中选择的值设置<P> 元素的样式。
我真正想做的是根据选定的数值显示多个表单字段:
<select name="number-of-stuffs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div class="stuff-1">
<input type="text" name="stuff-1-detail">
<input type="text" name="stuff-1-detail2">
</div>
<div class="stuff-2" style="display:none">
<input type="text" name="stuff-2-detail">
<input type="text" name="stuff-2-detail2">
</div>
<div class="stuff-3" style="display:none">
<input type="text" name="stuff-3-detail">
<input type="text" name="stuff-4-detail2">
</div>
我想在 number-of-stuffs=2 时显示 div.stuff-1 和 div.stuff-2,当 stuffs=2 时显示 display div.stuff-1 div.stuff-2 和 div.stuff-3。
类似fiddle
【问题讨论】:
-
您可以使用
option[value="1"]之类的属性选择器来选择它,但浏览器支持不是很好,Firefox 允许您添加样式,但 chrome 不能。我不认为有一种方法可以根据在没有 JavaScript/jQuery 的情况下选择的选项显示段落。 -
这是一个测试,显示哪些浏览器支持属性选择器 - dev.l-c-n.com/CSS3-selectors/browser-support.php
标签: html css css-selectors