background preloader

CSS

Facebook Twitter

Magic Numbers in CSS. Magic numbers in CSS refer to values which "work" under some circumstances but are frail and prone to break when those circumstances change. They are usually always related to fonts in some way or another. They are created by an author who likely only tested in their own browser under ideal conditions. Let's take a look at some examples so we all know what they are and hopefully can avoid them in the future. Look at this simple set of tabs: Each of the tabs is set to width: 100px;. A bit awkward and likely undesirable. Our tabs would be less prone to breakage if we use min-width instead: Or perhaps no width at all: If you were dead-set on having all the tabs the same size, you could do overflow: hidden; and text-overflow: ellipsis; perhaps: In that case, you'd probably want a title attribute so there is some way to reveal the entire tab name.

In a recent post Line-On-Sides Headers, I used a line-height value that was a magic number. And now a big sad trombone: Definition Confusion top: 37px; FIXED! font-face rendering incorrectly in Chrome. For a while now web designers have been tackling the issue of fonts on the web. Times have now changed from the days of designing strictly in web-safe fonts (Arial, Tahoma, Georgia etc.) to using JavaScript (Cufon) to render more fancy fonts. With a huge wealth of fonts (both paid and free) now readily available online to designers, rendering fonts online has become more of an issue. Sure, your website may look great in Photoshop, but how are you going to emulate that intricate font across multiple browsers?

There are a variety of font services out there: fonts.com and Google fonts are the big players; however we decided to go down the route of @font-face, as we have a large collection of bought fonts already that we could utilise through @font-face. Skip To The Fix! »» font-face @font-face is a CSS rule which allows you to download a particular font from your server to render on a webpage if the user hasn’t got that specific font installed. Font-face vs Chrome The FIX! Try It Yourself . The @Font-Face Rule And Useful Web Font Tricks. Advertisement The possibility of embedding any font you like into websites via @font-face is an additional stylistic device which promises to abolish the monotony of the usual system fonts. It surely would be all too easy if there was only one Web font format out there.

Instead, there’s quite a variety, as you will get to know in this article. This quick introduction to @font-face will lead you towards a guide through the @font-face kit generator. If you want to make Web use of your already licensed desktop fonts, read up on how to embed them from your own server. Web Font Formats EOT, TTF, OTF, CFF, AFM, LWFN, FFIL, FON, PFM, PFB, WOFF, SVG, STD, PRO, XSF, and the list goes on. TrueType This format was developed in the late 1980s as a competitor to Adobe’s Type 1 fonts used in PostScript. OpenType Microsoft and Adobe teamed up in developing this font format. OpenType fonts with TrueType Outlines (OpenType TT) and OpenType fonts with PostScript Outlines (OpenType PS) @font-face Revolution.

Responsive

An Introduction To LESS, And Comparison To Sass - Smashing Magazine. Advertisement I’ve been using LESS1 religiously ever since I stumbled upon it months ago. CSS was never really a problem for me, in and of itself, but I was intrigued by the idea of using variables to create something along the lines of a color palette for my websites and themes. Having a color palette with a fixed number of options to choose from helps prevent me from going color crazy and deviating from a chosen style. As it turns out, LESS — and Sass for that matter — are so much more than that. LESS and Sass share a lot of similarities in syntax, including the following: Mixins – Classes for classes.Parametric mixins – Classes to which you can pass parameters, like functions.Nested Rules – Classes within classes, which cut down on repetitive code.Operations – Math within CSS.Color functions – Edit your colors.Namespaces – Groups of styles that can be called by references.Scope – Make local changes to styles.JavaScript evaluation – JavaScript expressions evaluated in CSS.

LESS Is More. Stop Making Sprites (Compass, Sass, and PNG Sprite Generation) | Viget Inspire. Update 01/11/12: new code at the bottom of this post. Sass has been kicking around for a while, but I hadn’t given it a try until just recently. Sass usually goes hand-in-hand with Rails, Compass makes it so easy to run Sass on standalone projects that I’ve started using it on nearly everything. The result is faster, DRYer, more enjoyable coding. The biggest benefit for me has been Compass’s sprite generation, which — if done right — can cut down your coding time and filesize.

Sprites are an optimization best practice, but they’re no fun to work with. It also does things the Rails way, in that it provides conventions to follow rather than configuration to specify. Folder Structure This is how I’m laying out the example project: I like to separate any compile-to stuff from the actual final output — hence “compile” and “assets”.

Sass allows you to break CSS up and @import it into a single file at compile time, and I tend to go crazy with this feature. Compass watch compile/sass/all.scss. Don’t use IDs in CSS selectors? ❧ Oli.jp (@boblet) Recently I came across the post by Matt Wilcox called CSS Lint is harmful, ranting about the useful free tool CSS Lint. The “Don’t use IDs in selectors” suggestion seems to have offended Matt the most, but I was surprised that many commenters also mentioned this as being a reason to avoid CSS Lint. This surprised me because smart people have been saying prefer classes to IDs for a while now. The article was light on reasons why this suggestion might be bad, but it boils down to: Performance — IDs are “the fastest way a browser can select a given element”If they’re already in the markup it’s best to use them for CSSI’ve been using IDs like forever… waddya mean I shouldn’t use them!?

Performance # It’s a common belief that ID selectors are the fastest, but this comes with a big caveat: IDs are fastest CSS selector only if they’re the key selector. #home a {…} We’d generally read this selector as find the element with id="home", then apply these styles to every a it contains. Conclusion # The 30 CSS Selectors you Must Memorize. CSS3 Solutions for Internet Explorer - Smashing Magazine. Advertisement Experienced developers understand that CSS3 can be added to new projects with progressive enhancement in mind. This ensures that content is accessible while non-supportive browsers fall back to a less-enhanced experience for the user. But developers could face a situation where a client insists that the enhancements work cross-browser, demanding support even for IE6. In that case, I’ve collected together a number of options that developers can consider for those circumstances where support for a CSS3 feature is required for all versions of Internet Explorer (IE6, IE7, & IE8 — all of which are still currently in significant use).

Opacity / Transparency I think all developers are baffled at why Internet Explorer still fails to support this very popular (albeit troublesome) property. The Syntax You really only need the second line, which works in all versions of Internet Explorer. The Demonstration This is the same element without the opacity settings. The Drawbacks Box Shadow. iPad Orientation CSS (Revised) - desideratum.

Sass

Ie7nomore.com, just another CSS playground. CSS - Contents and compatibility. CSS > selection styles. A new micro clearfix hack. The clearfix hack is a popular way to contain floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required. Demo: Micro clearfix hack Known support: Firefox 3.5+, Safari 4+, Chrome, Opera 9+, IE 6+ The “micro clearfix” method is suitable for modern browsers and builds upon Thierry Koblentz’s “clearfix reloaded”, which introduced the use of both the :before and :after pseudo-elements. Here is the updated code (I’ve used a shorter class name too): This “micro clearfix” generates pseudo-elements and sets their display to table. This creates an anonymous table-cell and a new block formatting context that means the :before pseudo-element prevents top-margin collapse. Including the :before selector is not necessary to clear the floats, but it prevents top-margins from collapsing in modern browsers.

CSS3