显示搜索字段非空的搜索按钮
利用placeholder-shown
选择器巧妙控制搜索按钮的显示与隐藏
placeholder-shown
选择器是一个非常酷炫的CSS特性,它允许我们选择输入框的占位符(placeholder), 仅当占位符可见时(即输入框为空)才生效。这与input[value]
不同,后者无法直接判断占位符是否存在。 placeholder-shown
与:hover
、:checked
(复选框技巧)、:focus-within
等一样,能够响应用户交互状态。
我们可以利用它来控制搜索按钮的显示:当用户在搜索框中输入文本时显示搜索按钮,否则隐藏。这是一种节省空间的技巧,类似于浮动标签。
首先,我们创建一个语义化的搜索表单:
为了隐藏标签,我们使用了sr-only
类(此处省略具体样式,该类仅供屏幕阅读器识别)。同时,我们通过隐藏溢出(overflow: 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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
