TutorialsPoint CSS Full PDF
TutorialsPoint CSS Full PDF
CSS is used to control the style of a web document in a simple and easy way. CSS
stands for Cascading Style Sheets. This tutorial covers both the versions CSS1 and CSS2
and gives a complete understanding of CSS, starting from its basics to advanced
concepts.
Audience
This tutorial will help both students as well as professionals who want to make their
websites or personal blogs more attractive.
Prerequisites
You should be familiar with:
If you are new to HTML and XHTML, then we would suggest you to go through our HTML
Tutorial or XHTML Tutorial first.
All the content and graphics published in this e-book are the property of Tutorials Point
(I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or
republish any contents or a part of contents of this e-book in any manner without written
consent of the publisher.
We strive to update the contents of our website and tutorials as timely and as precisely
as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I)
Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of
our website or its contents including this tutorial. If you discover any errors on our
website or in this tutorial, please notify us at [email protected]
i
Table of Contents
About the Tutorial .....................................................................................................................................
Audience .................................................................................................................................................. i
Prerequisites ............................................................................................................................................ i
What is CSS?............................................................................................................................................ 1
Attributes ................................................................................................................................................ 8
Attributes ................................................................................................................................................ 9
ii
External CSS - The <link> Element ........................................................................................................... 9
Attributes .............................................................................................................................................. 10
Shorthand Property............................................................................................................................... 26
iii
Set the Text Direction............................................................................................................................ 28
iv
12. CSS ─ BORDERS.................................................................................................................. 46
v
17. CSS ─ OUTLINES ................................................................................................................. 70
vi
The :first-child pseudo-class .................................................................................................................. 88
vii
27. CSS ─ MEDIA TYPES ......................................................................................................... 112
viii
The speech-rate Property .................................................................................................................... 127
ix
CSS
1. CSS ─ Overview
What is CSS?
Cascading Style Sheets, fondly referred to as CSS, is a simple design language intended
to simplify the process of making web pages presentable.
CSS handles the look and feel part of a web page. Using CSS, you can control the color
of the text, the style of fonts, the spacing between paragraphs, how columns are sized
and laid out, what background images or colors are used, as well as a variety of other
effects.
CSS is easy to learn and understand but it provides a powerful control over the
presentation of an HTML document. Most commonly, CSS is combined with the markup
languages HTML or XHTML.
Advantages of CSS
CSS saves time - You can write CSS once and then reuse the same sheet in
multiple HTML pages. You can define a style for each HTML element and apply it
to as many web pages as you want.
Pages load faster - If you are using CSS, you do not need to write HTML tag
attributes every time. Just write one CSS rule of a tag and apply it to all the
occurrences of that tag. So, less code means faster download times.
Easy maintenance - To make a global change, simply change the style, and all
the elements in all the web pages will be updated automatically.
Superior styles to HTML - CSS has a much wider array of attributes than HTML,
so you can give a far better look to your HTML page in comparison to HTML
attributes.
Global web standards – Now HTML attributes are being deprecated and it is
being recommended to use CSS. So it’s a good idea to start using CSS in all the
HTML pages to make them compatible with future browsers.
1
CSS
These ratified specifications are called recommendations because the W3C has no control
over the actual implementation of the language. Independent companies and
organizations create that software.
NOTE: The World Wide Web Consortium or W3C is a group that makes
recommendations about how the Internet works and how it should evolve.
CSS Versions
Cascading Style Sheets level 1 (CSS1) came out of W3C as a recommendation in
December 1996. This version describes the CSS language as well as a simple visual
formatting model for all the HTML tags.
CSS2 became a W3C recommendation in May 1998 and builds on CSS1. This version
adds support for media-specific style sheets e.g. printers and aural devices,
downloadable fonts, element positioning and tables.
2
CSS
2. CSS ─ Syntax
A CSS comprises of style rules that are interpreted by the browser and then applied to
the corresponding elements in your document. A style rule is made of three parts:
Selector: A selector is an HTML tag at which a style will be applied. This could be
any tag like <h1> or <table> etc.
Property: A property is a type of attribute of HTML tag. Put simply, all the HTML
attributes are converted into CSS properties. They could be color, border, etc.
Value: Values are assigned to properties. For example, color property can have
the value either red or #F1F1F1 etc.
Here table is a selector and border is a property and the given value 1px solid #C00 is
the value of that property.
You can define selectors in various simple ways based on your comfort. Let me put these
selectors one by one.
h1 {
color: #36CFFF;
}
* {
color: #000000;
}
This rule renders the content of every element in our document in black.
3
CSS
ul em {
color: #000000;
}
.black {
color: #000000;
}
This rule renders the content in black for every element with class attribute set
to black in our document. You can make it a bit more particular. For example:
h1.black {
color: #000000;
}
This rule renders the content in black for only <h1> elements with class attribute set to
black.
You can apply more than one class selectors to a given element. Consider the following
example:
The ID Selectors
You can define style rules based on the id attribute of the elements. All the elements
having that id will be formatted according to the defined rule.
#black {
color: #000000;
}
4
CSS
This rule renders the content in black for every element with id attribute set to black in
our document. You can make it a bit more particular. For example:
h1#black {
color: #000000;
}
This rule renders the content in black for only <h1> elements with id attribute set
to black.
The true power of id selectors is when they are used as the foundation for descendant
selectors. For example:
#black h2 {
color: #000000;
}
In this example, all level 2 headings will be displayed in black color when those headings
will lie within tags having id attribute set to black.
body > p {
color: #000000;
}
This rule will render all the paragraphs in black if they are a direct child of the <body>
element. Other paragraphs put inside other elements like <div> or <td> would not have
any effect of this rule.
input[type="text"]{
color: #000000;
}
The advantage to this method is that the <input type="submit" /> element is
unaffected, and the color applied only to the desired text fields.
5
CSS
p[lang="fr"] - Selects all paragraph elements whose lang attribute has a value
of exactly "fr".
h1 {
color: #36C;
font-weight: normal;
letter-spacing: .4em;
margin-bottom: 1em;
text-transform: lowercase;
}
Here all the property and value pairs are separated by a semicolon (;). You can keep
them in a single line or multiple lines. For better readability, we keep them in separate
lines.
For a while, don't bother about the properties mentioned in the above block. These
properties will be explained in the coming chapters and you can find the complete detail
about properties in CSS References.
Grouping Selectors
You can apply a style to many selectors if you like. Just separate the selectors with a
comma, as given in the following example:
h1, h2, h3 {
color: #36C;
font-weight: normal;
letter-spacing: .4em;
margin-bottom: 1em;
text-transform: lowercase;
}
6
CSS
This define style rule will be applicable to h1, h2 and h3 element as well. The order of
the list is irrelevant. All the elements in the selector will have the corresponding
declarations applied to them.
You can combine the various class selectors together as shown below:
7
CSS
3. CSS ─ Inclusion
There are four ways to associate styles with your HTML document. Most commonly used
methods are inline CSS and External CSS.
<head>
<style type="text/css" media="...">
Style Rules
............
</style>
</head>
Attributes
Attributes associated with <style> elements are:
8
CSS
Example
Following is an example of embed CSS based on the above syntax:
<head>
<style type="text/css" media="all">
h1{
color: #36C;
}
</style>
</head>
Attributes
Attribute Value Description
Example
Following is the example of inline CSS based on the above syntax:
An external style sheet is a separate text file with .css extension. You define all the Style
rules within this text file and then you can include this file in any HTML document using
<link> element.
9
CSS
<head>
<link type="text/css" href="..." media="..." />
</head>
Attributes
Attributes associated with <style> elements are:
href URL Specifies the style sheet file having Style rules. This attribute
is a required.
media screen Specifies the device the document will be displayed on.
tty Default value is all. This is an optional attribute.
tv
projection
handheld
print
braille
aural
all
Example
Consider a simple style sheet file with a name mystyle.css having the following rules:
h1, h2, h3 {
color: #36C;
font-weight: normal;
letter-spacing: .4em;
margin-bottom: 1em;
text-transform: lowercase;
}
10
CSS
Now you can include this file mystyle.css in any HTML document as follows:
<head>
<link type="text/css" href="mystyle.css" media="all" />
</head>
<head>
<@import "URL";
</head>
Here URL is the URL of the style sheet file having style rules. You can use another syntax
as well:
<head>
<@import url("URL");
</head>
Example
Following is the example showing you how to import a style sheet file into an HTML
document:
<head>
@import "mystyle.css";
</head>
Any inline style sheet takes the highest priority. So, it will override any rule
defined in <style>...</style> tags or the rules defined in any external style sheet
file.
Any rule defined in <style>...</style> tags will override the rules defined in any
external style sheet file.
Any rule defined in the external style sheet file takes the lowest priority, and the
rules defined in this file will be applied only when the above two rules are not
applicable.
11
CSS
<style type="text/css">
<!--
body, td {
color: blue;
}
-->
</style>
CSS Comments
Many times, you may need to put additional comments in your style sheet blocks. So, it
is very easy to comment any part in the style sheet. You can simply put your comments
inside /*.....this is a comment in style sheet.....*/.
You can use /* ....*/ to comment multi-line blocks in similar way you do in C and C++
programming languages.
Example
12
CSS
4. CSS ─ Measurement Units
Before we start the actual exercise, we would like to give a brief idea about the CSS
Measurement Units. CSS supports a number of measurements including absolute units
such as inches, centimeters, points, and so on, as well as relative measures such as
percentages and em units. You need these values while specifying various
measurements in your Style rules e.g. border="1px solid red".
We have listed out all the CSS Measurement Units along with proper Examples:
13
CSS
5. CSS ─ Colors
CSS uses color values to specify a color. Typically, these are used to set a color either
for the foreground of an element (i.e., its text) or for the background of the element.
They can also be used to affect the color of borders and other decorative effects.
You can specify your color values in various formats. Following table lists all the possible
formats:
A hexadecimal value can be taken from any graphics software like Adobe Photoshop,
Jasc Paintshop Pro, or even using Advanced Paint Brush.
Each hexadecimal code will be preceded by a pound or hash sign ‘#’. Following are the
examples to use Hexadecimal notation.
#000000
#FF0000
14
CSS
#00FF00
#0000FF
#FFFF00
#00FFFF
#FF00FF
#C0C0C0
#FFFFFF
A hexadecimal value can be taken from any graphics software like Adobe Photoshop,
Jasc Paintshop Pro or even using Advanced Paint Brush.
Each hexadecimal code will be preceded by a pound or hash sign #. Following are the
examples to use the Hexadecimal notation.
15
CSS
NOTE: All the browsers does not support rgb() property of color, so it is recommended
not to use it.
rgb(0,0,0)
rgb(255,0,0)
rgb(0,255,0)
rgb(0,0,255)
rgb(255,255,0)
rgb(0,255,255)
rgb(255,0,255)
rgb(192,192,192)
rgb(255,255,255)
16
CSS
are safe to use because they ensure that all computers would display the colors correctly
when running a 256 color palette:
17
CSS
18
CSS
19
CSS
6. CSS ─ Background
This chapter teaches you how to set backgrounds of various HTML elements. You can set
the following background properties of an element:
<p style="background-color:yellow;">
This text has a yellow background color.
</p>
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);">
<tr><td>
This table has background image set.
</td></tr>
</table>
20
CSS
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-repeat: repeat;">
<tr><td>
This table has background image which repeats multiple times.
</td></tr>
</table>
The following example which demonstrates how to repeat the background image
vertically.
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-repeat: repeat-y;">
<tr><td>
This table has background image set which will repeat vertically.
</td></tr>
</table>
The following example demonstrates how to repeat the background image horizontally.
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-repeat: repeat-x;">
<tr><td>
This table has background image set which will repeat horizontally.
</td></tr>
</table>
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-position:100px;">
<tr><td>
Background image positioned 100 pixels away from the left.
21
CSS
</td></tr>
</table>
The following example demonstrates how to set the background image position 100
pixels away from the left side and 200 pixels down from the top.
<table style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-position:100px 200px;">
<tr><td>
This table has background image positioned 100
pixels away from the left and 200 pixels from the top.
</td></tr>
</table>
The following example demonstrates how to set the fixed background image.
<p style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-attachment:fixed;">
This parapgraph has fixed background image.
</p>
The following example demonstrates how to set the scrolling background image.
<p style="background-image:url(/https/www.scribd.com/images/pattern1.gif);
background-attachment:scroll;">
This parapgraph has scrolling background image.
</p>
Shorthand Property
You can use the background property to set all the background properties at once. For
example:
22
CSS
7. CSS ─ Fonts
This chapter teaches you how to set fonts of a content, available in an HTML element.
You can set the following font properties of an element:
The font-weight property is used to increase or decrease how bold or light a font
appears.
<p style="font-family:georgia,garamond,serif;">
This text is rendered in either georgia, garamond, or the default
serif font depending on which font you have at your system.
</p>
<p style="font-style:italic;">
This text will be rendered in italic style
</p>
23
CSS
<p style="font-variant:small-caps;">
This text will be rendered as small caps
</p>
<p style="font-weight:bold;">
This font is bold.
</p>
<p style="font-weight:bolder;">
This font is bolder.
</p>
<p style="font-weight:900;">
This font is 900 weight.
</p>
<p style="font-size:20px;">
This font size is 20 pixels
</p>
24
CSS
<p style="font-size:small;">
This font size is small
</p>
<p style="font-size:large;">
This font size is large
</p>
<p style="font-size-adjust:0.61;">
This text is using a font-size-adjust value.
</p>
<p style="font-stretch:ultra-expanded;">
If this doesn't appear to work, it is likely that
your computer doesn't have a condensed or expanded
25
CSS
If this doesn't appear to work, it is likely that your computer doesn't have a condensed or
expanded version of the font being used.
Shorthand Property
You can use the font property to set all the font properties at once. For example:
26
CSS
8. CSS ─ Text
This chapter teaches you how to manipulate text using CSS properties. You can set the
following text properties of an element:
The letter-spacing property is used to add or subtract space between the letters
that make up a word.
The word-spacing property is used to add or subtract space between the words
of a sentence.
The white-space property is used to control the flow and formatting of text.
The text-shadow property is used to set the text shadow around a text.
<p style="color:red;">
This text will be written in red.
</p>
27
CSS
<p style="direction:rtl;">
This text will be renedered from right to left
</p>
<p style="letter-spacing:5px;">
This text is having space between letters.
</p>
<p style="word-spacing:5px;">
This text is having space between words.
</p>
28
CSS
<p style="text-indent:1cm;">
This text will have first line indented by 1cm
and this line will remain at its actual position
this is done by CSS text-indent property.
</p>
<p style="text-align:right;">
This will be right aligned.
</p>
<p style="text-align:center;">
This will be center aligned.
</p>
<p style="text-align:left;">
This will be left aligned.
</p>
29
CSS
<p style="text-decoration:underline;">
This will be underlined
</p>
<p style="text-decoration:line-through;">
This will be striked through.
</p>
<p style="text-decoration:overline;">
This will have an over line.
</p>
<p style="text-decoration:blink;">
This text will have blinking effect
</p>
<p style="text-transform:capitalize;">
This will be capitalized
</p>
<p style="text-transform:uppercase;">
This will be in uppercase
</p>
<p style="text-transform:lowercase;">
This will be in lowercase
</p>
30
CSS
If your browser supports the CSS text-shadow property, this text will have a blue shadow.
31
CSS
9. CSS ─ Images
Images play an important role in any webpage. Though it is not recommended to include
a lot of images, but it is still important to use good images wherever required.
CSS plays a good role to control image display. You can set the following image
properties using CSS.
Here is an example:
Here is an example:
Here is an example:
33
CSS
In Mozilla (-moz-opacity:x), x can be a value from 0.0 - 1.0. A lower value makes the
element more transparent (The same things goes for the CSS3-valid syntax opacity:x).
34
CSS
Here is an example:
35
CSS
10. CSS ─ Links
This chapter teaches you how to set different properties of a hyper link using CSS. You
can set the following properties of a hyperlink:
We will revisit the same properties when we will discuss Pseudo-Classes of CSS.
The :hover signifies an element that currently has the user's mouse pointer
hovering over it.
Usually, all these properties are kept in the header part of the HTML document.
Remember a:hover MUST come after a:link and a:visited in the CSS definition in order
to be effective. Also, a:active MUST come after a:hover in the CSS definition as follows:
<style type="text/css">
a:link {color: #000000}
Now, we will see how to use these properties to give different effects to hyperlinks.
<style type="text/css">
a:link {color:#000000}
</style>
<a href="/html/index.htm">Black Link</a>
Black Link
36
CSS
<style type="text/css">
a:visited {color: #006600}
</style>
<a href="/html/index.htm">Click this link</a>
It will produce the following link. Once you click this link, it will change its color to green.
<style type="text/css">
a:hover {color: #FFCC00}
</style>
<a href="/html/index.htm">Bring Mouse Here</a>
It will produce the following link. Now, you bring your mouse over this link and you will
see that it changes its color to yellow.
<style type="text/css">
a:active {color: #FF00CC}
</style>
<a href="/html/index.htm">Click This Link</a>
It will produce the following link. It will change its color to pink when the user clicks it.
37
CSS
11. CSS ─ Tables
This chapter teaches you how to set different properties of an HTML table using CSS.
You can set the following properties of a table:
The border-spacing specifies the width that should appear between table cells.
The empty-cells specifies whether the border should be shown if a cell is empty.
The table-layout allows browsers to speed up the layout of a table by using the
first width properties it comes across for the rest of a column rather than having
to load the whole table before rendering it.
<style type="text/css">
table.one {border-collapse:collapse;}
table.two {border-collapse:separate;}
td.a {
border-style:dotted;
border-width:3px;
border-color:#000000;
padding: 10px;
}
td.b {border-style:solid;
border-width:3px;
border-color:#333333;
padding:10px;
}
</style>
<table class="one">
38
CSS
If you provide one value, it applies to both vertical and horizontal borders. Or you can
specify two values, in which case, the first refers to the horizontal spacing and the
second to the vertical spacing:
<style type="text/css">
/* If you provide one value */
table.example {border-spacing:10px;}
/* This is how you can provide two values */
39
CSS
Now let's modify the previous example and see the effect:
<style type="text/css">
table.one {
border-collapse:separate;
width:400px;
border-spacing:10px;
}
table.two {
border-collapse:separate;
width:400px;
border-spacing:10px 50px;
}
</style>
<table class="one" border="1">
<caption>Separate Border Example with border-spacing</caption>
<tr><td> Cell A Collapse Example</td></tr>
<tr><td> Cell B Collapse Example</td></tr>
</table>
<br />
<table class="two" border="1">
<caption>Separate Border Example with border-spacing</caption>
<tr><td> Cell A Separate Example</td></tr>
<tr><td> Cell B Separate Example</td></tr>
</table>
40
CSS
This property can have one of the four values top, bottom, left, or right. The following
example uses each value.
<style type="text/css">
caption.top {caption-side:top}
caption.bottom {caption-side:bottom}
caption.left {caption-side:left}
caption.right {caption-side:right}
</style>
42
CSS
This property can have one of the three values - show, hide, or inherit.
Here is the empty-cells property used to hide borders of empty cells in the <table>
element.
<style type="text/css">
table.empty{
width:350px;
border-collapse:separate;
empty-cells:hide;
}
td.empty{
padding:5px;
border-style:solid;
border-width:1px;
border-color:#999999;
}
</style>
<table class="empty">
<tr>
<th></th>
<th>Title one</th>
<th>Title two</th>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty">value</td>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty"></td>
</tr>
</table>
43
CSS
This property can have one of the three values: fixed, auto, or inherit.
NOTE: This property is not supported by many browsers, so do not rely on this property.
<style type="text/css">
table.auto
{
table-layout: auto
}
table.fixed
{
table-layout: fixed
}
</style>
<table class="auto" border="1" width="100%">
<tr>
<td width="20%">1000000000000000000000000000</td>
<td width="40%">10000000</td>
<td width="40%">100</td>
</tr>
</table>
<br />
<table class="fixed" border="1" width="100%">
<tr>
<td width="20%">1000000000000000000000000000</td>
<td width="40%">10000000</td>
44
CSS
<td width="40%">100</td>
</tr>
</table>
45
CSS
12. CSS ─ Borders
The border properties allow you to specify how the border of the box representing an
element should look. There are three properties of a border you can change:
The border-style specifies whether a border should be solid, dashed line, double
line, or one of the other possible values.
<style type="text/css">
p.example1{
border:1px solid;
border-bottom-color:#009900; /* Green */
border-top-color:#FF0000; /* Red */
border-left-color:#330000; /* Black */
border-right-color:#0000CC; /* Blue */
}
p.example2{
border:1px solid;
border-color:#009900; /* Green */
}
</style>
<p class="example1">
This example is showing all borders in different colors.
46
CSS
</p>
<p class="example2">
This example is showing all borders in green color only.
</p>
inset: Border makes the box look like it is embedded in the page.
outset: Border makes the box look like it is coming out of the canvas.
You can individually change the style of the bottom, left, top, and right borders of an
element using the following properties:
48
CSS
You can individually change the width of the bottom, top, left, and right borders of an
element using the following properties:
The following example shows how to use all the three properties into a single property.
This is the most frequently used property to set border around any element.
50
CSS
51
CSS
13. CSS ─ Margins
The margin property defines the space around an HTML element. It is possible to use
negative values to overlap content.
The values of the margin property are not inherited by the child elements. Remember
that the adjacent vertical margins (top and bottom margins) will collapse into each other
so that the distance between the blocks is not the sum of the margins, but only the
greater of the two margins or the same size as one margin if both are equal.
The margin specifies a shorthand property for setting the margin properties in
one declaration.
<style type="text/css">
p {margin: 15px}
all four margins will be 15px
</style>
Here is an example:
Here is an example:
53
CSS
Here is an example:
Here is an example:
54
CSS
Here is an example:
55
CSS
14. CSS ─ Lists
Lists are very helpful in conveying a set of either numbered or bulleted points. This
chapter teaches you how to control list type, position, style, etc., using CSS.
We have the following five CSS properties, which can be used to control lists:
The list-style-type allows you to control the shape or appearance of the marker.
The list-style-position specifies whether a long point that wraps to a second line
should align with the first line or start underneath the start of the marker.
The list-style-image specifies an image for the marker rather than a bullet point
or number.
The marker-offset specifies the distance between a marker and the text in the
list.
Here are the values, which can be used for an unordered list:
Value Description
None NA
56
CSS
Here are the values, which can be used for an ordered list:
decimal-leading-
0 before the number 01, 02, 03, 04, 05
zero
57
CSS
Here is an example:
<ul style="list-style-type:circle;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<ul style="list-style-type:square;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<ol style="list-style-type:decimal;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
<ol style="list-style-type:lower-alpha;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
<ol style="list-style-type:lower-roman;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
58
CSS
Value Description
none NA
inside If the text goes onto a second line, the text will wrap underneath the marker.
It will also appear indented to where the text would have started if the list
had a value of outside.
outside If the text goes onto a second line, the text will be aligned with the start of
the first line (to the right of the bullet).
Here is an example:
<ul style="list-style-type:square;list-style-position:inside;">
59
CSS
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<ol style="list-style-type:decimal;list-stlye-position:outside;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
<ol style="list-style-type:lower-alpha;list-style-position:inside;">
<li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
60
CSS
Here is an example:
<ul>
<li style="list-style-image: url(/https/www.scribd.com/images/bullet.gif);">Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<ol>
<li style="list-style-image: url(/https/www.scribd.com/images/bullet.gif);">Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
Here is an example:
61
CSS
Here is an example:
62
CSS
15. CSS ─ Paddings
The padding property allows you to specify how much space should appear between the
content of an element and its border:
The value of this attribute should be either a length, a percentage, or the word inherit. If
the value is inherit, it will have the same padding as its parent element. If a percentage
is used, the percentage is of the containing box.
The following CSS properties can be used to control lists. You can also set different
values for the padding on each side of the box using the following properties:
Here is an example:
63
CSS
Here is an example:
Here is an example:
64
CSS
Here is an example:
Here is an example:
</p>
65
CSS
66
CSS
16. CSS ─ Cursors
The cursor property of CSS allows you to specify the type of cursor that should be
displayed to the user.
One good usage of this property is in using images for submit buttons on forms. By
default, when a cursor hovers over a link, the cursor changes from a pointer to a hand.
However, it does not change form for a submit button on a form. Therefore, whenever
someone hovers over an image that is a submit button, it provides a visual clue that the
image is clickable.
The following table shows the possible values for the cursor property:
Value Description
auto Shape of the cursor depends on the context area it is over. For example,
an ‘I’ over text, a ‘hand’ over a link, and so on.
default An arrow.
e-resize The cursor indicates that an edge of a box is to be moved right (east).
ne-resize The cursor indicates that an edge of a box is to be moved up and right
(north/east).
nw- The cursor indicates that an edge of a box is to be moved up and left
resize (north/west).
se-resize The cursor indicates that an edge of a box is to be moved down and right
(south/east).
sw- The cursor indicates that an edge of a box is to be moved down and left
resize (south/west).
67
CSS
s-resize The cursor indicates that an edge of a box is to be moved down (south).
w-resize The cursor indicates that an edge of a box is to be moved left (west).
help A question mark or balloon, ideal for use over help buttons.
NOTE: You should try to use only these values to add helpful information for users, and
in places, they would expect to see that cursor. For example, using the crosshair when
someone hovers over a link can confuse the visitors.
Here is an example:
<p>Move the mouse over the words to see the cursor change:</p>
<div style="cursor:auto">Auto</div>
<div style="cursor:crosshair">Crosshair</div>
<div style="cursor:default">Default</div>
<div style="cursor:pointer">Pointer</div>
<div style="cursor:move">Move</div>
<div style="cursor:e-resize">e-resize</div>
<div style="cursor:ne-resize">ne-resize</div>
<div style="cursor:nw-resize">nw-resize</div>
<div style="cursor:n-resize">n-resize</div>
<div style="cursor:se-resize">se-resize</div>
<div style="cursor:sw-resize">sw-resize</div>
<div style="cursor:s-resize">s-resize</div>
<div style="cursor:w-resize">w-resize</div>
<div style="cursor:text">text</div>
<div style="cursor:wait">wait</div>
<div style="cursor:help">help</div>
68
CSS
69
CSS
17. CSS ─ Outlines
Outlines are very similar to borders, but there are few major differences as well:
Outline is always the same on all sides; you cannot specify different values for
different sides of an element.
The outline-style property is used to set the line style for the outline.
The outline property is used to set all the above three properties in a single
statement.
Here is an example:
70
CSS
inset: Outline makes the box look like it is embedded in the page.
outset: Outline makes the box look like it is coming out of the canvas.
Here is an example:
71
CSS
Here is an example:
72
CSS
Here is an example:
73
CSS
18. CSS ─ Dimension
You have seen the border that surrounds every box i.e. element, the padding that can
appear inside each box, and the margin that can go around them. In this chapter, we
will learn how to change the dimensions of boxes.
We have the following properties that allow you to control the dimensions of a box.
The max-height property is used to set a maximum height that a box can be .
The min-height property is used to set the minimum height that a box can be .
The max-width property is used to set the maximum width that a box can be .
The min-width property is used to set the minimum width that a box can be .
Here is an example:
74
CSS
Here is an example:
Here is an example:
75
CSS
Here is an example:
76
CSS
Here is an example:
77
CSS
Here is an example:
78
CSS
19. CSS ─ Scrollbars
There may be a case when an element's content might be larger than the amount of
space allocated to it. For example, the given width and height properties do not allow
enough room to accommodate the content of the element.
CSS provides a property called overflow, which tells the browser what to do if the box's
contents is larger than the box itself. This property can take one of the following values:
Value Description
visible Allows the content to overflow the borders of its containing element.
hidden The content of the nested element is simply cut off at the border of the
containing element and no scrollbars is visible.
scroll The size of the containing element does not change, but the scrollbars are
added to allow the user to scroll to see the content.
auto The purpose is the same as scroll, but the scrollbar will be shown only if the
content does overflow.
Here is an example:
<style type="text/css">
.scroll{
display:block;
border: 1px solid red;
padding:5px;
margin-top:5px;
width:300px;
height:50px;
overflow:scroll;
}
.auto{
display:block;
border: 1px solid red;
padding:5px;
margin-top:5px;
79
CSS
width:300px;
height:50px;
overflow:auto;
}
</style>
<p>Example of scroll value:</p>
<div class="scroll">
I am going to keep lot of content here just to show
you how scrollbars works if there is an overflow in
an element box. This provides your horizontal as well
as vertical scrollbars.
</div>
<br />
<p>Example of auto value:</p>
<div class="auto">
I am going to keep lot of content here just to show
you how scrollbars works if there is an overflow in
an element box. This provides your horizontal as well
as vertical scrollbars.
</div>
80
CSS
20. CSS ─ Visibility
A property called visibility allows you to hide an element from view. You can use this
property along with JavaScript to create very complex menu and very complex webpage
layouts.
You may choose to use the visibility property to hide error messages that are only
displayed if the user needs to see them, or to hide answers to a quiz until the user
selects an option.
NOTE: Remember that the source code will still contain whatever is in the invisible
paragraph, so you should not use this to hide sensitive information such as credit card
details or passwords.
The visibility property can take the values listed in the table that follows:
Value Description
visible The box and its contents are shown to the user.
hidden The box and its content are made invisible, although they still affect the
layout of the page.
collapse This is for use only with dynamic table columns and row effects.
Here is an example:
<p>
This paragraph should be visible in normal way.
</p>
<p style="visibility:hidden;">
This paragraph should not be visible.
</p>
81
CSS
21. CSS ─ Positioning
CSS helps you to position your HTML element. You can put any HTML element at
whatever location you like. You can specify whether you want the element positioned
relative to its natural position in the page or absolute based on its parent element.
Now, we will see all the CSS positioning related properties with examples.
Relative Positioning
Relative positioning changes the position of the HTML element relative to where it
normally appears. So "left:20" adds 20 pixels to the element's LEFT position.
You can use two values top and left along with the position property to move an HTML
element anywhere in an HTML document.
NOTE: You can use the bottom or right values as well in the same way as top and left.
Here is an example:
<div style="position:relative;left:80px;top:2px;
background-color:yellow;">
This div has relative positioning.
</div>
Absolute Positioning
An element with position: absolute is positioned at the specified coordinates relative to
your screen top-left corner.
You can use two values top and left along with the position property to move an HTML
element anywhere in HTML document.
NOTE: You can use bottom or right values as well in the same way as top and left.
Here is an example:
<div style="position:absolute;left:80px;top:20px;
background-color:yellow;">
This div has absolute positioning.
</div>
Fixed Positioning
Fixed positioning allows you to fix the position of an element to a particular spot on the
page, regardless of scrolling. Specified coordinates will be relative to the browser
window.
You can use two values top and left along with the position property to move an HTML
element anywhere in the HTML document.
NOTE: You can use bottom or right values as well in the same way as top and left.
Here is an example:
<div style="position:fixed;left:80px;top:20px;
background-color:yellow;">
This div has fixed positioning.
</div>
83
CSS
22. CSS ─ Layers
CSS gives you an opportunity to create layers of various divisions. The CSS layers refer
to applying the z-index property to elements that overlap with each other.
The z-index property is used along with the position property to create an effect of
layers. You can specify which element should come on top and which element should
come at bottom.
A z-index property can help you to create more complex webpage layouts. The following
example shows how to create layers in CSS.
<div style="background-color:red;
width:300px;
height:100px;
position:relative;
top:10px;
left:80px;
z-index:2">
</div>
<div style="background-color:yellow;
width:300px;
height:100px;
position:relative;
top:-60px;
left:35px;
z-index:1;">
</div>
<div style="background-color:green;
width:300px;
height:100px;
position:relative;
top:-220px;
left:120px;
z-index:3;">
</div>
84
CSS
85
CSS
23. CSS ─ Pseudo Classes
CSS pseudo-classes are used to add special effects to some selectors. You do not need
to use JavaScript or any other script to use those effects. A simple syntax of pseudo-
classes is as follows:
Value Description
:hover Use this class to add special style to an element when you mouse over it.
:focus Use this class to add special style to an element while the element has
focus.
:first- Use this class to add special style to an element that is the first child of
child some other element.
a:hover MUST come after a:link and a:visited in the CSS definition in order to be
effective.
a:active MUST come after a:hover in the CSS definition in order to be effective.
Pseudo-classes are different from CSS classes, but they can be combined.
86
CSS
<style type="text/css">
a:link {color:#000000}
</style>
<a href="/html/index.htm">Black Link</a>
<style type="text/css">
a:visited {color: #006600}
</style>
<a href="/html/index.htm">Click this link</a>
It will produce the following link. Once you click this link, it will change its color to green.
<style type="text/css">
a:hover {color: #FFCC00}
</style>
<a href="/html/index.htm">Bring Mouse Here</a>
It will produce the following link. Now you bring your mouse over this link and you will
see that it changes its color to yellow.
87
CSS
<style type="text/css">
a:active {color: #FF00CC}
</style>
<a href="/html/index.htm">Click This Link</a>
It will produce the following link. When a user clicks it, the color changes to pink.
<style type="text/css">
a:focus {color: #0000FF}
</style>
<a href="/html/index.htm">Click this Link</a>
It will produce the following link. When this link gets focused, its color changes to
orange. The color changes back when it loses focus.
For example, to indent the first paragraph of all <div> elements, you could use this
definition:
<style type="text/css">
div > p:first-child
{
text-indent: 25px;
}
</style>
88
CSS
<div>
<p>
First paragraph in div. This paragraph will be indented
</p>
<p>
Second paragraph in div. This paragraph will not be indented
</p>
</div>
<p>But it will not match the paragraph in this HTML:</p>
<div>
<h3>Heading</h3>
<p>
The first paragraph inside the div.
This paragraph will not be effected.
</p>
</div>
This class is useful in documents that must appeal to multiple languages that have
different conventions for certain language constructs. For example, the French language
typically uses angle brackets (< and >) for quoting purposes, while the English language
uses quote marks (' and ').
In a document that needs to address this difference, you can use the :lang pseudo-class
to change the quote marks appropriately. The following code changes the <blockquote>
tag appropriately for the language being used:
<style type="text/css">
89
CSS
The :lang selectors will apply to all the elements in a document. However, not all
elements make use of the quotes property, so the effect will be transparent for most
elements.
90
CSS
24. CSS ─ Pseudo Elements
CSS pseudo-elements are used to add special effects to some selectors. You do not need
to use JavaScript or any other script to use those effects. A simple syntax of pseudo-
element is as follows:
Value Description
:first-line Use this element to add special styles to the first line of the text in a
selector.
:first-letter Use this element to add special style to the first letter of the text in a
selector.
<style type="text/css">
p:first-line { text-decoration: underline; }
p.noline:first-line { text-decoration: none; }
</style>
<p class="noline"> This line would not have any underline
because this belongs to nline class.</p>
<style type="text/css">
p:first-letter { font-size: 5em; text-color:red; }
p.normal:first-letter { font-size: 10px; }
</style>
<p class="normal"> First character of this paragraph will
be normal and will have font size 10 px;</p>
<style type="text/css">
p:before
{
content: url(/https/www.scribd.com/images/bullet.gif)
}
</style>
<p> This line will be preceded by a bullet.</p>
<p> This line will be preceded by a bullet.</p>
<p> This line will be preceded by a bullet.</p>
<style type="text/css">
p:after
{
content: url(/https/www.scribd.com/images/bullet.gif)
}
</style>
<p> This line will be succeeded by a bullet.</p>
<p> This line will be succeeded by a bullet.</p>
<p> This line will be succeeded by a bullet.</p>
93
CSS
94
CSS
25. CSS ─ @ Rules
The @import: rule imports another style sheet into the current style sheet.
The @charset rule indicates the character set the style sheet uses.
The @font-face rule is used to exhaustively describe a font face for use in a
document.
The !important rule indicates that a user-defined rule should take precedence
over the author's style sheets.
NOTE: There are other @ rules which we will cover in subsequent chapters.
<style tyle="text/css">
<!--
@import "mystyle.css";
or
@import url("mystyle.css");
.......other CSS rules .....
-->
</style>
The significance of the @import rule is that it allows you to develop your style sheets
with a modular approach. You can create various style sheets and then include them
wherever you need them.
95
CSS
The @charset rule must be written right at the beginning of the style sheet without even
a space before it. The value is held in quotes and should be one of the standard
character-sets. For example:
<style tyle="text/css">
<!--
@charset "iso-8859-1"
.......other CSS rules .....
-->
</style>
In general, @font-face is extremely complicated, and its use is not recommended for any
except those who are expert in font metrics.
Here is an example:
<style tyle="text/css">
<!--
@font-face {
font-family: "Scarborough Light";
src: url("http://www.font.site/s/scarbo-lt");
}
@font-face {
font-family: Santiago;
src: local ("Santiago"),
url("http://www.font.site/s/santiago.tt")
format("truetype");
unicode-range: U+??,U+100-220;
font-size: all;
font-family: sans-serif;
}
-->
</style>
96
CSS
The !important rule provides a way to make your CSS cascade. It also includes the rules
that are to be applied always. A rule having a !important property will always be applied,
no matter where that rule appears in the CSS document.
For example, in the following style sheet, the paragraph text will be black, even though
the first style property applied is red:
<style tyle="text/css">
<!--
p { color: #ff0000; }
p { color: #000000; }
-->
</style>
So, if you wanted to make sure that a property always applied, you would add the
!important property to the tag. So, to make the paragraph text always red, you should
write it as follows:
<style tyle="text/css">
<!--
p { color: #ff0000 !important; }
p { color: #000000; }
-->
</style>
Here you have made p { color: #ff0000 !important; } mandatory, now this rule will
always apply even you have defined another rule p { color: #000000; }.
97
CSS
26. CSS ─ Filters
You can use CSS filters to add special effects to text, images and other aspects of a
webpage without using images or other graphics. Filters only work on Internet
Explorer 4.0. If you are developing your site for multiple browsers, then it may not be a
good idea to use CSS filters because there is a possibility that it would not give any
advantage.
In this chapter, we will see the details of each CSS filter. These filters may not work in
your browser.
Alpha Channel
The Alpha Channel filter alters the opacity of the object, which makes it blend into the
background. The following parameters can be used in this filter:
Parameter Description
0 = uniform
1 = linear
2 = radial
3 = rectangular
98
CSS
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: blue; Filter: Alpha(Opacity=100, FinishOpacity=0, Style=1, StartX=0,
StartY=0, FinishX=580, FinishY=0)">CSS Tutorials</div>
Motion Blur
Motion Blur is used to create blurred pictures or text with the direction and strength. The
following parameters can be used in this filter:
Parameter Description
add True or false. If true, the image is added to the blurred image; and if
false, the image is not added to the blurred image.
0 = Top
99
CSS
45 = Top right
90 = Right
180 = Bottom
270 = Left
strength The number of pixels the blur will extend. The default is 5 pixels.
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: blue; Filter: Blur(Add = 1, Direction = 225, Strength = 10)">CSS
Tutorials</div>
100
CSS
Chroma Filter
Chroma Filter is used to make any particular color transparent and usually it is used with
images. You can use it with scrollbars also. The following parameter can be used in this
filter:
Parameter Description
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 580; height: 50; font-size: 30pt; font-family: Arial Black;
color: #3300FF; Filter: Chroma(Color = #3300FF) ">CSS Tutorials</div>
101
CSS
Parameter Description
offX Number of pixels the drop shadow is offset from the visual object, along
the x-axis. Positive integers move the drop shadow to the right, negative
integers move the drop shadow to the left.
offY Number of pixels the drop shadow is offset from the visual object, along
the y-axis. Positive integers move the drop shadow down, negative
integers move the drop shadow up.
positive If true, all opaque pixels of the object have a dropshadow. If false, all
transparent pixels have a dropshadow. The default is true.
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: DropShadow(Color=#000000, OffX=2, OffY=2, Positive=1)">CSS
Tutorials</div>
102
CSS
Flip Effect
Flip effect is used to create a mirror image of the object. The following parameters can
be used in this filter:
Parameter Description
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 300; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: FlipV">CSS Tutorials</div>
103
CSS
Glow Effect
Glow effect is used to create a glow around the object. If it is a transparent image, then
glow is created around the opaque pixels of it. The following parameters can be used in
this filter:
Parameter Description
Example
104
CSS
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: Glow(Color=#00FF00, Strength=20)">CSS Tutorials</div>
Grayscale Effect
Grayscale effect is used to convert the colors of the object to 256 shades of gray. The
following parameter is used in this filter:
Parameter Description
Example
105
CSS
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: Gray">CSS Tutorials</div>
Invert Effect
Invert effect is used to map the colors of the object to their opposite values in the color
spectrum, i.e., to create a negative image. The following parameter is used in this filter:
Parameter Description
Invert Maps the colors of the object to their opposite value in the color
spectrum.
Example
106
CSS
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: invert">CSS Tutorials</div>
Mask Effect
Mask effect is used to turn transparent pixels to a specified color and makes opaque
pixels transparent. The following parameter is used in this filter:
Parameter Description
107
CSS
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: Mask(Color=#00FF00)">CSS Tutorials</div>
Shadow Filter
Shadow filter is used to create an attenuated shadow in the direction and color specified.
This is a filter that lies in between Dropshadow and Glow. The following parameters can
be used in this filter:
Parameter Description
0 = Top
108
CSS
45 = Top right
90 = Right
180 = Bottom
270 = Left
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: Shadow(Color=#0000FF, Direction=225)">CSS Tutorials</div>
109
CSS
Wave Effect
Wave effect is used to give the object a sine wave distortion to make it look wavy. The
following parameters can be used in this filter:
Parameter Description
Add A value of 1 adds the original image to the waved image, 0 does not.
phase At what degree the sine wave should start (from 0 to 100).
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; Filter: Wave(Add=0, Freq=1, LightStrength=10, Phase=20,
Strength=20)">CSS Tutorials</div>
110
CSS
X-Ray Effect
X-Ray effect grayscales and flattens the color depth. The following parameter is used in
this filter:
Parameter Description
Example
<p>Image Example:</p>
<p>Text Example:</p>
<div style="width: 357; height: 50; font-size: 30pt; font-family: Arial Black;
color: red; style="Filter: Xray">CSS Tutorials</div>
111
CSS
27. CSS ─ Media Types
One of the most important features of style sheets is that they specify how a document
is to be presented on different media: on the screen, on paper, with a speech
synthesizer, with a braille device, etc.
We have currently two ways to specify media dependencies for style sheets:
Specify the target medium from a style sheet with the @media or @import at-
rules.
<style tyle="text/css">
<!--
@media print {
body { font-size: 10pt }
}
@media screen {
body { font-size: 12pt }
}
@media screen, print {
body { line-height: 1.2 }
}
-->
</style>
Following is an example:
<style tyle="text/css">
112
CSS
<!--
<!doctype html public "-//w3c//dtd html 4.0//en">
<html>
<head>
<title>link to a target medium</title>
<link rel="stylesheet" type="text/css"
media="print, handheld" href="foo.css">
</head>
<body>
<p>the body...
</body>
</html>
-->
</style>
Value Description
print Intended for paged, opaque material and for documents viewed on screen
in print preview mode. Please consult the section on paged media.
113
CSS
tty Intended for media using a fixed-pitch character grid, such as teletypes,
terminals, or portable devices with limited display capabilities.
114
CSS
28. CSS ─ Paged Media
Paged media differ from continuous media in that the content of the document is split
into one or more discrete pages. Paged media includes paper, transparencies, pages that
are displayed on computer screens, etc.
The CSS2 standard introduces some basic pagination control features that let authors
help the browser figure out how to best print their documents.
The CSS2 page model specifies how a document is formatted within a rectangular area -
- the page box -- that has a finite width and height. These features fall into two groups:
The page area: The page area includes the boxes laid out on that page. The
edges of the page area act as the initial containing block for layout that occurs
between page breaks.
You can specify the dimensions, orientation, margins, etc., of a page box within an
@page rule. The dimensions of the page box are set with the 'size' property. The
dimensions of the page area are the dimensions of the page box minus the margin area.
For example, the following @page rule sets the page box size to 8.5 x 11 inches and
creates '2cm' margin on all sides between the page box edge and the page area:
<style type="text/css">
<!--
@page { size:8.5in 11in; margin: 2cm }
-->
</style>
You can use the margin, margin-top, margin-bottom, margin-left, and margin-right
properties within the @page rule to set margins for your page.
Finally, the marks property is used within the @page rule to create crop and registration
marks outside the page box on the target sheet. By default, no marks are printed. You
may use one or both of the crop and cross keywords to create crop marks and
registration marks, respectively, on the target print page.
115
CSS
auto: The page box will be set to the size and orientation of the target sheet.
landscape: Overrides the target's orientation. The page box is of the same size
as the target, and the longer sides are horizontal.
portrait: Overrides the target's orientation. The page box is the same size as the
target, and the shorter sides are horizontal.
length: Length values for the 'size' property create an absolute page box. If only
one length value is specified, it sets both the width and height of the page box.
Percentage values are not allowed for the 'size' property.
In the following example, the outer edges of the page box will align with the target. The
percentage value on the 'margin' property is relative to the target size so if the target
sheet dimensions are 21.0cm x 29.7cm (i.e., A4), the margins are 2.10cm and 2.97cm.
<style type="text/css">
<!--
@page {
size: auto; /* auto is the initial value */
margin: 10%;
}
-->
</style>
The following example sets the width of the page box to be 8.5 inches and the height to
be 11 inches. The page box in this example requires a target sheet size of 8.5"x11" or
larger.
<style type="text/css">
<!--
@page {
size: 8.5in 11in; /* width height */
}
-->
</style>
116
CSS
Once you create a named page layout, you can use it in your document by adding the
page property to a style that is later applied to an element in your document. For
example, this style renders all the tables in your document on landscape pages:
<style type="text/css">
<!--
@page { size : portrait }
@page rotated { size : landscape }
table { page : rotated }
-->
</style>
Due to the above rule, while printing, if the browser encounters a <table> element in
your document and the current page layout is the default portrait layout, it starts a new
page and prints the table on a landscape page.
<style type="text/css">
<!--
@page :left {
margin-left: 4cm;
margin-right: 3cm;
}
@page :right {
margin-left: 3cm;
margin-right: 4cm;
}
-->
</style>
You can specify the style for the first page of a document with the :first pseudo-class:
117
CSS
<style type="text/css">
<!--
@page { margin: 2cm } /* All margins set to 2cm */
@page :first {
margin-top: 10cm /* Top margin on first page 10cm */
}
-->
</style>
Controlling Pagination
Unless you specify otherwise, page breaks occur only when the page format changes or
when the content overflows the current page box. To otherwise force or suppress page
breaks, use the page-break-before, page-break-after, and page-break-inside properties.
The keyword auto is the default, it lets the browser generate page breaks as needed. The
keyword always forces a page break before or after the element, while avoid suppresses
a page break immediately before or after the element. The left and right keywords force
one or two page breaks, so that the element is rendered on a left-hand or right-hand
page.
Using pagination properties is quite straightforward. Suppose your document has level-1
headers to start new chapters with level-2 headers to denote sections. You'd like each
chapter to start on a new, right-hand page, but you don't want section headers to be
split across a page break from the subsequent content. You can achieve this using the
following rule:
<style type="text/css">
<!--
h1 { page-break-before : right }
h2 { page-break-after : avoid }
-->
</style>
118
CSS
Use only the auto and avoid values with the page-break-inside property. If you prefer
that your tables are not be broken across pages if possible, you would write the rule as
follows:
<style type="text/css">
<!--
table { page-break-inside : avoid }
-->
</style>
The orphans property specifies the minimum number of lines of a paragraph that
must be left at the bottom of a page.
The widows property specifies the minimum number of lines of a paragraph that
must be left at the top of a page.
Here is an example to create 4 lines at the bottom and 3 lines at the top of each page:
<style type="text/css">
<!--
@page{orphans:4; widows:2;}
-->
</style>
119
CSS
29. CSS ─ Aural Media
A web document can be rendered by a speech synthesizer. CSS2 allows you to attach
specific sound style features to specific document elements.
Aural rendering of documents is mainly used by the visually impaired. Some of the
situations in which a document can be accessed by means of aural rendering rather than
visual rendering are the following.
Learning to read
Training
Home entertainment
Industrial documentation
Medical documentation
When using aural properties, the canvas consists of a three-dimensional physical space
(sound surrounds) and a temporal space (one may specify sounds before, during, and
after other sounds).
The CSS properties also allow you to vary the quality of synthesized speech (voice type,
frequency, inflection, etc.).
Here is an example:
<style tyle="text/css">
<!--
h1, h2, h3, h4, h5, h6 {
voice-family: paul;
stress: 20;
richness: 90;
cue-before: url("ping.au")
}
p.heidi { azimuth: center-left }
p.peter { azimuth: right }
-->
</style>
It will direct the speech synthesizer to speak headers in a voice (a kind of audio font)
called "paul", on a flat tone, but in a very rich voice. Before speaking the headers, a
sound sample will be played from the given URL.
120
CSS
Paragraphs with class ‘heidi’ will appear to come from front left (if the sound system is
capable of spatial audio), and paragraphs of class ‘peter’ from the right.
The azimuth property sets, where the sound should come from horizontally.
The elevation property sets, where the sound should come from vertically.
The pitch specifies the average pitch (a frequency) of the speaking voice.
The speak specifies whether the text will be rendered aurally and if so, in what
manner.
The stress specifies the height of "local peaks" in the intonation contour of a
voice.
121
CSS
leftwards: Moves the sound to the left and relative to the current angle. More
precisely, subtracts 20 degrees.
rightwards: Moves the sound to the right, relative to the current angle. More
precisely, adds 20 degrees.
Here is an example:
<style tyle="text/css">
<!--
h1 { azimuth: 30deg }
td.a { azimuth: far-right } /* 60deg */
#12 { azimuth: behind far-right } /* 120deg */
p.comment { azimuth: behind } /* 180deg */
-->
</style>
Here is an example:
<style tyle="text/css">
<!--
h1 { elevation: above }
tr.a { elevation: 60deg }
tr.b { elevation: 30deg }
tr.c { elevation: level }
-->
</style>
Here is an example:
<style tyle="text/css">
<!--
a {cue-after: url("dong.wav");}
h1 {cue-after: url("pop.au"); }
-->
</style>
Here is an example:
<style tyle="text/css">
<!--
a {cue-before: url("bell.aiff");}
h1 {cue-before: url("pop.au"); }
123
CSS
-->
</style>
<style tyle="text/css">
<!--
h1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
h1 {cue: url("pop.au") }
-->
</style>
time: Expresses the pause in absolute time units (seconds and milliseconds).
percentage: Refers to the inverse of the value of the speech-rate property. For
example, if the speech-rate is 120 words per minute (i.e., a word takes half a
second, or 500ms), then a pause-after of 100% means a pause of 500 ms and a
pause-after of 20% means 100ms.
time: Expresses the pause in absolute time units (seconds and milliseconds).
percentage: Refers to the inverse of the value of the speech-rate property. For
example, if the speech-rate is 120 words per minute (i.e., a word takes half a
second, or 500ms), then a pause-before of 100% means a pause of 500 ms and a
pause-before of 20% means 100ms.
124
CSS
Here is an example:
<style tyle="text/css">
<!--
/* pause-before: 20ms; pause-after: 20ms */
h1 { pause : 20ms }
/* pause-before: 30ms; pause-after: 40ms */
h2{ pause : 30ms 40ms }
/* pause-before: ?; pause-after: 10ms */
h3 { pause-after : 10ms }
-->
</style>
frequency: Specifies the average pitch of the speaking voice in hertz (Hz).
x-low, low, medium, high, x-high: These values do not map to absolute
frequencies, since these values depend on the voice family.
number: A value between '0' and '100'. A pitch range of '0' produces a flat,
monotonic voice. A pitch range of 50 produces normal inflection. Pitch ranges
greater than 50 produce animated voices.
URI: The sound designated by this <uri> is played as a background while the
element's content is spoken.
mix: When present, this keyword means that the sound inherited from the parent
element's play-during property continues to play and the sound designated by the
uri is mixed with it. If mix is not specified, the element's background sound
replaces the parent's.
125
CSS
repeat: When present, this keyword means that the sound will repeat if it is too
short to fill the entire duration of the element. Otherwise, the sound plays once
and then stops.
Here is an example:
<style tyle="text/css">
<!--
blockquote.sad { play-during: url("violins.aiff") }
blockquote q { play-during: url("harp.wav") mix }
span.quiet { play-during: none }
-->
</style>
number: A value between '0' and '100'. The higher the value, the more the voice
will carry. A lower value will produce a soft, mellifluous voice.
Note the difference between an element whose 'volume' property has a value of 'silent'
and an element whose 'speak' property has the value 'none'. The former takes up the
same time as if it had been spoken, including any pause before and after the element,
but no sound is generated. The latter requires no time and is not rendered.
126
CSS
digits: Speak the numeral as individual digits. Thus, "237" is spoken "Two Three
Seven".
continuous: Speak the numeral as a full number. Thus, "237" is spoken "Two
hundred thirty seven". Word representations are language-dependent.
slower: Subtracts 40 words per minutes from the current speech rate.
number: A value between '0' and '100'. The meaning of values depends on the
language being spoken. For example, a level of '50' for a standard, English-
speaking male voice (average pitch = 122Hz), speaking with normal intonation
and emphasis would have a different meaning than '50' for an Italian voice.
127
CSS
generic-voice: Values are voice families. Possible values are 'male', 'female',
and 'child'.
Here is an example:
<style tyle="text/css">
<!--
h1 { voice-family: announcer, male }
p.part.romeo { voice-family: romeo, male }
p.part.juliet { voice-family: juliet, female }
-->
</style>
numbers: Any number between '0' and '100'. '0' represents the minimum
audible volume level and 100 corresponds to the maximum comfortable level.
percentage: These values are calculated relative to the inherited value, and are
then clipped to the range '0' to '100'.
silent: No sound at all. The value '0' does not mean the same as 'silent'.
Here is an example:
<style tyle="text/css">
<!--
P.goat { volume: x-soft }
-->
</style>
You can use CSS to change the appearance of your web page when it is printed on a
paper. You can specify one font for the screen version and another for the print version.
You have seen @media rule in the previous chapters. This rule allows you to specify
different styles for different media. So, you can define different rules for a screen and a
printer.
The following example specifies different font families for screen and printer. The next
CSS uses the same font size for both screen as well as printer.
<style tyle="text/css">
<!--
@media screen
{
p.bodyText {font-family:verdana, arial, sans-serif;}
}
@media print
{
p.bodyText {font-family:georgia, times, serif;}
}
@media screen, print
{
p.bodyText {font-size:10pt}
}
-->
</style>
If you are defining your style sheet in a separate file, then you can also use the media
attribute when linking to an external style sheet:
129
CSS
31. CSS ─ Layouts
Hope you are very comfortable with HTML tables and you are efficient in designing page
layouts using HTML Tables. But you know CSS too provides plenty of controls for
positioning elements in a document. Since CSS is the wave of the future, why not learn
and use CSS instead of tables for page layout purposes?
The following list collects a few pros and cons of both the technologies:
Most browsers support tables, while CSS support is being slowly adopted.
Tables are more forgiving when the browser window size changes - morphing
their content and wrapping to accommodate the changes accordingly. CSS
positioning tends to be exact and fairly inflexible.
Tables are much easier to learn and manipulate than CSS rules.
CSS is pivotal to the future of Web documents and will be supported by most
browsers.
CSS is more exact than tables, allowing your document to be viewed as you
intended, regardless of the browser window.
Keeping track of nested tables can be a real pain. CSS rules tend to be well
organized, easily read, and easily changed.
Finally, we would suggest you to use whichever technology makes sense to you and use
what you know or what presents your documents in the best way.
CSS also provides table-layout property to make your tables load much faster. Following
is an example:
<table style="table-layout:fixed;width:600px;">
<tr height="30">
<td width="150">CSS table layout cell 1</td>
<td width="200">CSS table layout cell 2</td>
<td width="250">CSS table layout cell 3</td>
</tr>
</table>
You will notice the benefits more on large tables. With traditional HTML, the browser had
to calculate every cell before finally rendering the table. When you set the table-layout
algorithm to fixed, however, it only needs to look at the first row before rendering the
whole table. It means your table will need to have fixed column widths and row heights.
130
CSS
<style tyle="text/css">
<!--
body {
margin:9px 9px 0 9px;
padding:0;
background:#FFF;
}
-->
</style>
Now, we will define a column with yellow color and later, we will attach this rule to a
<div>:
<style tyle="text/css">
<!--
#level0 {
background:#FC0;
}
-->
</style>
Up to this point, we will have a document with yellow body, so let us now define another
division inside level0:
<style tyle="text/css">
<!--
#level1 {
margin-left:143px;
padding-left:9px;
background:#FFF;
}
-->
</style>
131
CSS
Now, we will nest one more division inside level1, and we will change just the
background color:
<style tyle="text/css">
<!--
#level2 {
background:#FFF3AC;
}
-->
</style>
Finally, we will use the same technique, nest a level3 division inside level2 to get the
visual layout for the right column:
<style tyle="text/css">
<!--
#level3 {
margin-right:143px;
padding-right:9px;
background:#FFF;
}
#main {
background:#CCC;
}
-->
</style>
<style tyle="text/css">
<!--
body {
margin:9px 9px 0 9px;
padding:0;
background:#FFF;}
#level0 {
background:#FC0;}
#level1 {
margin-left:143px;
132
CSS
padding-left:9px;
background:#FFF;}
#level2 {
background:#FFF3AC;}
#level3 {
margin-right:143px;
padding-right:9px;
background:#FFF;}
#main {
background:#CCC;}
-->
</style>
<body>
<div id="level0">
<div id="level1">
<div id="level2">
<div id="level3">
<div id="main">
Final Content goes here...
</div>
</div>
</div>
</div>
</div>
</body>
Similarly, you can add a top navigation bar or an ad bar at the top of the page.
133
CSS
32. CSS ─ Validations
Validation is the process of checking something against a rule. When you are a beginner,
it is very common that you will commit many mistakes in writing your CSS rules. How
you will make sure whatever you have written is 100% accurate and up to the W3
quality standards?
If you use CSS, your code needs to be correct. Improper code may cause unexpected
results in how your page looks or functions.
But if you want to validate your CSS style sheet embedded in an (X)HTML document,
you should first check that the (X)HTML you use is valid.
You can use the following tools to check the validity of your CSS.
The WDG CSS check validator, lets you validate your CSS by direct
input, file upload, and using URI. Errors will be listed by line and
column numbers if you have any. Errors usually come with links to
explain the reason of error.
A CSS validator checks your Cascading Style Sheets to make sure they comply with the
CSS standards set by the W3 Consortium. There are a few validators which will also tell
you which CSS features are supported by which browsers (since not all browsers are
equal in their CSS implementation).
Professionalism: As a web developer, your code should not raise errors while it is
being used by visitors.
134
CSS
33. CSS2 Reference Guide
This is a complete reference guide for web developers where we have listed all the CSS
properties defined in the World Wide Web Consortium's Recommended Specification for
Cascading Style Sheets, Level 2.
Aural
Background
Border
Classification
Dimension
Font
Generated Content
List and Marker
Margin
Outlines
Padding
Positioning
Table
Text
Print
Pseudo-classes
Pseudo-elements
Property Description
background-attachment
background-color
background
background-image
background-position
background-repeat
135
CSS
border-bottom-
Sets the thickness of an element's bottom border.
width
border-bottom- Sets the color of an element's bottom borders; default is the color
color of the element
136
CSS
Sets all the font attributes for an element. Value is any of the
values for:
font font-style
font-variant
font-weight
137
CSS
font-size
line-height
font-family
list-style-image
list-style
liststyle-position
list-style-type
list-style-type
Defines a list item's marker either for unordered lists (circle, disc,
list-style-type or square) or for ordered lists (decimal, loweralpha, lower-roman,
none, upper-alpha, or upper-roman)
138
CSS
The marks property is used to set crop marks and cross marks on
marks
paged media. This is used with the @page rule.
139
CSS
Sets the range of the pitch, from 0 (flat) to 100 (broad); default
pitch-range
is 50
The size property is used in paged media to specify the size of the
size
page.
140
CSS
Sets the rate of speech; a number sets the rate in words per
speech-rate
minute
text-decoration Defines any decoration for the text; values may be combined
141
CSS
Use this class to add special effect to an element while the element
:focus
has focus
Use this class to add special effect to an element when you mouse
:hover
over it
Use this class to add special effect to an element that is the first
:first-child
child of some other element.
:first-letter Use this element to add special effect to the first letter of a text
:first-line Use this element to add special effect to the first line of a text
142
CSS
34. Color References
The following table shows the 16 color names that were introduced in HTML 3.2, to
support the 16 colors that 8-bit graphics cards offered. Same set of color can be used in
CSS:
There are other colors, which are not part of HTML or XHTML but they are supported by
most of the versions of IE or Netscape. These color names can be used in CSS as well.
143
CSS
144
CSS
145
CSS
146
CSS
147
CSS
148