background preloader

An Introduction To LESS, And Comparison To Sass - Smashing Magazine

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. 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. The main difference between LESS and Sass is the way in which they are processed. Variables

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. 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: index.htmlconfig.rb/assets - /images - /content - /structure - common-scc61cc8905.png - transparent-s72a23cbe19.png - /common (to be sprited) - /transparent (to be sprited) - /unique - /icons - /css - all.css - print.css/compile - /pngquant - pngquant - /images (PSDs) - /sass - all.scss - print.scss - /core - /content - /pages I like to separate any compile-to stuff from the actual final output — hence “compile” and “assets”. Saving Images

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 #

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. Including the :before selector is not necessary to clear the floats, but it prevents top-margins from collapsing in modern browsers. It ensures visual consistency with other float containment techniques that create a new block formatting context, e.g., overflow:hiddenIt ensures visual consistency with IE 6/7 when zoom:1 is applied.

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. 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 opacity value at the end of each IE line works basically the same way that the opacity property does, taking a number from 0 to 100 (the opacity property takes a two-digit number from 0 to 1, so “44″ for IE would be “0.44″ for the others). The Demonstration This is the same element without the opacity settings. The Drawbacks Rounded Corners (border-radius)

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. 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) 1OpenType comes in two different versions. OpenType PS is a so-called CFF based file format (CFF = compact file format). @font-face Revolution

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. 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. This particular example is a bit contrived, but I'm sure you've all seen custom fonts that have super crazy x-heights and stuff. And now a big sad trombone: top: 37px;

Related: