icons, menus, and advertisements are printed which could never be clicked!.ink is wasted on unnecessary colored backgrounds and images.sections may be cropped or disappear entirely.columns can be too narrow, too wide, or overflow page margins.text can be too small, too large, or too faint.Unfortunately, printing pages can be a frustrating experience: printing a page for your colleague who refuses to use this newfangled t’internet nonsense.providing documents to those with disabilities who find it difficult to use a screen.printing web receipts for bookkeeping purposes.outputting draft content for written annotations.using data in dangerous or dirty conditions - for example, a kitchen or factory.accessing information in an area with poor connectivity.reproducing route directions or timetables.“Who prints web pages?” I hear you cry! Relatively few pages will ever be reproduced on paper. In this article, we review the art of creating printer-friendly web pages with CSS. I recently launched a comprehensive, interactive online course called CSS for JavaScript Developers.This article was updated in 2020 to reflect latest best practices in CSS print styling. I love writing CSS these days!įor the past year and a half, I've been focused on helping JS developers change their relationship with CSS. If you take a bit of time to learn how the language really works, though, everything becomes so much more intuitive and predictable. When your mental model is incomplete, you're bound to run into some problems. Unless you pop the hood and learn what's really going on under there, the language will always feel a bit unpredictable and inconsistent. And honestly, there's so much more I want to say! We only scratched the surface in a bunch of places.ĬSS is a deceptively complex language. My CSS reset is quite short (only 11 declarations!), and yet I've managed to spend an entire blog post talking about them. This rule will prevent that image from growing beyond its container, which feels like much more sensible default behavior to me. If an image has a "native" size of 800×600, the element will also be 800px wide, even if we plop it into a 500px-wide parent. Most block-level elements will automatically grow/shrink to fit their parent, but media elements like are special: they're known as replaced elements, and they don't follow the same rules. This is done to keep large images from overflowing, if they're placed in a container that isn't wide enough to contain them. If you've ever had a mysterious 4px gap that wasn't margin or padding or border, it was probably the “inline magic space” that browsers add with line-height.īy setting display: block on all images by default, we sidestep a whole category of funky issues. If we try to use an inline element in our layout, though, weird things happen. Typically, I treat images the same way I treat paragraphs or headers or sidebars they're layout elements. This doesn't jive with how I use images most of the time. This implies that they should be used in the middle of paragraphs, like or. So here's a weird thing: images are considered "inline" elements. We need to explicitly turn it off, by setting -webkit-font-smoothing to antialiased. I'm guessing they realized that it was doing more harm than good on modern hardware.Ĭonfusingly, MacOS browsers like Chrome and Safari still use subpixel antialiasing by default. In MacOS Mojave, released in 2018, Apple disabled subpixel antialiasing across the operating system. If you look at a modern monitor under a microscope, you won't see an orderly grid of R/G/B lines anymore. The physical arrangement of pixel LEDs has changed as well. Today's pixels are much smaller, invisible to the naked eye. Here's the problem: that article was written in 2012, before the era of high-DPI “retina” displays. You may have read a popular blog post, Stop “Fixing” Font Smoothing, that advocates against switching to “antialiased”. In the past, this was seen as an accessibility win, because it improved text contrast. This is a technique that aims to make text easier to read, by leveraging the R/G/B lights within each pixel. On MacOS computers, the browser will use “subpixel antialiasing” by default. Alright, so this one is a bit controversial.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |