0

CSS Tutorial: Syntax


Selectors, properties & values

CSS syntax is made up of three parts:

  • selector (often the HTML element you wish to style)
  • property (the attribute you wish to change eg. background colour)
  • value (eg. the colour you want your background to be)

The way in which these are used is:

selector {property: value;}

You don't have to have each property/value pair on a separate line but it does increase readability - especially in long, complex style sheets.

For example, to set a black background, you would use:

body {background: #000000;}

where #000000 is the hexadecimal code for black.

If the value you want to use contains white space multiple words, put quotes around the value:

p {font-family: 'sans serif';}

You can specify more than one property in a given declaration. The example below shows how to define a center aligned paragraph of italicised text.

p {text-align:center; font-style: italic;}

You can group selectors by separate them with commas.

In the example below, all the header elements have been defined as white:

h1,h2,h3,h4,h5,h6 {color: #ffffff;}

However, whenever you do define a text colour, it is advisable to also define a background colour and vice versa. This can ensure that your text remain readable.

h1,h2,h3,h4,h5,h6 {color: #ffffff; background: #000000;}

Now your white header text will always be on a black background - even if the rest of your page has a white background.

[Top]


The class selector

With the class selector you can define different styles for the same type of HTML element.

For example, you want two types of paragraphs in your document: one italicised and one bold.

p.italic {font-style: italic;}
p.bold{font-weight: bold;}

Now, when you want to use either of the above styles in a web page, you can do the following

<p class="italic">This paragraph will be in italics.</p>
<p class="bold">This paragraph will be bold.</p>

However, you can only specify one class attribute per HTML element at any one time! The example below is the wrong way of trying to get bold, italicised, text:

<p class="italic" class="bold">This text is bold and italic.</p>

The correct method would be to define a third class selector.

p.bold-italic {font-style: italic; font-weight: bold;}

And then use:

<p class="bold-italic">This text is bold and italic.</p>

[Top]


Making selector classes available to multiple HTML elements

If you omit the tag name in a selector, you open it up to be used by any HTML element.

For example, the following class:

.center {text-align: center;}

can be used with any tag as appropriate.

<p class="center">...</p>
<span class="center">...</span>
<td class="center">...</td>
<div class="center">...</div>

can all be used in the same document.

Use class selectors where you think you will need to re-apply the same style more than once in a given document.

If you think that you will need to use the style with different HTML elements, don't include any tag names in the class selector declaration.

[Top]


The id selector

The id selector is different from the class selector.

While a class selector may be applied to many elements in a given document, an id selector can only be applied to only one element within a given document ie. it must be unique within the document.

The style rule below will match a p element that has the id value 'para1':

p#para1 {text-align: center; color: #ff0000; background: #000000;}

The style rule below will match the first element that has the id value 'green':

#green {color: 00ff00;background: #000000;}

So you could have:

<h1 id="green">...</h1>
<h2>...</h2>
<p id="para1">...</p>

in the same document.

But having:

<h1 id="green">...</h1>
<h2 id="green">...</h2>
<p id="para1">...</p>

would be illegal as you would have attempted to repeat the id selector '#green'.

Use id selectors for styles that you are sure you'll only need once in a given document.

[Top]


CSS Comments

You can insert comments in CSS to explain your code, which can help you when you edit the source code at a later date.

Comments are ignored by the browser and begin with "/*", and ends with "*/".

/* This is a comment */
p {text-align: center;}
/* This is another comment */
h1 {background: #ffffff; color: #000000;}

[Top]

by 1.1K

Remember to vote! Voting helps everyone find the best posts

Tags: None