Creation of web pages is performed by marking-up content using the so-called markup languages (such as HTML).
It is an integral part of website development. The quality of website markup has a considerable influence on the quality of websites in general, as search engines consider it a very important ranking factor. Many web developers use CSS for describing the look and formatting of web pages written in markup languages, and some of them use LESS (CSS preprocessor) to make this process easier.
CSS refers to Cascading Style Sheets. It is a style sheet language used for describing presentation of web pages. It can be applied to separate elements of web pages such as layout, fonts, colors etc. Usage of cascading style sheets on websites provides more control and flexibility in the specification of presentation characteristics, improves content accessibility. It has become a standard for website markup.
CSS is designer primarily to enable separation of web page content from its presentation. It means that if you need to make any changes to web design, content will remain untouched. This separation enables multiple pages to share formatting and reduces repetition and complexity in the structural content. Such approach allows to save both time and money spent on website development.
CSS has a lot of advantages, otherwise it wouldn't be so popular. However, cascading style sheets also have some drawbacks. Many web developers are convinced that the main disadvantage of CSS is inability to use calculated values and parameters for individual elements and their properties. Due to this inability web developers sometimes have to spent much time to edit CSS files manually. The more changes need to be introduced, the more errors can occur.
Errors in CSS files lead to errors in site markup. Errors in site markup, in their turn, lead to incorrect presentation of web pages in browsers. If CSS files on your site contain too many errors, the site will be badly indexed by search engines. That is why many web developers use LESS (Leaner CSS). This CSS preprocessor allows to reduce the likelihood of errors and extend the standard features of CSS.
A preprocessor is a computer program that processes its input data to produce output that is used as input to another program. LESS is a CSS preprocessor; it means that after processing input data in produces CSS files that can be used for website markup. This dynamic stylesheet language can be compiled into plain CSS, or can run on the server-side and client-side. LESS allows real-time compilation via LESS.js by the browser.
The main advantage of LESS is the availability of the following mechanisms: variables, nesting, mixins, operators and functions. In this respect it is not much different from conventional programming languages. As it has already been mentioned above, LESS allows to expand the standard features of CSS. For example, it allows to change color and size of web page elements very easily and to edit even the longest and most complicated CSS files very quickly.
By the way, LESS is not the only available CSS preprocessor. Sass (Syntactically Awesome Stylesheets) is another stylesheet language which has similar capabilities. For example, Sass also allows to add variables and mixins to the standard CSS code. Nested rules are one of the key features of Sass; they allow to edit nested selectors in CSS much quicker and easier.