我有一个独特的情况,仅使用 CSS 可能无法解决。我们不能使用 javascript 或任何 jquery,只能使用 CSS。我正在处理一个只能编辑 CSS 的 Web 应用程序。在应用程序提供的表单页面之一上,我想更改其中一个字段的标签。该页面有几个表单域。我遇到的问题是表单的 DIV id 是动态派生的。每次页面加载都会更改 DIV id。我有下面显示的 HTML。我正在尝试将文本“问题”更改为其他内容。
<div class="sm-form-field-overhead" id="yui_3_8_0_1_1378308546310_339">
<label class="sm-label" id="yui_3_8_0_1_1378308546310_340">The Question</label>
<div class="sm-form-field-container" id="yui_3_8_0_1_1378308546310_231">
<textarea name="question" class="sm-form-field sm-form-field-textarea " id="yui_3_8_0_1_1378308546310_230"></textarea>
</div>
<div class="sm-form-field-description"></div>
我可以使用 :before 选择器在其前面添加文本,但这不会隐藏其他文本并且它针对页面上的每个表单字段而不仅仅是我试图定位的表单字段
.sm-form-field-overhead .sm-label:before {
content: "Message";
}
我不走运,还是您认为有解决方案?
这是我想出的完整和全面的黑客攻击
.sm-form-contents .sm-form-field-overhead:nth-child(4) label {
color: #242528;
padding-left: 182px;
}
这使现有文本具有相同的颜色并将其推到右侧
.sm-contact-pro-form:before {
content: "This is the new text";
position: absolute;
top: 215px;
left: 200px;
}
这会将新文本添加到位。就像我说的,完全破解,但它现在有效。感谢@Shauna 的帮助,你让我指出了正确的方向。它不漂亮,但它现在有效