仅使用css更改输入的值

时间:2018-03-07 23:03:17

标签: css

大家好,以下是我的代码,我需要更改值'联系代理'联系我们,但只使用css

<input type="submit" name="submit-cmb" value="Contact Agent" class="button-primary">

感谢您的帮助!如果需要更多详细信息,请告诉我

1 个答案:

答案 0 :(得分:3)

简短:这是不可能的,而是使用JavaScript

document.querySelectorAll('input[type=submit]')[0].setAttribute("value", "Contact Us");

:CSS根本无法修改DOM。您需要使用HTML,无论生成该HTML或JavaScript的语言是什么。

JavaScript允许您随意操作DOM,而HTML / PHP / etc允许您在运行之前或运行时操作它。

这对于JavaScript来说是微不足道的(参见上文),但您无法使用CSS物理添加或删除元素或其属性。

你唯一可以的CSS就是将输入的颜色设置为与背景(或透明)相同的颜色,然后使用伪元素来放置文本那里“联系我们”。它不会修改处理表单时提交的值,也不能添加到“void elements”,例如<input>(任何用<element />自行关闭的内容)

这是你用CSS做的最好的事情:

.parent-element {
    position: relative;
}

.parent-element:after {
    content: "Contact Us";
    color: #000;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    pointer-events: none;
}

[name="submit-cmb"] {
    color: transparent;
}

再次注意,这实际上不会改变按钮的值,而是“隐藏”按钮上的文本,然后在其上放置一些不同的文本。您必须根据实际布局调整定位,但如果您真的无法修改HTML或使用JavaScript,它将帮助您入门。

另请注意,:after元素会影响点击次数,因此您需要确保可以使用pointer-events: none; - 或使用:before,将其设置为低于z-index按钮,将按钮背景更改为透明....等等等等。你看,这真的不能/不应该这样做。

.parent-element {
    position: relative;
}

.parent-element:after {
    content: "Contact Us";
    color: #000;
    position: absolute;
    left: 5px;
    top: 1px;
    pointer-events: none;
}

[name="submit-cmb"] {
    color: transparent;
}
<div class="parent-element">
    <input type="submit" name="submit-cmb" value="Contact Agent" class="button-primary">
</div>