Designing websites using CSS

Kentico websites use standard CSS styles to define the appearance and design of pages and their components. The system organizes CSS code into stylesheets.

Every site has a CSS stylesheet that pages use by default. However, you can assign a different stylesheet to each page. When displaying pages, the system automatically adds a request that loads the assigned stylesheet into the HTML code. See Creating CSS stylesheets to learn more.

You can also define CSS styles for various types of page components. For further information, see Adding CSS stylesheets to page components.

Tips
- If you wish to use a dynamic stylesheet language, you need to register a CSS preprocessor in the system. - You can download a LESS Preprocessor from the Kentico Marketplace. - The system provides a CSS validator that allows you to check if the styles of individual pages are valid against CSS standards.

Default styling of components

Kentico projects contain the Skin.css physical stylesheet by default, which provides basic styling for web parts and other components on the live site.

A global Skin.css file is located in the ~/App_Themes/Global folder. Individual sites have their own dedicated Skin.css files, which import the global Skin.css stylesheet. For example, the Corporate Site sample site has its Skin.css file in the ~/App_Themes/CorporateSite folder. If you edit the file, you can see that the stylesheet imports the global Skin.css file, and contains several additional styles for the Corporate Site.

The styles in Skin.css use the .ContentBody class to have stronger (more specific) selectors.

Note: The Skin.css stylesheet is linked by default on the pages of all Kentico sample sites except for Blank Site and Blank Site ASPX.

Creating custom component styles for sites

The default Skin.css styles may interfere with your site’s custom stylesheets.

Use one of the following approaches to implement custom component styling for your website:

  • Do not include Skin.css on your site, define all required styles in standard Kentico CSS stylesheets (you can copy useful rules from Skin.css)
  • Use the !important directive or stronger selectors (with more classes) in your CSS to override the default styles
  • Edit the skin stylesheets directly

Note: If you edit the global skin stylesheet, the changes affect all sites in your Kentico instance, and may be overwritten when you upgrade the site to a new version of Kentico.

LESS code base

Skin.css is generated from the LESS Skin.less file. You can modify Skin.css directly, but you lose the advantages of the structured, commented and more readable .less file.

The Skin.less file is located in ~/App_Themes/Global and includes multiple skin sub-files in the ~/App_Themes/Global/Skin folder.

If you are uncertain how to work with LESS, you can find articles describing the process at Using the LESS CSS Preprocessor for Smarter Style Sheets.

Browser and language‑specific styles

The system automatically assigns CSS classes to the <body> element of pages according to the characteristics of the selected language (the text direction and exact culture) and the browser used to display the page. For example:




<body class="LTR IE IE9 ENUS">


 Four types of classes are added:

  • Text direction - the LTR class is assigned for left‑to‑right languages, and RTL for right‑to‑left.

  • Browser type - added according to the browser in which the page is opened. The following classes are used:

    Browser

    Class names

    Internet Explorer

    IE

    Firefox

    Gecko

    Google Chrome

    Chrome, Safari

    Safari

    Safari

    Opera

    Opera

  • Browser version - the class name is the same as for the browser type, but with the number of the browser’s major version appended, for example IE9, Gecko26 etc.

  • Culture - the name of the class is added based on the culture code of the page’s content (without the hyphen), for example ENUS for pages using the en-US culture.

This feature allows you to style page elements differently according to the browsing environment of the current visitor. You can define styles for any combination of the classes mentioned above.

For example, you can add the following into a website’s stylesheet:




.IE9 .MyFont 
 {
   font-size: 20px;
 }

 .Opera .MyFont 
 {
   font-size: 18px;
 }


Now elements styled using the MyFont class have a different font size when viewed in the Internet Explorer 9 or Opera (all versions) browsers.