After witnessing some awesome things CSS can do, it's time for HTML to come in the same spotlight!
It's amazing that you can do so much with just HTML.
1. Dropdown with searchable text
2. Dialog box
3. Measuring progress
Styling this is not an easy task, I agree! But there's always some workaround and it's nicely explained here - How to style progress element
4. Expand/collapse details
5. Show correct mobile keypad based on input type
6. Add a simple colour picker
7. Highlight text
8. Create a direct phone number link
Similar to email link with
mailto we can also create a direct phone number link.
9. Show deletion and insertion of text
10. Edit page contents
Wish to make your own browser editor? You can do that too - How to make browser editor with html.
Note: Not all browsers have implemented these elements and attributes. But we can still use these today with progressive enhancements! 🙂
HTML is the foundation of any webpage, it's only wise to pay real good attention to it. Semantic markup not only helps in SEO but also helps in accessibility.
If you've come across any such cool thing HTML is capable of, please mention below 😀
In other news, I made a silly project : https://hp-ipsum.netlify.com
Follow me on twitter @_ananyaneogi to get more tidbits 😊
Top comments (147)
Help!😱 The Dropdown is chasing me!
Nice post, I already knew all of those except for the one about dialogues, newcomers will definitely find this useful.
Dialog only works in Chrome based browsers. Firefox doesn't support it without enabling an option.
Seems to work fine for me on 67.0.4
On mobile Safari 1,2 and 6 is not working 😕
Nothing works on safari 😂
Same here 😥
Yeah, the Dropdown can do that. :P
Made me smille
I have no dropdown here.
My preferred one. On desktop:
Unfortunately, it only looks this good in Firefox. Also doesn't seem to handle foreign localizations well, as is the case with Portuguese:
It works fine for me for the few languages I’ve tested. That seems particular to your locale. You should report the bug here: bugzilla.mozilla.org
The problem is it is still not supported by Safari and some other browsers...
Safari is the new IE
This is great! 😀
I’ve struggled to find a date time picker of my material ui react application. It’s best native (built-in) input methods for portability and simplicity
How well is it customizable?
datalistis one I'll have to definitely look at. The frontend team at my job is building out a new set of components for our apps, including various dropdown/filterable elements. Same with
thankfully we only have to support latest FF, Chrome, and soon Edge. i'm ok with that.
I found this when trying to make a searchable drop-down, and it's almost perfect except I couldn't make it show all options when it first recieves focus. So annoying.
if you were trying in firefox i think there's a known issue around that. caniuse.com may have some info on that
Great post, shame some of these features are not supported on major browsers.
Don't forget to visit caniuse.com/ before attempting to implement one of these features.
... but only after you have carefully tested nonsupporting browsers. ⚠️
The “dialog” example looks very bad on latest stable Safari (12.1):
but that can be fixed with proper CSS (although I’ve tested it only superficially):
At this point, I would still test IE and Edge before using it.
There's a polyfill for those, although Edge will arguably gain support as soon as it switches to Chromium.
This post is magical, thank you!! 😭
In regards to your "silly project" I too have something similar. When I type potteripsum on my keyboard, it spits out
Leviosa protego arania quietus ennervate lumos morsmordre serpensortia protego nox scourgify. Aparecium petrificus oblivious serpensortia arania portus wingardium ennervate. Imperturbable apparate pepperup totalus petrificus riddikulus. Jinx homorphus finite legilimens hover. Impedimenta serpensortia mobilicorpus nox totalus imperio peskipiksi mortis momentum. Expecto mobilarbus protego locomotor nox apparate aresto mobilicorpus. Totalus colloportus alohomora patronum funnunculus ennervate petrificus engorgio legilimens babbling.
Immobilus protego peskipiksi totalus stupefy totalus densaugeo incarcerous confundus. Impedimenta ennervate sonorus incendio impedimenta aparecium evanesca aparecium locomotor wingardium. Alohomora aparecium amortentia ennervate mobilicorpus patronum. Momentum immobulus mortis protean flagrate. Serpensortia impedimenta leviosa avis tarantallegra orchideous protego.
Aresto petrificus imperius aparecium immobilus concealment.
Nice collection of HTML functionality!
I learned about
datalist1-2 years ago and it still blows my mind. I think it comes from many horrible years of fudging it with JS
And virtually none of these are supported by ie. When will that crap of a browser just go away?
With 5% worldwide market share (around 2% decrease since last year) and not getting any real updates for around 6 years, you might as well just show "upgrade your browser" page to the elderly people still using IE.
yeah, but you (well at least our company) has to code around these "elderly people" still using IE.
IE is moving to Chromium soon, so it will quickly get back in sync with modern browsers.
but there is (as far as I know) no mandate to force users to stop using current versions of IE. Heck, there are still companies using Windows 7. We'll see a small, but very vocal ie user base that refuse to give up this piece of trash for a long time yet.
Unless a company can take a stand that they will no longer support it (which I have proposed to my management), it will continue to be a thorn in our side for a long time.
Not sure if I'll ever encounter a use case for it, but deletion and insertion are pretty rad, didn't know that thing exists. 👍
However, I'd suggest adding
text-decoration-skip-ink: noneto the
<ins>CSS, otherwise macOS font rendering will butcher some of the wavy underlines:
That's a great point! I've updated the demo with
I love this series of posts, they're really helpful. I shared this one on Twitter before even realizing it mentioned my work on a contenteditable browser editor. Haha, that was a nice surprise. Thanks for sharing with us!
Your browser editor post was really cool! 🙂
Definitely didn't know about
Makes entering time values consistent and also easier on mobile.
I built a polyfill for it as well so that there is no reason not to use it 😁
Well, the dialog box will not work without JS, so it can't be considered pure HTML solution.
On the other hand, combining checkbox with some CSS, the same behavior can be implemented without JS at all.
Nice, I like the lightweight approach. However, there are certain limitations to the HTML-native components. As has already been pointed out, the dropdown doesn't play well with scrolling. If you use a HTML , then you have little control over the look of the dropdown in CSS. It's all about those small things... I believe browsers could do a better job with the native components and their HTML integration. Currently, web devs build the most absurd constructions to achieve things like a dropdown menu, and run into the weirdest corner cases with focus handling, overlay anchoring etc.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.