An Interest In:
Web News this Week
- April 2, 2024
- April 1, 2024
- March 31, 2024
- March 30, 2024
- March 29, 2024
- March 28, 2024
- March 27, 2024
Short tricks of HTML, CSS and JavaScript II
This article was originally published on medium.com
A modern list of HTML, CSS and JavaScript How Tos for everyday use. Feel free to comment your own approaches :)
This is the second part, if you missed the previous one: Short tricks of HTML, CSS and JavaScript
Access last element in Array
JS
[1, 2, 3].at(-1)
It would be really nice to have [1, 2, 3][-1]
Horizontal and vertical center
The easiest way to center anything.
CSS
body { position: absolute; inset: 0; display: grid; place-items: center;}div { background-color: grey; width: 100px; height: 100px;}
View on JSFiddle here.
Date to local ISO string
JS
new Date().toLocaleString('sv')
Sweden hack.
Lazy loading images and iframes
Defer loading of images/iframes that are off-screen until the user scrolls near them.
HTML
<img src="image.webp" loading="lazy"><iframe src="game.html" loading="lazy"></iframe>
Get string after last specific character
JS
'filename.pdf'.split('.').pop()
HTML range value
Shortest version without form
, min
or external JavaScript.
HTML
<input type="range" value="0" max="10" oninput="num.value = this.value"><output id="num">0</output>
View on JSFiddle here.
Copy to clipboard
JS
navigator.clipboard.writeText('Mr Robot')
Reset all CSS
CSS
* { all: unset;}
You can use it with any selector.
Get month name
JS
const today = new Date()today.toLocaleString('default', { month: 'long' })
You can set any language you want instead of browser's default
language.
Embedding PDF files into HTML
HTML
<object type="application/pdf" data="https://your_file.pdf"> <iframe src="https://docs.google.com/gview?embedded=true&url=https://your_file.pdf"/></object>
Use object
with iframe
fallback to support all mobile browsers.
View on JSFiddle here.
Flip an image
CSS
img { transform: scaleX(-1); /* flip horizontally */}
Use scaleY(-1)
to flip vertically.
Shuffle an array
JS
array.sort(() => 0.5 - Math.random())
Select images with not alt
attribute
CSS
img:not([alt]) { border: 2px solid red;}
Detect dark mode
JS
window.matchMedia('(prefers-color-scheme: dark)').matches
Accept only specific files in an input
HTML
<input type="file" accept="image/*"> <!-- only images --><input type="file" accept=".pdf, .odt"> <!-- only pdf and odt -->
Deep cloning an object
Assuming you don't have functions inside you can use JSON methods.
JS
JSON.parse(JSON.stringify(object))
Progress bar
You already have a native component for that.
HTML
<progress value=".7">Progress</progress>
Smooth scrollbehavior
CSS
html { scroll-behavior: smooth;}
Detect if your file is an image
JS
file.type.includes('image')
Automatic email validation
Just place your email input
inside a form
.
HTML
<form> <input type="email" placeholder="[email protected]"></form>
View on JSFiddle here.
Transform image to WEBP format
Easier than you think using HTML5 canvas
, blob
and file
rename trick to run it back into a file.
JS
function transform_to_WEBP(file) { return new Promise((resolve, reject) => { const image = new Image() image.onload = () => { const canvas = document.createElement('canvas') canvas.width = image.naturalWidth canvas.height = image.naturalHeight canvas.getContext('2d').drawImage(image, 0, 0) canvas.toBlob(blob => resolve(new File([blob], 'filename.webp')) , 'image/webp') } image.src = URL.createObjectURL(file) })
We use a promise
because loading the file takes time.
Lazy rendering anything
content-visibility
is a CSS property that controls whether and when an element's content is rendered. It only renders the content of an off-screen component when it becomes on-screen.
CSS
.element { content-visibility: hidden;}
Clear all cookies
JS
document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`))
Don't show Material Icon text when loading font
We need to change @font-face
declaration on the server and luckily we can use an API for modifying the font-display
.
CSS
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons&display=block">
Get CSS Variable in JS
JS
getComputedStyle(document.documentElement) .getPropertyValue('--my-variable-name')
Debug an Android PWA
- Allow USB debugging in your device and open your PWA.
- Install Android Debug Tools and check for devices.
- Open Chrome (Chromium) and go to
chrome://inspect/#devices
Bash
sudo apt install android-tools-adb android-tools-fastbootadb devices
Analyse performance of pieces of your code
JS
console.time()// your codeconsole.timeEnd()
Capitalize first letter
JS
str.charAt(0).toUpperCase() + str.slice(1)
Number of days between 2 days
JS
(date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)
Basic fade-in animation
Workaround to avoid display: none
problems.
CSS
h1 { animation: fade 1s ease-in 3s forwards; pointer-events: none; opacity: 0;}@keyframes fade { 0% { opacity: 0; } 100% { opacity: 1; }}
View on JSFiddle here.
Get selected text
JS
window.getSelection().toString()
Allow user to resize anyelement
CSS
div { overflow: auto; resize: both;}
View on JSFiddle here.
Check valid date
JS
(new Date(date) != 'Invalid Date') && !isNaN(new Date(date))
HTML and CSS only interactive carousel
Snapping, clickable and responsive images in a carousel effect without JavaScript.
HTML
<g-carousel> <g-images> <a href="#b"><img id="a" src="https://source.unsplash.com/random/800x400?sig=1"></a> <a href="#c"><img id="b" src="https://source.unsplash.com/random/800x400?sig=2"></a> <a href="#a"><img id="c" src="https://source.unsplash.com/random/800x400?sig=3"></a> </g-images></g-carousel>
CSS
g-carousel { display: block; width: 100%; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth;}a { display: contents;}g-images { display: flex; width: calc(100% * 3);}img { width: 100%; scroll-snap-align: center;}
View on JSFiddle here.
Geek stuff
Do you love HTML, CSS and JavaScript as I do? ^^ Don't forget to check my geek clothing about web development ;P
Original Link: https://dev.to/gengns/short-tricks-of-html-css-and-javascript-ii-4hpm
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To