CSS指定伪元素:在以下输入之后
我有无法更改的html代码。 我不能用JS来帮助你。所以唯一的选择是CSS。示例如下: HTML:CSS指定伪元素:在以下输入之后,css,input,pseudo-element,Css,Input,Pseudo Element,我有无法更改的html代码。 我不能用JS来帮助你。所以唯一的选择是CSS。示例如下: HTML: <!-- code for input --> <div class="form-group complete"> <label>label for text input</label> <input type="text"/> <span class="error-message
<!-- code for input -->
<div class="form-group complete">
<label>label for text input</label>
<input type="text"/> <span class="error-message">This is an error message</span>
</div>
<!-- code for dropdown -->
<div class="form-group complete">
<label>label for select input</label>
<div class="custom-selectbox custom-selectbox-form">
<select name="sth" required>
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
</select> <span class="selectedValue"> </span>
<span class="is-visually-hidden">select to open the list</span>
</div> <span class="error-message">This is an error message</span>
</div>
.complete:after {
content:'OK';
}
我需要为输入字段显示其他内容(在本例中为“确定”),但不为select显示
交互组件后的跨距是可选的,因此不必存在
你知道如何定义这个选择器吗?既然你不能使用
:在输入元素上的之后,我能想到的就是一个真正的黑客解决方案:选择后面的元素,在它前面插入一个:伪元素
.complete input[type="text"] + .error-message:before {
content:'OK';
}
作为一个有效的例子
编辑
.error message
元素并不总是存在,这会影响计划。您可以对:before(+:before
)进行非固定调用,但如果以下元素以某种方式隐藏,则OK消息也将隐藏。即使它存在,它也会选择下面元素的样式。看
我将把这个想法留给大家看,但它看起来不适合你的目的。可能的重复不能在“输入”元素上使用伪元素。@TonyChen哦,我想我误解了他的意思。如果是这样的话,您可以对:before进行非固定调用,例如,input[type=“text”]+:before{}
。但这也有它自己的问题。我会更新帖子的。