Html :输入类型的类型选择器的第一个=";“文本”;

Html :输入类型的类型选择器的第一个=";“文本”;,html,css,css-selectors,Html,Css,Css Selectors,我有以下情况: <input type="hidden"> <input type="text"> <input type="hidden"> <input type="text"> <input type="text"> <input type="text"> <input type="hidden"> <input type="submit"> 如何仅选择前两个输入,它们是[type=“te

我有以下情况:

<input type="hidden">
<input type="text">
<input type="hidden">
<input type="text">
<input type="text">
<input type="text">
<input type="hidden">
<input type="submit">

如何仅选择前两个
输入
,它们是
[type=“text”]

正如您在这里看到的,第一个
输入[type=“text”]
的样式不是我所需要的


< P>尽管它们的名字可能暗示,<代码>:类型< /代码>和<>代码>:NTH-OFF类型()/代码>不考虑<代码>类型> <代码>元素,或任何其他元素上的任何其他属性。它只考虑元素的类型,在所有元素都是
input
。通过扩展,<代码>:第一个子和<代码>:nth-CHIVE()/Cyto>在计数时考虑所有父级的子节点。因此,这两个伪类家族都不能用来解决您的问题

由于表单元素具有特殊的系统默认样式,无法使用传统CSS(或任何CSS)应用,因此使用
input
元素的事实使得这一点更加困难。您的问题能否解决取决于您希望应用于前两个
input[type=“text”]
元素的样式

如果您应用的样式不会对默认样式产生不利影响(例如
显示:无
),或者您根本不关心默认样式,那么使用我描述的样式并将起作用(注意使用两个
~
组合符,因为您希望对前两个元素进行样式设置,而不仅仅是第一个元素):


否则,如果需要为后续图元保留默认样式,则此技术将不起作用,因为修改后无法恢复默认样式。在这种情况下,似乎没有解决方案。

只向您想要样式化的类添加一个类?如果您的输入数量发生变化,那么使用纯css是不可能的。使用javascript代替我的建议是添加
。首先
类或类似的对象,您需要将其作为目标
input[type="text"] {
    /* 
     * Apply styles to all input[type="text"].
     */
}

input[type="text"] ~ input[type="text"] ~ input[type="text"] {
    /* 
     * Undo or override styles applied in the first rule for any input[type="text"]
     * that follows at least two other input[type="text"].
     */
}