無法控制頁面,但透過CSS檢測輸入是否包含文字
P粉850680329
2023-08-20 18:25:33
<p>有沒有辦法透過CSS來偵測輸入框是否有文字?我嘗試使用<code>:empty</code>偽類和<code>[value=""]</code>,但都沒有成功。我似乎找不到一個解決方案。 </p>
<p>我想這一定是可能的,考慮到我們有<code>:checked</code>和<code>:indeterminate</code>這樣的偽類,它們都是類似的東西。 </p>
<p>請注意:<strong>我是為了一個「Stylish」樣式而做這個</strong>,不能使用JavaScript。 </p>
<p>也要注意,Stylish是在使用者無法控制的頁面上使用的,客戶端的。 </p>
您可以使用
:placeholder-shown
偽類。技術上來說,需要一個佔位符,但您可以使用一個空格來代替。Stylish無法做到這一點,因為CSS無法實現這一點。 CSS沒有(偽)選擇器適用於
<input>
值。 請參閱::empty
選擇器僅適用於子節點,而不適用於輸入值。[value=""]
可以工作;但僅適用於初始狀態。這是因為CSS所看到的節點的value
屬性與節點的value
屬性不同(由使用者或DOM JavaScript更改,並作為表單資料提交)。除非您只關心初始狀態,您必須使用使用者腳本或Greasemonkey腳本。 幸運的是,這並不難。以下腳本將在Chrome中工作,或在安裝了Greasemonkey或Scriptish的Firefox中工作,或在支援使用者腳本的任何瀏覽器中(即大多數瀏覽器,除了IE)。
在這個jsBin頁面上查看CSS限制和JavaScript解決方案的示範。