CSS3 Notes Inifnity2
CSS3 Notes Inifnity2
What is CSS?
• CSS stands for Cascading Style Sheets
• CSS describes how HTML elements are to be displayed on screen, paper, or in other media
• CSS saves a lot of work. It can control the layout of multiple web pages all at once
• External stylesheets are stored in CSS files
• HTML was NEVER intended to contain tags for formatting a web page!
• HTML was created to describe the content of a web page, like:
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
When tags like <font>, and color attributes were added to the HTML 3.2 specification, it started a
nightmare for web developers. Development of large websites, where fonts and color information were
added to every single page, became a long and expensive process.
To solve this problem, the World Wide Web Consortium (W3C) created CSS. CSS removed the style
formatting from the HTML page!
With an external stylesheet file, you can change the look of an entire website by changing just one file!
CSS Syntax
A CSS rule-set consists of a selector and a declaration block:
Selector {property:value;}
Each declaration includes a CSS property name and a value, separated by a colon.
A CSS declaration always ends with a semicolon, and declaration blocks are surrounded by curly braces.
In the following example all <p> elements will be center-aligned, with a red text color:
p {
color: red;
text-align: center;
}
CSS Selectors
CSS selectors are used to "find" (or select) HTML elements based on their element name, id, class, attribute, and
more.
You can select all <p> elements on a page like this (in this case, all <p> elements will be center-aligned, with a
red text color):
p {
text-align: center;
color: red;
}
The id Selector
The id selector uses the id attribute of an HTML element to select a specific element.
The id of an element should be unique within a page, so the id selector is used to select one unique element!
To select an element with a specific id, write a hash (#) character, followed by the id of the element.
The style rule below will be applied to the HTML element with id="para1":
#para1 {
text-align: center;
color: red;
}
To select elements with a specific class, write a period (.) character, followed by the name of the class.
In the example below, all HTML elements with class="center" will be red and center-aligned:
.center {
text-align: center;
color: red;
}
You can also specify that only specific HTML elements should be affected by a class.
In the example below, only <p> elements with class="center" will be center-aligned:
p.center {
text-align: center;
color: red;
}
In the example below, the <p> element will be styled according to class="center" and to class="large":
Grouping Selectors
If you have elements with the same style definitions, like this:
In the example below we have grouped the selectors from the code above:
h1, h2, p {
text-align: center;
color: red;
}
CSS Comments
Comments are used to explain the code, and may help when you edit the source code at a later date.
p {
color: red;
/* This is a single-line comment */
text-align: center;
}
/* This is
a multi-line
comment */
Each page must include a reference to the external style sheet file inside the <link> element. The <link> element
goes inside the <head> section:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
An external style sheet can be written in any text editor. The file should not contain any html tags. The style sheet
file must be saved with a .css extension.
Internal styles are defined within the <style> element, inside the <head> section of an HTML page:
<head>
<style>
body {
background-color: linen;
}
h1 {
color: maroon;
margin-left: 40px;
}
</style>
</head>
Inline Styles
An inline style may be used to apply a unique style for a single element.
To use inline styles, add the style attribute to the relevant element. The style attribute can contain any CSS
property.
The example below shows how to change the color and the left margin of a <h1> element:
Example
Assume that an external style sheet has the following style for the <h1> element:
h1 {
color: navy;
}
then, assume that an internal style sheet also has the following style for the <h1> element:
h1 {
color: orange;
}
If the internal style is defined after the link to the external style sheet, the <h1> elements will be "orange":
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<style>
h1 {
color: orange;
}
</style>
</head>
Cascading Order
What style will be used when there is more than one style specified for an HTML element?
Generally speaking we can say that all the styles will "cascade" into a new "virtual" style sheet by the following
rules, where number one has the highest priority:
So, an inline style (inside a specific HTML element) has the highest priority, which means that it will override a
style defined inside the <head> tag, or in an external style sheet, or a browser default value.
CSS Colors
Colors in CSS are most often specified by:
CSS Backgrounds
The CSS background properties are used to define the background effects for elements.
• background-color
• background-image
• background-repeat
• background-attachment
• background-position
Background Color
The background-color property specifies the background color of an element.
body {
background-color: lightblue;
}
Background Image
The background-image property specifies an image to use as the background of an element.
body {
background-image: url("paper.gif");
}
Some images should be repeated only horizontally or vertically, or they will look strange, like this:
If the image above is repeated only horizontally (background-repeat: repeat-x;), the background will look
better:
body {
background-image: url("gradient_bg.png");
background-repeat: repeat-x;
}
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
}
In the example above, the background image is shown in the same place as the text. We want to change the
position of the image, so that it does not disturb the text too much.
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
background-position: right top;
}
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
background-position: right top;
background-attachment: fixed;
}
Example
body {
background: #ffffff url("img_tree.png") no-repeat right top;
}
CSS Borders
Border Style
The border-style property specifies what kind of border to display.
The border-style property can have from one to four values (for the top border, right border, bottom border, and
the left border).
Example
p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
p.double {border-style: double;}
p.groove {border-style: groove;}
p.ridge {border-style: ridge;}
p.inset {border-style: inset;}
p.outset {border-style: outset;}
p.none {border-style: none;}
p.hidden {border-style: hidden;}
p.mix {border-style: dotted dashed solid double;}
Note: None of the OTHER CSS border properties described below will have ANY effect unless the border-
style property is set!
Border Width
The border-width property specifies the width of the four borders.
The width can be set as a specific size (in px, pt, cm, em, etc) or by using one of the three pre-defined values:
thin, medium, or thick.
The border-width property can have from one to four values (for the top border, right border, bottom border, and
the left border).
p.one {
border-style: solid;
border-width: 5px;
}
p.two {
border-style: solid;
border-width: medium;
}
p.three {
border-style: solid;
border-width: 2px 10px 4px 20px;
}
Border Color
The border-color property is used to set the color of the four borders.
The border-color property can have from one to four values (for the top border, right border, bottom border, and
the left border).
Example
p.one {
border-style: solid;
border-color: red;
}
p.two {
border-style: solid;
border-color: green;
}
p.three {
border-style: solid;
border-color: red green blue yellow;
}
Example
p {
border-top-style: dotted;
border-right-style: solid;
border-bottom-style: dotted;
border-left-style: solid;
}
Example
p {
border-style: dotted solid;
}
• border-style: dotted;
o all four borders are dotted
The border-style property is used in the example above. However, it also works with border-
width and border-color.
Border - Shorthand Property
As you can see from the examples above, there are many properties to consider when dealing with borders.
To shorten the code, it is also possible to specify all the individual border properties in one property.
The border property is a shorthand property for the following individual border properties:
• border-width
• border-style (required)
• border-color
Example
p {
border: 5px solid red;
}
You can also specify all the individual border properties for just one side:
Left Border
p {
border-left: 6px solid red;
background-color: lightgrey;
}
Bottom Border
p {
border-bottom: 6px solid red;
background-color: lightgrey;
}
Rounded Borders
The border-radius property is used to add rounded borders to an element:
p {
border: 2px solid red;
border-radius: 5px;
}
Property Description
border-radius Sets all the four border-*-radius properties for rounded corners
CSS Margins
The CSS margin properties are used to generate space around elements.
The margin properties set the size of the white space outside the border.
With CSS, you have full control over the margins. There are CSS properties for setting the margin for each side of
an element (top, right, bottom, and left).
• margin-top
• margin-right
• margin-bottom
• margin-left
The following example sets different margins for all four sides of a <p> element:
Example
p {
margin-top: 100px;
margin-bottom: 100px;
margin-right: 150px;
margin-left: 80px;
}
The margin property is a shorthand property for the following individual margin properties:
• margin-top
• margin-right
• margin-bottom
• margin-left
Example
p {
margin: 100px 150px 100px 80px;
}
• margin: 25px;
o all four margins are 25px
The auto Value
You can set the margin property to auto to horizontally center the element within its container.
The element will then take up the specified width, and the remaining space will be split equally between the left
and right margins:
Example
div {
width: 300px;
margin: auto;
border: 1px solid red;
}
Example
div.container {
border: 1px solid red;
margin-left: 100px;
}
p.one {
margin-left: inherit;
}
Margin Collapse
Top and bottom margins of elements are sometimes collapsed into a single margin that is equal to the largest of
the two margins.
This does not happen on horizontal margins (left and right)! Only vertical margins (top and bottom)!
Example
h1 {
margin: 0 0 50px 0;
}
h2 {
margin: 20px 0 0 0;
}
In the example above, the <h1> element has a bottom margin of 50px. The <h2> element has a top margin set to
20px.
Common sense would seem to suggest that the vertical margin between the <h1> and the <h2> would be a total
of 70px (50px + 20px). But due to margin collapse, the actual margin ends up being 50px.
CSS Padding
The CSS padding properties are used to generate space around content.
The padding clears an area around the content (inside the border) of an element.
With CSS, you have full control over the padding. There are CSS properties for setting the padding for each side of
an element (top, right, bottom, and left).
• padding-top
• padding-right
• padding-bottom
• padding-left
The following example sets different padding for all four sides of a <p> element:
Example
p {
padding-top: 50px;
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
}
The padding property is a shorthand property for the following individual padding properties:
• padding-top
• padding-right
• padding-bottom
• padding-left
Example
p {
padding: 50px 30px 50px 80px;
}
• padding: 25px;
o all four paddings are 25px
Example
div.ex1 {
padding: 25px 50px 75px 100px;
}
div.ex2 {
padding: 25px 50px 75px;
}
div.ex3 {
padding: 25px 50px;
}
div.ex4 {
padding: 25px;
}