Unit4 - Introduction To CSS
Unit4 - Introduction To CSS
CSS Advanced
Unit -3
Getting Started With CSS
Learning objectives:
After the Completion of this unit you should be able to know
What a style sheet is and how it actually styles a web page
The importance of CSS.
How to create a style sheet and link an html document to the style sheet.
The basic building blocks of any style sheet: rules, selectors, properties
and values.
How External Style Sheets are stored in CSS files
Three ways of inserting a style sheet
Different selectors using CSS
Define background properties ,Background colour & images handling
Font family, Style and Size using CSS
Designing Tables using CSS
Structure
3.1.1 Definition
3.1.2 Advantages
The cascade part of CSS means that more than one style sheet can be
attached to a document, and all of them can influence the presentation. For
example, a designer can have a global style sheet for the whole site, but a local
one for say, controlling the link color and background of a specific page. Or, a
user can use own style sheet if s/he has problems seeing the page, or if s/he just
prefers a certain look.
Page 1
3.2 CSS Syntax
Selector {property:
h1
Selector
{color: red;
font-size :15px}
Property
Value
Property
Value
Page 2
3.2.2Parts of style sheet
A style sheet consists of one or more rules that describe how document
elements should be displayed. A rule in CSS has two parts: the selector
and the declaration. The declaration also has two parts, the property and the
value. Let's take a look at a rule for a heading 1 style: h1 { font-family:
verdana, "sans serif"; font-size: 1.3em } This expression is a rule that says
every h1 tag will be verdana or other sans-serif font and the fontsize will
be 1.3em. Let's take a look at the different parts of this rule.
Selector
{
property1:some value;
property2: some value;
}
The declaration contains the property and value for the selector. The property is the
attribute you wish to change and each property can take a value. The property and
value are separated by a colon and surrounded by curly braces:
body { background-color: black}
If the value of a property is more than one word, put quotes around that value:
body { font-family: "sans serif"; } If you wish to specify more than one property,
you must use a semi-colon to separate each property. This rule defines a paragraph
that will have blue text that is centered.
p { text-align: center; color: blue }
You can group selectors. Separate each selector with a comma. The example below
groups headers 1, 2, and 3 and makes them all yellow. h1, h2, h3 { color: yellow}
Page 3
3.3 CSS Selectors
You can define selectors in various simple ways based on your comfort. Let me
put these selectors one by one. Three types of CSS Selectors
1. The Element selectors
2. The ID Selectors
3. The Class Selectors
3.3.1 The Element selectors
A CSS declaration always ends with a semicolon, and declaration groups
are surrounded by curly brackets: example -
p {color:red;text-align:center;}
To make the CSS more readable, you can put one declaration on each line,
like this:
p
{
color:red;
text-align:center;
}
3.3.2 The ID selectors
#welcome
{
color:red;
text-align:center;
}
3.3.3 The Class selectors
The class selector is used to specify a style for a group of elements. Unlike
the id selector, the class selector is most often used on several elements.
This allows you to set a particular style for many HTML elements with the
same class. The class selector uses the HTML class attribute, and is
defined with a ".". In the example below, all HTML elements with
class="center" will be center-aligned:
Imagine within the body element of our html page, we have the following
header element
<h2 class=”center”>Summary</h2>
We can then create a CSS rule with the class selector:
.center {text-align:center;}
Page 4
You can also specify that only specific HTML elements should be affected
by a class. In the example below, all p elements with class="center" will be
center-aligned: example
[Link] {text-align:center;}
Some of the other selectors are used in CSS, they are :
[Link] Universal selector
An asterisk (*) is the universal selector for CSS. It matches a single
element of any type. Omitting the asterisk with simple selectors has the
same effect. For instance, *.warning and. warning are considered equal.
Rather than selecting elements of a specific type, the universal selector
quite simply matches the name of any element type: Example-
*
{
Color:#000000;
}
This rule renders the content of every element in our document in black.
[Link] Attribute Selector
You can also apply styles to HTML elements with particular attributes. The
style rule below will match all the input elements having a type attribute
with a value of text:
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 [Link] are
following rules applied to attribute selector.
⮚ p[lang] - Selects all paragraph elements with a lang attribute. ⮚
p[lang="fr"] - Selects all paragraph elements whose lang attribute
has a value of exactly "fr".
⮚ p[lang~="fr"] - Selects all paragraph elements whose lang attribute
contains the word "fr".
⮚ p[lang|="en"] - Selects all paragraph elements whose lang attribute
contains values that are exactly "en", or begin with "en-".
Page 5
3.4 Ways to insert CSS
An external style sheet can be written in any text editor. The file should not contain
any html tags. Your style sheet should be saved with a .css extension. An example
of a style sheet file is shown below:
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/[Link]");}
Notes : Do not leave spaces between the property value and the units! "margin
left:20 px" (instead of "margin- left:20px") will work in IE, but not in Firefox or
Opera.
Page 6
<p style="color:sienna;margin-left:20px">This is a paragraph.</p>
Page 7
You can set the following background properties of an element: ⮚ The
background-image property is used to set the background image of an
element.
⮚ The background-repeat property is used to control the repetition of an
image in the background.
⮚ The background-position property is used to control the position of an
image in the background.
⮚ The background-attachment property is used to control the scrolling of
an image in the background.
⮚ The background property is used as shorthand to specify a number of other
background properties.
3.5.1 Repeat the Background Image
The following example demonstrates how to repeat the background image
if an image is small. You can use no-repeat value for the background-repeat
property if you don't want to repeat an image. In this case, the image will display
only once. By default, the background-repeat property will have a repeat value.
<table style="background-image:url(/images/[Link]); 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(/images/[Link]); 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(/images/[Link]); background-repeat:
repeat-x;">
<tr><td>
This table has background image set which will repeat horizontally.
</td></tr> </table>
3.5.2 Set the Background Image Position
The following example demonstrates how to set the background image position
100 pixels away from the left side.
<table style="background-image:url(/images/[Link]);
background-position:100px;">
<tr><td>
Background image positioned 100 pixels away from the left.
</td></tr>
</table>
Page 8
Check your progress 3
Q1. How many ways to build style sheet ? what are they ?
Answer:
Answer:
3.6 Background colour Management using CSS
The background-color property specifies the background color of an element. The
background color of a page is defined in the body selector: Example
body {background-color:#b0c4de;}
<p style="background-color:yellow;">
This text has a yellow background color. </p>
Page 9
Page 10
3.6.3 CSS Colors - RGB Values
This color value is specified using the rgb( ) property. This property takes
three values, one each for red, green, and blue. The value can be an integer
between 0 and 255 or a percentage. NOTE: All the browsers does not support
rgb() property of color, so it is recommended not to use it.
3.7 Text Management using CSS
CSS is a language that describes the style of an HTML document. You can set the
following text properties of an element:
Page 11
⮚ The text-transform property is used to capitalize text or convert text to
uppercase or lowercase letters.
⮚ 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.
The following example demonstrates how to set the space between words.
Possible values are normal or a number specifying space.
<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>
Page 12
3.7.7 Decorating the Text
The following example demonstrates how to set the cases for a text.
Possible values are none, capitalize, uppercase, lowercase.
Example
:
Page 13
The output of the above program is :
3.8 Font Management using CSS
A font is the combination of typeface and other qualities, such as size, pitch,
and spacing. For example, Times Roman is a typeface that defines the shape of
each character. Within Times Roman, however, there are many fonts to choose
from -- different sizes, italic, bold, and so [Link] can set the following font
properties of an element:
Following is the example, which demonstrates how to set the font family
of an element. Possible value could be any font family name.
Page 14
<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>
Page 15
Possible values could be normal, wider, narrower, ultra-condensed,
extra-condensed, condensed, semi-condensed, semi-expanded,
expanded, extra-expanded, ultra-expanded.
<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 version of the font being
used. </p>
Example:-
Page 16
Page 17
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}
a:visited {color: #006600}
a:hover {color: #FFCC00}
a:active {color: #FF00CC}
</style>
The following example demonstrates how to set the link color. Possible
values could be any color name in any valid format.
<style type="text/css">
a:link {color:#000000}
</style>
<a href="/html/[Link]">Black Link</a>
The following example demonstrates how to set the color of the visited
links. Possible values could be any color name in any valid format.
<style type="text/css">
a:visited {color: #006600}
</style>
<a href="/html/[Link]">Click this link</a>
Page 18
3.9.3 Change the Color of Links when Mouse is Over
The following example demonstrates how to change the color of links
when we bring a mouse pointer over that link. Possible values could be
any color name in any valid format.
<style type="text/css">
a:hover {color: #FFCC00}
</style>
<style type="text/css">
a:active {color: #FF00CC}
</style>
Page 19
⮚ The marker-offset specifies the distance between a marker and the text in
the list.
The list-style-type property allows you to control the shape or style of a bullet
point (also known as a marker) in case of unordered lists and the style of
numbering characters in ordered lists. Here are the values, which can be used for
an unordered list:
Value Description
None NA
disc A filled-in
(default) circle
Circle An empty
circle
Square A filled-in
square
Here are the values, which can be used for an ordered list:
Value Description Example
Here is an example:
Page 20
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).
Page 21
Example :
<html>
<head>
<Title>This is my inline css page</Title>
</head>
<body>
<ulstyle="list-style-type:circle; list-stlye
position:outside;"><li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<ulstyle="list-style-type:square;list-style
position:inside;"><li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ul>
<olstyle="list-style-type:decimal;list-stlye
position:outside;"><li>Maths</li>
<li>Social Science</li>
<li>Physics</li>
</ol>
<olstyle="list-style-type:lower-alpha;list-style-position:inside;">
<li>Maths</li>
<li>Social Science</li><li>Physics</li>
</ol>
</body>
</html>
Page 22
3.11 Designing Tables using CSS
Tables are an excellent way to organize and display information on a page. You
can set the following properties of a table:
This property can have two values collapse and separate. The following
example uses both the values:
<html>
<head>
<Title>This is my inline css page</Title>
</head>
<body>
<style type="text/css">
[Link]
{border-collapse:collapse;}
[Link]
{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;
}
Page 23
</style>
<table class="one">
<caption>Collapse Border Example</caption>
<tr><td class="a"> Cell A Collapse Example</td></tr>
<tr><td class="b"> Cell B Collapse Example</td></tr>
</table><br />
<table class="two">
<caption>Separate Border Example</caption>
<tr><td class="a"> Cell A Separate Example</td></tr>
<tr><td class="b"> Cell B Separate Example</td></tr>
</table>
</body>
</html>
Page 24
<style type="text/css">
[Link]
{
border-collapse:separate; width:400px;
border-spacing:10px;
}
[Link]
{
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>
The empty-cells property indicates whether a cell without any content should have
a border displayed. 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.
Example:
<html>
<head>
<Title>This is my inline css page</Title>
</head>
<body>
<style type="text/css">
[Link]
{
width:350px;
border-collapse:separate;
empty-cells:hide;
}
[Link]
{
padding:5px;
border-style:solid;
Page 25
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>
</body>
</html>
Q2. What are the different values of ordered and unordered list in css ?
Answer:
Page 26
3.12 Working with Box Model
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 height property is used to set the height of a box.
⮚ The width property is used to set the width of a box.
⮚ The line-height property is used to set the height of a line of text.
⮚ 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.
3.12.1 The Height and Width Properties
The height and width properties allow you to set the height and width for boxes.
They can take values of a length, a percentage, or the keyword auto. Here is an
example:
Page 27
3.12.2 The line-height Property
The line-height property allows you to increase the space between lines of text.
The value of the line-height property can be a number, a length, or a percentage.
Here is an example:
The output of the above program is
The max-height property allows you to specify the maximum height of a box. The
value of the max-height property can be a number, a length, or a percentage.
Page 28
The output of the above program is
Page 29
The output of the above program is
3.13 Designing borders using CSS
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-color property allows you to change the color of the border
surrounding an element. You can individually change the color of the bottom, left,
top and right sides of an element's border using the properties:
Page 30
The following example shows the effect of all these properties:
The output of the above program is :
The border-style property allows you to select one of the following styles of
border:
⮚ none: No border. (Equivalent of border-width:0;)
⮚ solid: Border is a single solid line.
⮚ dotted: Border is a series of dots.
⮚ dashed: Border is a series of short lines.
⮚ double: Border is two solid lines.
Page 31
⮚ groove: Border looks as though it is carved into the page.
⮚ ridge: Border looks the opposite of groove.
⮚ 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. ⮚
hidden: Same as none, except in terms of border-conflict resolution for table
elements.
You can individually change the style of the bottom, left, top, and right borders of
an element using the following properties:
Page 32
3.14 Designing outline using CSS
Outlines are very similar to borders, but there are few major differences as
well: ⮚ An outline does not take up space.
⮚ Outlines do not have to be rectangular.
⮚ Outline is always the same on all sides; you cannot specify different values
for different sides of an element.
NOTE: The outline properties are not supported by IE 6 or Netscape 7. You can
set the following outline properties using CSS.
The outline-width property specifies the width of the outline to be added to the
box. Its value should be a length or one of the values thin, medium, or thick, just
like the border-width attribute. A width of zero pixels means no outline. Here is an
example:
Page 33
The above program will produce the following result:
The outline-style property specifies the style for the line (solid, dotted, or dashed)
that goes around an element. It can take one of the following values:
⮚ none: No border. (Equivalent of outline-width:0;)
⮚ solid: Outline is a single solid line.
⮚ dotted: Outline is a series of dots.
⮚ dashed: Outline is a series of short lines.
⮚ double: Outline is two solid lines.
⮚ groove: Outline looks as though it is carved into the page.
⮚ ridge: Outline looks the opposite of groove.
⮚ 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.
⮚ hidden: Same as none.
Page 34
Here is an example:
The above program will produce the following result:
The outline-color property allows you to specify the color of the outline. Its value
should either be a color name, a hex color, or an RGB value, as with the color and
border-color properties. Here is an example:
Page 35
The above program will produce the following result:
Page 36
⮚ The margin specifies a shorthand property for setting the margin
properties in one declaration.
⮚ The margin-bottom specifies the bottom margin of an element.
⮚ The margin-top specifies the top margin of an element.
⮚ The margin-left specifies the left margin of an element.
⮚ The margin-right specifies the right margin of an element.
The margin property allows you to set all of the properties for the four
margins in one declaration. Here is the syntax to set margin around a paragraph:
<style type="text/css">
p {margin: 15px}
all four margins will be 15px
Here is an example:
Page 37
The above program will produce the following result:
3.15.2 The margin-bottom Property
The margin-bottom property allows you to set the bottom margin of an element. It
can have a value in length, %, or auto.
Here is an example:
Page 38
3.15.3 The margin-left Property
The margin-left property allows you to set the left margin of an element. It can
have a value in length, %, or auto. Here is an example:
Page 39
Check your progress 6
3.17 Reference
1. [Link]
2. [Link]
3. [Link]
CSS stands for Cascading Style Sheets. It is a simple design language intended to
simplify the process of making web pages presentable.
Page 40
Q2. Write the three parts of CSS syntax?
Answer
CSS style is made of three parts:
1. Selector: A selector is an HTML tag at which a style will be applied. This could
be any tag like <h1>, <p> or <table> etc.
2. 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,
bgcolor etc.
3. Value: Values are assigned to properties. For example, color property can have
the value either red or #F1F1F1 etc.
Answer
Answer
Universal selector
An asterisk (*) is the universal selector for CSS. It matches a single element of any
type. Omitting the asterisk with simple selectors has the same effect. For instance,
*.warning [Link] are considered equal. Rather than selecting elements of a
specific type
Q1. How many ways to build style sheet ?what are they ?
Answer
There are three ways of inserting a style sheet:
1. External style sheet
2. Internal style sheet
3. Inline style
Page 41
Q2. Write the background properties of CSS
Answer
Page 42
Check your progress 5
Q2. What are the different values of ordered and unordered list in CSS ?
Answer
disc (default),Circle,Square.
Decimal,decimal-leading-zero,lower-alpha,upper-alpha,lower-roman,upper-roma
Answer
Properties of dimensions of a box.
Page 43
Q2. Write the three properties of border.
Answer
There are three properties of a border:
1. The margin specifies a shorthand property for setting the margin properties in
one declaration.
2. The margin-bottom specifies the bottom margin of an element.
3. The margin-top specifies the top margin of an element.
4. The margin-left specifies the left margin of an element.
5. The margin-right specifies the right margin of an element
Q5. Write the border-style property in CSS.
Answer
The border-style property :
⮚ none: No border. (Equivalent of border-width:0;)
⮚ solid: Border is a single solid line.
⮚ dotted: Border is a series of dots.
⮚ dashed: Border is a series of short lines.
⮚ double: Border is two solid lines.
⮚ groove: Border looks as though it is carved into the page.
⮚ ridge: Border looks the opposite of groove.
⮚ 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. ⮚
hidden: Same as none, except in terms of border-conflict
resolution for table elements.
Page 44
CSS Advanced
Learning objectives:
After the Completion of this unit you should be able to
know Paragraph Padding
Image height and width setting
Block level and inline elements
Pseudo-class and elements
Various attribute of image
Different attribute values of selectors
Structure
Page 45
4.9 Working with Pseudo-class
4.9.1 Anchor Pseudo-classes
4.9.2 Pseudo classes and CSS
classes 4.9.3 Simple Tooltip Hover
4.3.4 The first child pseudo classes
4.3.5 Match the first <p> element
4.10 working with Pseudo-elements 4.10.1
The: first-line pseudo-element 4.10.2 The:
first-letter pseudo-element 4.10.3 The:
before pseudo-element
4.10.4 The: after pseudo-element
4.10.5 The: selection
pseudo-element 4.11 Creating a navigation
bar
4.11.1 Navigation Bar = List of Links
4.11.2Vertical navigation bar
4.11.3 Center Links & Add Borders
4.11.4 Horizontal Navigation Bar
4.12 Working with images
4.12.1 The Image Border Property
4.12.2 The Image width Property
4.13 Working with Attribute selectors
4.13.1Multiple style rules
4.13.2 CSS [attribute] Selector
4.13.3 CSS [attribute="value"] Selector
4.13.4 CSS [attribute ~ ="value"]
Selector 4.13.5 CSS [attribute |="value"]
Selector 4.13.6 CSS [attribute ^="value"]
Selector 4.13.7 CSS [attribute $="value"]
Selector 4.13.8 CSS [attribute *="value"]
Selector
4.14 Check Your Progress Possible answer
4.15 Reference
Page 46
4.1 Padding using CSS
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 inherits. 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:
⮚ The padding-bottom specifies the bottom padding of an element.
⮚ The padding-top specifies the top padding of an element.
⮚ The padding-left specifies the left padding of an element.
⮚ The padding-right specifies the right padding of an element.
⮚ The padding serves as shorthand for the preceding properties.
The padding-bottom property sets the bottom padding (space) of an element. This
can take a value in terms of length of %. Here is an example:
Page 47
4.1.2 The padding-top Property
The padding-top property sets the top padding (space) of an element. This can take a
value in terms of length of %. Here is an example:
Page 48
4.2 Setting Display Using CSS
The display property is the most important CSS property for controlling layout.
The display property specifies if/how an element is displayed. Every HTML
element has a default display value depending on what type of element it is. The
default display value for most elements is block or inline. A block element is often
called a block-level element. An inline element is always just called an inline
element.
A block-level element always starts on a new line and takes up the full width
available (stretches out to the left and right as far as it can).
Note: The problem with the <div> above occurs when the browser window is
smaller than the width of the element. The browser then adds a horizontal scrollbar
to the page.
Using max-width instead, in this situation, will improve the browser's handling of
small windows. This is important when making a site usable on small devices:
Tip: Resize the browser window to less than 500px wide, to see the difference
between the two divs!
Here is an example of the two divs above:
Page 50
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.
Page 51
Here is an example:
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.
Page 52
</div>
4.4.3 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:
With CSS float, an element can be pushed to the left or right, allowing other
elements to wrap around it. Float is very often used for images, but it is also
useful when working with layouts.
A line box is next to a float when there exists a vertical position that satisfies all
of these four conditions:
(a) At or below the top of the line box,
(b) At or above the bottom of the line box
(c) Below the top margin edge of the float, and
(d) Above the bottom margin edge of the float.
Elements are floated horizontally; this means that an element can only be
floated left or right, not up or down. A floated element will move as far to the left
or right as it can. Usually this means all the way to the left or right of the
containing element. The elements after the floating element will flow around it.
The elements before the floating element will not be affected. If an image is
floated to the right, a following text flows around it, to the left:
Page 53
Example:
img { float:right; }
If you place several floating elements after each other, they will float next to each
other if there is room. Here we have made an image gallery using the float
property:
Example
Elements after the floating element will flow around it. To avoid this, use
the clear property. The clear property specifies which sides of an element
other floating elements are not allowed. Add a text line into the image
gallery, using the clear property:
Example:
.text_line { clear:both; }
The number in the "CSS" column indicates in which CSS version the
property is defined (CSS1 or CSS2).
Property Description Values CSS
Page 54
Page 55
Check your progress 1
Answer:
Answer:
Examples
The old way - using float (notice that we also need to specify a clear property for
the element after the floating boxes):
<!DOCTYPE html>
<html>
<head>
<style>
.floating-box
{
float: left;
width: 150px;
height: 75px;
margin: 10px;
border: 3px solid #73AD21;
}
.after-box
{
clear: left;
border: 3px solid red;
}
Page 56
</style>
</head>
<body>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="after-box">Another box, after the floating
boxes...</div> </body>
</html>
The above program will produce the following result
4.7 Horizontal Alignment in CSS
Page 57
Example:
.center
{
margin: auto;
width: 50%;
border: 3px solid green;
padding: 10px;
}
Note: Center aligning has no effect if the width property is not set (or set to
100%).
.center
{
text-align: center;
border: 3px solid green;
}
4.7.3 Center an Image
To center an image, use margin: auto; and make it into a block element:
img
{
display: block;
margin: auto;
width: 40%;
}
Example:
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
Note: Absolute positioned elements are removed from the normal flow,
and can overlap elements.
Page 58
Tip: When aligning elements with position, always define margin and padding for
the <body> element. This is to avoid visual differences in different browsers.
There is also a problem with IE8 and earlier, when using position. If a container
element
(in our case <div class="container">) has a specified width, and the !DOCTYPE
declaration is missing, IE8 and earlier versions will add a 17px margin on the
right side. This seems to be space reserved for a scrollbar. So, always set the
!DOCTYPE declaration when using position:
<!DOCTYPE html>
<html>
<head>
<style>
body
{
margin: 0;
padding: 0;
}
.container
{
position: relative;
width: 100%;
}
.right
{
position: absolute;
right: 0px;
width: 300px;
background-color: #b0e0e6;
}
</style>
</head>
<body>
<h2>Right Align</h2>
<div class="container">
<div class="right">
<p><b>Note: </b>When aligning using the position property,
always include the !DOCTYPE declaration! If missing, it can
produce strange results in IE browsers.</p>
</div>
</div>
</body>
</html>
Page 59
4.8 Working with Combinatory
A combinatory is something that explains the relationship between the selectors. A
CSS selector can contain more than one simple selector. Between the simple
selectors, we can include a combinatory.
There are four different combinatory in CSS:
⮚ descendant selector (space)
⮚ child selector (>)
⮚ adjacent sibling selector (+)
⮚ general sibling selector (~)
4.8.1 Descendant Selector
The following example selects all <p> elements inside <div> elements:
Example
div p
{
background-color: yellow;
}
Page 60
4.8.2 Child Selector
The child selector selects all elements that are the immediate children of a
specified element.
The following example selects all <p> elements that are immediate
children of a <div> element:
Example
<div > p {
background-color: yellow;
}
4.8.3 Adjacent Sibling Selector
The adjacent sibling selector selects all elements that are the adjacent
siblings of a specified element. Sibling elements must have the same parent
element, and "adjacent" means "immediately following". The following
example selects all <p> elements that are placed immediately after <div>
elements:
Example:
div + p {
background-color: yellow;
}
Syntax
The syntax of pseudo-classes:
selector: pseudo-class
Page 61
{
property: value;
}
4.9.1 Anchor Pseudo-classes
Links can be displayed in different ways:
Example
/* unvisited link */
a:link {
color: #FF0000;
}
/* visited link */
a:visited {
color: #00FF00;
}
/* selected link */
a:active {
color: #0000FF;
}
Note: 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-class names are not case
sensitive.
Page 62
p
{
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p
{
display: block;
}
4.9.4 The: first-child Pseudo-class
The: first-child pseudo-class matches a specified element that is the first
child of another element.
4.9.5 Match the first <p> element
In the following example, the selector matches any <p> element that is the
first child of any element:
Example
p: first-child
{
color: blue;
}
Example
p i:first-child
{
color: blue;
}
Selector Example Example description
Page 63
:empty p:empty Selects every <p> element that has
no children
:enabled input:enabled Selects every enabled <input>
element
Page 64
"required" attribute
Page 65
4.10.1 The: first-line pseudo-element
The following example demonstrates how to use the: first-line element to add
special effects to the first line of elements in a document.
The following example demonstrates how to use the: first-letter element to add special
effect to the first letter of elements in the document.
Page 66
Page 67
4.10.3 The: before pseudo-element
The : before pseudo-element can be used to insert some content before the
content of an element. The following example demonstrates how to use
:before element to add some content before any element.
<style type="text/css">
p:before
{
content: url(/images/[Link])
}
</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>
The :after pseudo-element can be used to insert some content after the
content of an element. The following example demonstrates how to use:
after element to add some content after any element.
<style type="text/css">
p:after
{
content: url(/images/[Link])
}
</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>
<!DOCTYPE html>
<html>
<head>
<style>
::-moz-selection {/* Code for Firefox */
color: red;
background: yellow;
Page 68
}
::selection {
color: red;
background: yellow;
}
</style>
</head>
<body>
<h1>Select some text on this page:</h1>
<p>This is a paragraph.</p>
<div>This is some text in a div element.</div>
<p><strong>Note:</strong> ::selection is not supported in Internet
Explorer 8 and earlier versions.</p>
<p><strong>Note:</strong> Firefox supports an alternative, the ::-moz selection property.</p>
</body>
</html>
The above program will produce the following result:
Page
69
4.11 Creating a navigation bar
A navigation bar (or navigation system) is a section of a graphical user
interface intended to aid visitors in accessing information. Navigation bars are
implemented in file browsers, web browsers and as a design element of some web
sites. A set of buttons or images in a row or column that serves as a control point to
link the user to sections on a Web site. The navigation bar may also be a single
graphic image with multiple selections.
(Example of vertical and horizontal navigation bar)
A navigation bar needs standard HTML as a base. In our examples we will build
the navigation bar from a standard HTML list. A navigation bar is basically a list
of links, so using the <ul> and <li> elements makes perfect sense: Example <ul>
<li><a href="[Link]">Home</a></li>
<li><a href="[Link]">News</a></li>
<li><a href="[Link]">Contact</a></li>
<li><a href="[Link]">About</a></li>
</ul>
Now let's remove the bullets and the margins and padding from the list:
ul
{
list-style-type:none;
margin:0;
padding:0;
}
Page 70
Example explained:
⮚ list-style-type:none - Removes the bullets. A navigation bar does not need
list markers
⮚ Setting margins and padding to 0 to remove browser default settings
The code in the example above is the standard code used in both vertical, and
horizontal navigation bars.
4.11.2 Vertical Navigation Bar
To build a vertical navigation bar we only need to style the <a> elements, in
addition to the code above:
Example
a { display:block; width:60px; }
Example explained:
⮚ display:block - Displaying the links as block elements makes the whole link
area clickable (not just the text), and it allows us to specify the width ⮚
width:60px - Block elements take up the full width available by default. We
want to specify a 60 px width .
Note: Always specify the width for <a> elements in a vertical navigation bar. If
you omit the width, IE6 can produce unexpected results. You can also set the
width of <ul>, and remove the width of <a>, as they will take up the full width
available when displayed as block elements. This will produce the same result as
our previous example:
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 60px;
}
li a {
display: block;
}
Add text-align:center to <li> or <a> to center the links. Add the border property
to <ul> add a border around the navbar. If you also want borders inside the
navbar, add aborder-bottom to all <li> elements, except for the last one:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
Page 71
padding: 0;
width: 200px;
background-color: #f1f1f1;
border: 1px solid #555;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
li {
text-align: center;
border-bottom: 1px solid #555;
}
li:last-child {
border-bottom: none;
}
li [Link] {
background-color: #4CAF50;
color: white;
}
li a:hover:not(.active) {
background-color: #555;
color: white;
}
</style>
</head>
<body>
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</body>
</html>
Page 72
The above program will produce the following result
4.11.4 Horizontal Navigation Bar
There are two ways to create a horizontal navigation bar. Using inline or
floating list items. Both methods work fine, but if you want the links to be the
same size, you have to use the floating method. Create a basic horizontal
navigation bar with a dark background color and change the
background color of the links when the user moves the mouse over
them:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
Page 73
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
</style>
</head>
<body>
<ul>
<li><a class="active"
href="#home">Home</a></li> <li><a
href="#news">News</a></li>
<li><a
href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</body>
</html>
Page 74
The border property of an image is used to set the width of an image border. This
property can have a value in length or in %. A width of zero pixels means no
border.
Here is an example:
Page 75
The width property of an image is used to set the width of an image. This property
can have a value in length or in %. While giving value in %, it applies it in respect
of the box in which an image is available.
Here is an example:
Page 76
Page 77