利用placeholder-shown
選擇器巧妙控制搜索按鈕的顯示與隱藏
placeholder-shown
選擇器是一個非常酷炫的CSS特性,它允許我們選擇輸入框的佔位符(placeholder), 僅當佔位符可見時(即輸入框為空)才生效。這與input[value]
不同,後者無法直接判斷佔位符是否存在。 placeholder-shown
與:hover
、 :checked
(複選框技巧)、 :focus-within
等一樣,能夠響應用戶交互狀態。
我們可以利用它來控制搜索按鈕的顯示:當用戶在搜索框中輸入文本時顯示搜索按鈕,否則隱藏。這是一種節省空間的技巧,類似於浮動標籤。
首先,我們創建一個語義化的搜索表單:
為了隱藏標籤,我們使用了sr-only
類(此處省略具體樣式,該類僅供屏幕閱讀器識別)。同時,我們通過overflow: hidden
hidden )來隱藏按鈕。
CSS樣式如下:
.search-form { --searchButtonWidth: 75px; /* 重複使用該值,提高代碼可讀性*/ overflow: hidden; position: relative; } .search-input { width: 100%; } .search-button { position: absolute; left: 100%; /* 將按鈕推到表單之外*/ width: var(--searchButtonWidth); transition: 0.2s; /* 添加動畫效果*/ }
關鍵在於,當佔位符消失(用戶輸入文本)時,將搜索按鈕拉回表單內:
.search-input:not(:placeholder-shown) ~ .search-button { transform: translateX(calc(-1 * var(--searchButtonWidth))); /* 通過translateX將按鈕移動回表單內*/ }
最終效果: (此處應插入效果圖,但原文未提供)
這個技巧參考了Liam Johnston的Pen。 雖然使用placeholder屬性本身存在爭議,但其在CSS中直接處理狀態的特性非常吸引人,類似於著名的checkbox hack。
瀏覽器支持度良好,尤其是在Edge採用Chromium內核後。 (此處應插入瀏覽器支持表格,但原文表格內容為空)
以上是顯示搜索字段非空的搜索按鈕的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境