Show Search Button when Search Field is Non-Empty
Use placeholder-shown
selector to smartly control the display and hiding of search buttons
placeholder-shown
selector is a very cool CSS feature that allows us to select placeholders for input boxes, which will only take effect when the placeholder is visible (i.e., the input box is empty). This is different from input[value]
, which cannot directly determine whether the placeholder exists. placeholder-shown
is the same as :hover
, :checked
(checkbox skills), :focus-within
etc., and can respond to user interaction status.
We can use it to control the display of the search button: the search button is displayed when the user enters text in the search box, otherwise it is hidden. This is a space-saving technique, similar to floating tags.
First, we create a semantic search form:
To hide the tags, we use the sr-only
class (the specific style is omitted here, which is only for screen readers to recognize). At the same time, we hide the buttons by hiding overflow ( overflow: hidden
).
The CSS style is as follows:
.search-form { --searchButtonWidth: 75px; /* Reuse this value to improve code readability*/ overflow: hidden; position: relative; } .search-input { width: 100%; } .search-button { position: absolute; left: 100%; /* Push the button outside the form*/ width: var(--searchButtonWidth); transition: 0.2s; /* Add animation effect*/ }
The key is to pull the search button back into the form when the placeholder disappears (user enters text):
.search-input:not(:placeholder-shown) ~ .search-button { transform: translateX(calc(-1 * var(--searchButtonWidth))); /* Move the button back into the form via translateX*/ }
Final effect: (The rendering should be inserted here, but not provided in the original text)
This technique is referenced by Liam Johnston's Pen. While the use of the placeholder property itself is controversial, its feature of directly handling state in CSS is very attractive, similar to the famous checkbox hack.
Browser support is good, especially after Edge adopts the Chromium kernel. (The browser support form should be inserted here, but the original form content is empty)
The above is the detailed content of Show Search Button when Search Field is Non-Empty. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Let’s attempt to coin a term here: "Static Form Provider." You bring your HTML

At the start of a new project, Sass compilation happens in the blink of an eye. This feels great, especially when it’s paired with Browsersync, which reloads

In this week's roundup of platform news, Chrome introduces a new attribute for loading, accessibility specifications for web developers, and the BBC moves

This is me looking at the HTML element for the first time. I've been aware of it for a while, but haven't taken it for a spin yet. It has some pretty cool and

Buy or build is a classic debate in technology. Building things yourself might feel less expensive because there is no line item on your credit card bill, but

In this week's roundup, a handy bookmarklet for inspecting typography, using await to tinker with how JavaScript modules import one another, plus Facebook's

For a while, iTunes was the big dog in podcasting, so if you linked "Subscribe to Podcast" to like:

There are loads of analytics platforms to help you track visitor and usage data on your sites. Perhaps most notably Google Analytics, which is widely used
