仅使用CSS删除input元素的value属性

时间:2012-10-04 09:10:03

标签: html css

我有一个“提交”按钮,我试图用图像替换

<input type="submit" value="Continue" />

我无法修改HTML,也无法使用JavaScript。我只能访问CSS。

是否可以仅使用CSS删除“继续”(value属性)一词?

修改

我实际上已经能够使用图像设置按钮的样式。我现在想要删除“继续”按钮。我已经通过将text-indent值设置为负值来实现,这是前一段时间提出的,但已被删除。我想知道是谁发布的,所以我可以接受它作为答案。

4 个答案:

答案 0 :(得分:18)

我没有找到任何不会让我感觉不好的东西,但是font-size: 0的另一种选择会使emex单位无法使用,是使用透明的“画笔”进行文本渲染,实际上根本不渲染它:

color: transparent;

请注意,应用于input元素的上述规则对元素中占位符文本的颜色具有无效

此解决方案仍有许多潜在的不良特征 - 您可能希望至少添加user-select: none以及上述规则,以禁用用户对文本的选择,因为选择它会暴露它选择的纯色背景颜色,可能是也可能不是。

答案 1 :(得分:5)

input[type="submit"] {
  font-size:0;
  width:120px;
  height:30px;
  background: url('dir/image.png') no-repeat left top;
  border: none;
}

这样就可以了。请记住,您的图像路径是相对于样式表的。

答案 2 :(得分:3)

使用font-size: 0

input[type="submit"] {
    font-size:0;
    width:100px;
    height:20px;
    background:red; /** or `background: url('some.jpg') no-repeat 0 0;` */
    border:0;
    cursor:pointer;
}

<强> Demo

答案 3 :(得分:1)

添加到SpaceBeer的答案,最好使用否定text-indent并删除文字,如果有的话。

input[type="submit"] {
  font-size:0;
  width:120px;
  height:30px;
  background: url('dir/image.png') no-repeat left top;
  border: none;
  overflow: hidden;
  text-indent: -99em;
}

这是正确的方式,几乎所有地方都建议。此外,您可以在此处找到演示:http://jsfiddle.net/6MKKh/