我有这个HTML代码:
<div class="field">
<input type="hidden" value="" name="a" id="a"> <input type="hidden" value="xxxx" name="b" id="b">
<input type="file" value="" name="file1"> <input type="file" value="" name="file2">
<input type="file" value="" name="file3"> <input type="file" value="" name="file4">
<input type="file" value="" name="file5"> <input type="file" value="" name="file6">
<input type="file" value="" name="file7"> <input type="file" value="" name="file8"> </div>
在这个HTML中,我想隐藏div class =“field”里面的所有输入type =“file”,除了第一个。 我无法更改HTML(添加类)。 我尝试应用伪类和结构选择器来完成任务:
.field input[type='file']{
display:none;
}
.field input[type='file']::first-child{
display:block;
}
但似乎行不通。 任何人都可以建议我在css中使用伪类和选择器togheter的正确语法,以解决这个问题?
答案 0 :(得分:2)
伪类仅使用一个冒号,因此它是:first-child
,而不是::first-child
。
但是您的第一个input[type='file']
并不是第一个孩子,所以无论如何都不能使用:first-child
。
您必须切换规则并使用兄弟选择器来隐藏后续文件上传输入:
.field input[type='file'] {
display:block;
}
.field input[type='file'] ~ input[type='file'] {
display:none;
}
此技术进一步描述here,可用于大多数其他简单选择器,而不仅仅是类和属性。
答案 1 :(得分:0)
您可以将此代码用于所有值,并且除了第一个之外,您将隐藏div class =“field”中的所有input type =“file”。试试这段代码。
<html>
<head>
<style>
.field input[type='file']
{visibility:hidden;}
</style>
</head>
<body>
</body>
</html>