Die Seite kann nicht gesteuert werden, aber über CSS wird erkannt, ob die Eingabe Text enthält
P粉850680329
2023-08-20 18:25:33
<p>Gibt es eine Möglichkeit, über CSS zu erkennen, ob das Eingabefeld Text enthält? Ich habe versucht, die Pseudoklasse <code>:empty</code> und <code>[value=""]</code> zu verwenden. Ich kann anscheinend keine Lösung finden. </p>
<p>Ich denke, es muss möglich sein, wenn man bedenkt, dass wir Pseudoklassen wie <code>:checked</code> haben, die ähnliche Dinge sind. </p>
<p>Bitte beachten Sie: <strong>Ich mache dies für einen „stilvollen“ Stil</strong> und kann kein JavaScript verwenden. </p>
<p>Beachten Sie außerdem, dass Stylish auf Seiten verwendet wird, über die der Benutzer keine Kontrolle hat, also auf der Clientseite. </p>
您可以使用
:placeholder-shown
伪类。技术上来说,需要一个占位符,但您可以使用一个空格代替。Stylish无法做到这一点,因为CSS无法实现这一点。CSS没有(伪)选择器适用于
<input>
值。请参阅::empty
选择器仅适用于子节点,而不适用于输入值。[value=""]
可以工作;但仅适用于初始状态。这是因为CSS所看到的节点的value
属性与节点的value
属性不同(由用户或DOM JavaScript更改,并作为表单数据提交)。除非您只关心初始状态,您必须使用用户脚本或Greasemonkey脚本。幸运的是,这并不难。以下脚本将在Chrome中工作,或者在安装了Greasemonkey或Scriptish的Firefox中工作,或者在支持用户脚本的任何浏览器中(即大多数浏览器,除了IE)。
在这个jsBin页面上查看CSS限制和JavaScript解决方案的演示。