覆盖隐藏输入标记的标准CSS

时间:2017-06-03 22:27:27

标签: html css

对于HTML标记,例如<input type="hidden">,当我查看浏览器的标准CSS时,我看到:

input[type="hidden" i] {
    display: none; 
}

所以我把它添加到我的CSS:

input[type="hidden" i] {
    display: block !important; 
}

对于HTML,我有<input name=countrycode type=hidden value=US>

当我打开开发人员工具时,我可以看到旧的display:none被忽略,但是,该字段从未显示在页面中并且仍然隐藏!

为什么浏览器不遵循我的CSS规则,是否有其他方法强制它这样做?如果我添加width: 200;height:200;background: black,这应该会显示在页面中,对吗?

我想这样做的原因是因为我在许多页面中有很多隐藏的输入,现在我希望它们可见(从用户那里获得输入)所以我决定用CSS快速完成。我知道这可以通过JavaScript轻松完成,但只是好奇为什么CSS不起作用或者它可能适用于其他浏览器但不适用于谷歌浏览器?

2 个答案:

答案 0 :(得分:1)

隐藏input[type=hidden]的原因是因为它没有控件类型来向用户显示其价值,因此您的display: block;应该有效,但是浏览器没有任何东西可以渲染。您隐藏的输入可以是复选框,文本字段或数字。

更多信息:https://www.w3.org/wiki/HTML/Elements/input

答案 1 :(得分:0)

您应该给该输入一个id =“ countrycode”,然后像这样使用javascript将type属性的值从“ hiden”设置为“ text”:

document.getElementById("countrycode").setAttribute("type", "text");

或者,如果您更喜欢使用name属性,请执行以下操作:

document.getElementByName("countrycode").setAttribute("type", "text");

Voila!