利用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中文网其他相关文章!

React生态系统为我们提供了许多库,所有库都集中在拖放的相互作用上。我们有反应,反应,可爱dnd,

我可以说我经常使用背景折叠。 IT Wager IT几乎从未在日常CSS工作中使用。但是在斯特凡·朱迪斯(Stefan Judis)的帖子中,我想起了它,

使用RequestAnimationFrame进行动画化应该很容易,但是如果您还没有彻底阅读React的文档,那么您可能会遇到一些事情

听着,我不是GraphQL专家,但我确实喜欢与之合作。作为前端开发人员,它向我曝光数据的方式非常酷。它就像一个菜单


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

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

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver Mac版
视觉化网页开发工具

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