These are 10 small CSS tips that can actually help you in projects. If you would like to request more tips, let me know in the comments section.
1. Smooth Scrolling
When you visit some websites and try to go to different sections, it scrolls smoothly to that section. You can achieve this feature on your website by using one line of CSS.
Note: this will not work in Safari!
html {
scroll-behavior: smooth;
}
Live Example
2. Prevent <textarea>
Resize
You can use the resize
property to prevent a <textarea>
element from being resized (or limit it to one axis).
textarea.no-resize {
resize: none;
}
textarea.horizontal-resize {
resize: horizontal;
}
textarea.vertical-resize {
resize: vertical;
}
Live Example
3. Drop Cap
You can add a drop cap to a paragraph by using the ::first-letter
pseudo-element.
::first-letter {
font-size: 250%;
}
Live Example
4. Drop Shadow
You can use the drop-shadow()
filter effect on transparent images. It will give a much better shadow effect than using the box-shadow
property.
img {
filter: drop-shadow(0 0 3px #000);
}
Live Example
5. Center Any <div>
Element
It can sometimes be difficult to center a <div>
element on the page, but not with this tip. You can center any <div>
element on the page using a few lines of CSS code.
body {
display: grid;
place-items: center;
}
Live Example
6. Input Caret Color
You can use the caret-color
property to change the color of the input field caret.
input {
caret-color: red;
}
Live Example
7. Prevent Highlighting
This one is similar to #2, but you can use the user-select
property to prevent an element from being highlighted by the user.
.no-highlight {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
Live Example
8. Input Range Pseudo-Classes
The lesser-known :in-range
and :out-of-range
pseudo-classes can help you validate an <input>
element whose current value is within the range specified by its min
and max
attributes.
input:in-range {
background: rgba(0, 255, 0, .25);
}
input:out-of-range {
background: rgba(255, 0, 0, .25);
}
Live Example
9. Image Overlay
You can create an image overlay using the object-fit
property. This can prove to be useful when you want to create a hero image on your website.
.image-overlay img:only-of-type:nth-child(1) {
object-fit: cover;
opacity: .4;
}
Live Example
10. The transition
Property
You might know this one already, but what if I told you that there was a way to animate elements without the use of keyframes? The transition
property allows you to define the transition between two states of an element. It is mostly used for hover animations.
a {
color: #0d6efd;
text-decoration: none;
-webkit-transition: .15s ease-in-out;
-moz-transition: .15s ease-in-out;
transition: .15s ease-in-out;
}
a:hover {
color: #0a58ca;
}
Live Example
Latest comments (21)
Great tips!
Nice!
#8 is quite interesting. A lot is going on that one would no longer need to do with JS after seeing this trick. Even the text of the validation label changes when needed, as seen below. 😎🤩
input#value:in-range + label#value-status::after {
content: 'okay.';
}
Nice post, thanks for sharing!!
your welcome
Well the dev adding this feature probably thinks it's "professional" :-)
Thanks!!
Same! I don't like it either, what's more - I don't even see the point of it ... as a user I think, "my scroll wheel and mouse and its native/natural behavior are mine, don't mess with it!" It irks me greatly when a website is doing that :-)
Yea, I've done that too, but it's a pain.
That fits my definition of evil; making you do more work than is necessary. lol
Yeah man I also don't fully understand it! But there's a certain kind of "scrolling behavior" that I witnessed on some websites, and it's super annoying, although the site creators probably thought it was cool. Maybe that's smooth scrolling, or maybe it isn't :-)
But the example given here of smooth scrolling falls more or less in that same category, I don't like it either.
Please consider adding caniuse references or similar. CSS is amazing but almost every ‘awesome tips’ or ‘little known’ features article I see includes stuff that is not fully supported by all browsers. Even modern, evergreens.
Excuse me but what are caniuse references?
Entries on caniuse.com/ or similar sites which detail the support for particular CSS rules, web APIs etc.