Mozilla Developer Channel
DevRel Contractor: Videos, articles, & tools from Mozilla (and OddBird)
without any JavaScript “scrolljacking”
When we’re scrolling down a page, or through a gallery of images, snap-targets can help guide us from one section or image to the next. In the past, developers have used JavaScript to hijack scrolling, but now we can manage scroll alignment directly in CSS with only a few lines of code.
DevRel Contractor: Videos, articles, & tools from Mozilla (and OddBird)
Firefox 69 was the first to implement selector feature queries, but other browsers are following suit. I’ll show you how it works, and how to start using this new feature query right away.
Horizontal text overflow has always been difficult to manage on the web. The default visible overflow is designed to make sure content remains accessible no matter the size of a containing box, but it’s not our only option.
The display
property has been in CSS from the beginning,
handling everything from block
and inline
boxes
to list-items
and full layout systems like flexbox
or grid
.
Now the display
syntax is getting an upgrade
to match it’s multiple uses.
There are a number of property & value combinations that can lead to CSS being inactive, and now Firefox will tell you why. Open the developer tools, and look for the greyed-out property with an info-box on hover.
It’s a common pattern to align form labels and inputs in grid-like layout. I’ll show you how to do it quickly using CSS subgrid, with several quick fallbacks.
Card layouts are popular on the web, rows and columns of boxes with similar content. CSS grids can help align those cards, but it’s still be hard to line-up content inside the cards – headers and footers that might need more or less room.
For years, we’ve struggled to build resilient layouts on the web, but CSS Grid promises to change all that – and you can start using it now, with only a few properties and basic concepts.
I’ve often used initial
and unset
in my CSS –
global keywords that can be applied to any property.
The difference is small, but important:
unset
allows inheritance,
while initial
does not.
But then Firefox implemented revert
and I was confused –
how is this one different from the others?!
Love it or hate it, CSS is weird: not quite markup, not quite programming in the imperative sense, and nothing like the design programs we use for print. How did we get here?
When you create lists in HTML, browsers add bullet-points or numbers we call list markers. Now CSS gives us the tools to style those list markers, and even create our own!