1. 面向开发者的 Web 技术
  2. CSS:层叠样式表
  3. CSS 参考
  4. 选择器
  5. :out-of-range

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

:out-of-range

基线 广泛可用

自 2015年11月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

:out-of-range CSS 伪类表示一个 <input> 元素,其当前值处于属性 minmax 限定的范围外。

尝试一下

label {
 display: block;
 margin-top: 1em;
}
input:out-of-range {
 background-color: orangered;
}
<form>
 <label for="amount">How many tickets? (You can buy 2-6 tickets)</label>
 <input id="amount" name="amount" type="number" min="2" max="6" value="4" />
 <label for="dep">Departure Date: (Whole year 2022 is acceptable)</label>
 <input
 id="dep"
 name="dep"
 type="date"
 min="2022-01-01"
 max="2022-12-31"
 value="2025-05-05" />
 <label for="ret">Return Date: (Whole year 2022 is acceptable)</label>
 <input id="ret" name="ret" type="date" min="2022-01-01" max="2022-12-31" />
</form>

这个伪类很有用,可以给用户提供一个视觉提示,让他们知道字段的当前值是否超出了允许的范围。

备注:该伪类仅适用于具有(并可以接受)范围限制的元素。如果没有这样的限制,元素值就无所谓"in-range"和"out-of-range"。

语法

css
:out-of-range {
 /* ... */
}

示例

HTML

html
<form action="" id="form1">
 <p>Values between 1 and 10 are valid.</p>
 <ul>
 <li>
 <input
 id="value1"
 name="value1"
 type="number"
 placeholder="1 to 10"
 min="1"
 max="10"
 value="12" />
 <label for="value1">Your value is </label>
 </li>
 </ul>
</form>

CSS

css
li {
 list-style: none;
 margin-bottom: 1em;
}
input {
 border: 1px solid black;
}
input:in-range {
 background-color: rgba(0, 255, 0, 0.25);
}
input:out-of-range {
 background-color: rgba(255, 0, 0, 0.25);
 border: 2px solid red;
}
input:in-range + label::after {
 content: "okay.";
}
input:out-of-range + label::after {
 content: "out of range!";
}

结果

规范

规范
HTML
# selector-out-of-range
Selectors Level 4
# out-of-range-pseudo

浏览器兼容性

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /