0% found this document useful (0 votes)
57 views

Cascading Style Sheets (CSS) : The Basics of

- CSS (Cascading Style Sheets) allow separation of website content from design, making content and layout changes independent. - A CSS file uses rules and selectors to specify styling for HTML elements like fonts, colors and positioning. This is done through properties and values. - Styles can be applied internally, through <style> tags, or externally by linking a .css file. External styling is best for consistency across pages. - The box model forms the basis of CSS layout where elements are treated as boxes that can be stacked, nested and positioned.

Uploaded by

Jay Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Cascading Style Sheets (CSS) : The Basics of

- CSS (Cascading Style Sheets) allow separation of website content from design, making content and layout changes independent. - A CSS file uses rules and selectors to specify styling for HTML elements like fonts, colors and positioning. This is done through properties and values. - Styles can be applied internally, through <style> tags, or externally by linking a .css file. External styling is best for consistency across pages. - The box model forms the basis of CSS layout where elements are treated as boxes that can be stacked, nested and positioned.

Uploaded by

Jay Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 68

The Basics of

Cascading Style Sheets (CSS)

CSS
1. What is CSS?
2. CSS & HTML
3. The Box Model
4. Style Sheet Implementation
5. CSS Rule Structure
6. HTML & DIVs
7. Common CSS properties
8. CSS Cascade and Inheritance
9. Resources

The Purpose of CSS


If HTML is the content and meaning

CSS helps to convey that meaning

Allows developers to separate the content


from layout and design

Content and design inherently different in


nature
Change in content does not require change in
design

What is CSS?
CSS stands for
Cascading Style Sheet.
Typical CSS file is a text
file with an extention.css
and contains a series of
commands or rules.
These rules tell the
HTML how to display.
*To create a style sheet, create a file
using Notepad (PC) or Text Edit
(Mac), save it as a .css document and
start writing the CSS code (see right).

Style.css
/* Styles for sitename.com*/
body {
font-family:Arial;
background: #000;
}
#container {
text-align:left;
width:1020px;
}
#header {
height:232px;
}
#footer {
width: 100%;
padding: 0 10px;
margin-bottom: 10px;
}

And so on.

CSS Benefits
Separates structure from presentation
Provides advanced control of presentation
Easy maintenance of multiple pages
Faster page loading
Better accessibility for disabled users
Easy to learn

Need:
An external style sheet has many advantages. Keeping the
styles separate from your HTML content:
Helps avoid duplication
Makes maintenance easier
Allows you to make a site-wide change in one place
CSS Saves Your Time in designing
CSS Saves Your Visitors Time
CSS Gives You Design Flexibility
Separation of content and display
More options for displaying content
Efficiency

A CSS (cascading style sheet) file allows you to


separate your web sites (X)HTML content from its
style.
All of the presentation (fonts, colors, background,
borders, text formatting, link effects & so on) are
accomplished within a CSS.

HTML Without CSS


Without CSS, HTML
elements typically flow from
top to bottom of the page
and position themselves to
the left by default.
With CSS help, we can
create containers or DIVs to
better organize content and
make a Web page visually
appealing.

HTML & CSS


HTML and CSS work together to produce
beautiful and functional Web sites
HTML = structure
CSS = style

The Box Model

CSS works on the


box model. A
typical Web page
consists of many
boxes joined
together from top
to bottom. These
boxes can be
stacked, nested,
and can float.
Header
Navigation
Content
Footer

Typical Web Page (Browser)

Container

header

menu

main

footer

USING the CSS, either internally or externally.

Internal Stylesheet
this way you are simply placing the CSS code within the <head></head> tags of each
(X)HTML file you want to style with the CSS.
This method can be good if you need to style only one page, or if you want different
pages to have varying styles.

External Stylesheet
An external CSS file can be created with any text or HTML editor such
as Notepad or Dreamweaver.
A CSS file contains no (X)HTML, only CSS. You simply save it with the
.css file extension.
You can link to the file externally by placing one of the following links
in the head section of every (X)HTML file you want to style with the
CSS file.

By using an external style sheet, all of your (X)HTML files link


to one CSS file in order to style the pages.
This means, that if you need to alter the design of all your pages,
you only need to edit one .css file to make global changes to
your entire website.

Here are a few reasons this is better.


Easier Maintenance
Reduced File Size
Reduced Bandwidth
Improved Flexibility

Attaching a Style Sheet


Attach a style sheet to a page by adding the code to the <head>
section of the HTML page. There are 3 ways to attach CSS to a page:
1. External Style Sheet: Best used to control styling on multiple pages.
<link rel="stylesheet" type="text/css"
media="all" href="css/styles.css" />
2. Internal Style Sheet: Best used to control styling on one page.
<style type=text/css>
h1 {color: red)
</style>
3. Inline Style Sheet*: CSS is not attached in the <header> but is
used directly within HTML tags.
<p style=color: red>Some Text</p>

CSS Rule Structure


A CSS RULE is made up of a selector and a
declaration.
A declaration consists of property and value.
selector {property: value;}
declaration

Selectors
A selector, here in green, is often an element of
HTML.
body{property:value;}
h1{property:value;}
em{property:value;}
p{property:value;}

Properties and Values


body {background: purple;}
h1 {color: green; }
h2 {font-size: large;}
p {color: #ff0000;} /*hexadecimal for
red*/
Properties and values tell an HTML element how to display.
body {
background: purple;
color: green;
}

*CSS code can be written in a


linear format (above) or in a block
format (below).

Grouping Selectors
Group the same selector with different declarations
together on one line.
h1 {color: black;}
h1 {font-weight: bold;}
h1 {background: white;}
Example of grouping selectors (both are correct):

h1 {
color: black;
font-weight: bold;
background: white;
}

Grouping Selectors
Group different selectors with the same declaration on
one line.

h1 {color: yellow;}
h2 {color: yellow;}
h3 {color: yellow;}
Example of grouping selectors (both are correct):

h1, h2, h3 {color: yellow;}

Comments in CSS
Explain the purpose of the coding
Help others read and understand the code
Serve as a reminder to you for what it all means
Starts with /*and ends with*/
p {color: #ff0000;} /*Company Branding*/

Paragraph
CSS code that does something HTML alone
could never do right to indent every
paragraph automatically.
Here's the CSS code:
p { text-indent: 3em; }

Working with Paragraph


p { text-indent: 3em; }
Then, right before your </head> tag in each page add a line similar
to this:
<link rel="stylesheet" type="text/css" href="main.css"
title="Default">
This will link a new style sheet, location main.css, to each page.
The title field is optional.

Import
Then, in those 2 special pages, you place the normal CSS link, but
you'll add special code,@import, to add the extra color.
<link rel="stylesheet" type="text/css" href="main.css"
title="Default">
<style type="text/css">
<!-@import url(coolblue.css);
--></style>

Basis overview
Those are the basics. Let's review the ways you can include a style
sheet:
Write it inline inside each and every tag
Place a <style> </style> at the beginning of the web page
Dedicate and link a CSS file and write it inside that file
use @import to include it as portion of a page's CSS

Exercise 1
Use <style> to make all paragraphs have 10 spaces indentation
(hint: 6em) and make the text red. Hint: Combine both into one
line of code using the ; separator. Remember to create a
paragraph in the <body> to see the style in action! Generic text
below.
This is the first paragraph
with the red text and large indent.
This is the second paragraph
with the red text and large indent.

Solution

<html>
<head>
<style type="text/css">
<!-p { text-indent: 6em; color: red; }
--></style>
</head>
<body>
<p>This is the first paragraph<br>
with the red text and large indent.</p>
<p>This is the second paragraph<br>
with the red text and large indent.</p>
</body>
</head>
</html>

Headers
If you want to make all H1, H2, and H3 red, and all
H4, H5, H6 yellow, your style could look like this:
h1, h2, h3 { color: red; }
h4, h5, h6 { color: yellow; }
You can use the comma to say you want to define a
style for multiple selectors at the same time.
You can set a style for nearly all HTML elements.

Selector a class of a current


element

Every paragraph is now indented. But what if you want a few


paragraphs without an indent? We can define an extra selector.
You can pick a name for these, I'm going to call minenoindent.
Here's the original code with an added noindent selector:
p { text-indent: 3em; }
p.noindent { text-indent: 0em; }
This says that any p that are part of a class called noindent should
use 0em indentation. To call that in code, we use class.
A normal paragraph looks like this:
<p> I'm using a style with an indent. </p>

Normal paragraph
A normal paragraph looks like this:
<p> I'm using a style with an indent. </p>
I'm using a style with an indent.
A paragraph with the noindent looks like this:
<p class="noindent"> I'm using a style without an indent. </p>
We using a style without an indent.
If you are going to only indent some paragraphs, but you probably won't
indent most, you can just define a special paragraph called indent.
p.indent { text-indent: 3em; }
If that's our only style, regular <p> </p> will have no indent, while <p
class="indent"> </p> will have a 3em indentation.

This h1 has an indent.


Imagine a selector .g, defined as { color:
green; }. Every time you use class="g" in an
element the text color would be shown in green.
ID selectors are used for special formatting
of only a few elements. ID selectors use
a # instead of a .. Imagine 3 paragraphs, we'll
call them par1, par2, par3. We'll make one red,
one orange, and one blue.

This h1 has an indent cont


We could use these styles:
p#par1 { color: red; }
p#par2 { color: orange; }
p#par3 { color: blue; }
<p id="par1">I'm in red</p>
<p id="par2">I'm in orange</p>
<p id="par3">I'm in blue</p>
ID Selectors can also be element-less:
#par1 { color: red; }
...would apply to all tags that specify id="par1".

PSEUDO-ELEMENTS
There are two important pseudo-elements that are built into CSS
capable web browsers. (There are also common pseudo-classes
which you'll learn in the links chapter.)
These two elements are :first-letter and :first-line. Notice that
pseudo-elements are defined with a : instead of a . or # (this is
because they have special meanings to a web browser).
Here's a silly example for each: Imagine you want the first letter
of each paragraph to be red, or the first-line of each paragraph to
be green.
p:first-letter { color: red; }
p:first-line { color: green; }

CSS Background, Image and Color


Styles
You are probably familiar with the <body> tag. A
typical <body> tag looks something like this:
<body background="graphic.jpg" text="#FFFFFF"
bgcolor="#000000">
To convert that into CSS, it looks like this:
body { background-image: url(graphic.jpg);
color: #FFFFFF; background-color: #000000; }

Cont
Big deal right?
But CSS adds some special features. One of the most important
is thebackground-repeat property.
It has these values: repeat, repeat-x, repeat-y, or no-repeat. A
regular web page has a default of background-repeat: repeat,
which means the image is repeated both horizontally and
vertically. With CSS, you can set the background to repeat
horizontally (repeat-x), repeat vertically (repeat-y), or not
repeat at all (no-repeat).

Images cont
We can edit the style mentioned above to have the body's
background never repeat by adding background-repeat: norepeat:
body { background-image: url(graphic.jpg);
color: #FFFFFF; background-color: #000000;
background-repeat: no-repeat; }
If you want to include the repeat in your standard background
tag (for example, if are not using CSS for the rest of your page),
you can add style="background-repeat: no-repeat;", so it looks
like this:
<body background="graphic.jpg" text="#FFFFFF"
bgcolor="#000000" style="background-repeat: no-repeat;">

There are two more important


background
properties: background-attachment andbackground-position.
background-attachment merely allows you to decide if you want
the background to scroll or not. If you want it to scroll,
use background-attachment: scroll. If you want it to not scroll,
use background-attachment: fixed.
background-position allows you to position the background. It
takes two values, the first is the the vertical position
(in px [pixels], % [percent], or top, center, bottom) and the second
value is the horizontal position (in px [pixels], % [percent],
or left, center, right).

Key features
If you want a background to be at the top right,
use: background-position: top right. If you want
it to be at the bottom center, use backgroundposition: bottom center. This is typically most
useful used with background-repeat: no repeat.

Key Cont
As you can see, the coding for the background can get pretty
long. CSS lets you combine it all into a single property
statement, known as background. It follows this format:
background: background-color || background-image ||
background-repeat || background-attachment || backgroundposition
If you want a background color of white, a background
image lightpattern.jpg, the background to never repeat, and
never scroll, you could use:
body { background: #FFFFFF url(lightpattern.jpg) no-repeat
fixed; }

Key Cont
Remember, you'll also need to set the text color, so add color: #000000 (if
you want black text)
body { background: #FFFFFF url(lightpattern.jpg) no-repeat fixed; color:
#000000; }
Notice that the browser is smart enough to realize that a value (in this case:
background-position) is missing and it ignores that value.
Always set a text and bgcolor in <body> for full browser compatibility.

Try a background with an element other than


body. A good candidate is the p

la la la la
<html>
<head>
<style type="text/css">
<!-body { background: #EEEEEE url(/graphx/back.jpg) repeat-y scroll; }
--></style>
</head>
<body>la la la la
</body>
</html>
<html><head><style type="text/css"><!-- body { background: #FFFFFF
url(/graphx/coddsite.gif) no-repeat fixed center left; }-></style></head><body></body></html>

Typical Web Page (Browser)

Container

header

menu

main

footer

Typical Web Page (HTML)


Typical HTML Web page is made up of containers (boxes)
or DIVs. Each DIV is assigned an ID or a Class.

<div id=container>
<div id=header>Insert Title</div>
<div id=main">content
<div id=menu>content</div>
</div>
<div id=footer>content</div>
</div>

Typical Web Page (CSS)


The CSS file uses the same DIV/ID/Class names as the
HTML and uses them to style the elements.
#container {property: value;}
#menu {property: value;}
#main {property: value;}
#footer {property: value;}

IDs and Classes


IDs (#) are unique and can only be used once on the
page
Classes (.) can be used as many times as needed
HTML Code:
<h1 id=mainHeading>Names</h1>
<p class=name>Joe</p>
CSS Code:
#mainHeading {color: green}
.name {color: red}

CSS Box Properties

Background-color
Width
Padding
Margin
Border-width
Border-color
Border-style

HTML
div id=header

div id=content

div id=footer

CSS
#content {
background-color: #ccc;
margin-bottom: 10px;
border: 1px dashed blue;
color: #fff;
width: auto;
}

The <div> tag


The <div> tag is nothing more than a container unit that
encapsulates other page elements and divides the HTML
document into sections.
Web developers use <div> elements to group together HTML
elements and apply CSS styles to many elements at once. For
instance, by wrapping a set of paragraph elements into a <div>
element, the we can take advantage of CSS styles and apply a
font to all paragraphs at once by applying a font style to the
<div> tag instead of coding the same style for each paragraph
element.

Common CSS Layout Properties


Width
Height
Float
Clear
Border
Padding
Margin

margin
padding

width

height

border

Width & Height


Width and height define the width and height of an element.

divid=box

#box{width=50px}
#box{width=50em}
#box{width=100%}
#box{width=auto}

#box{height=auto}

*Width and height can be specified

in pixels, ems, percentages or set to


auto

Float: (left, right)


Float property makes elements float to the right or
left of the screen, positioned where they are in the
HTML. Floating allows word wrapping.

divid=box

Here is some text which


wraps around the box
floated to the left.

#box {float:left; margin-right: 10px;}

Clear: (left, right, both)


When elements are floated, they wrap around each other to
form a caravan. The clear property detaches an element
from the caravan and allows it to start on a new line.

divid=box1

divid=box2

divid=box3
#box3{backgroundcolor:white;border:
1pxsolid#000;clear:both;}

Border (top, right, bottom, left)


divid=box

You can define the entire border or


only the top, bottom, left, or right. You
can also define the border using one
declaration. The code could be any of
the following:
#box{
bordertop:reddotted1px;
borderbottom:reddotted1px;
borderleft:reddotted1px;
borderright:reddotted1px;
}

#box{
border:reddotted1px;
}
#box{
bordercolor:red;
borderstyle:dotted;
borderwidth:2px;

Padding (top, right, bottom, left)


Padding is the space between the text/content and the border. You can use
padding for all around the element or specify each side of the rectangle
separately.
The code could be any of the following:
padding

padding: 10px;
Padding: 10px 10px;

div id=box

padding: 10px 10px 10px 10px;


padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-top: 10px;

Margin (top, right, bottom, left)


Margin is the space outside the text/content and the border. You can use
margin for all around the element or specify each side of the rectangle
separately.
The code could be any of the following:
margin

div id=box

margin: 10px;
or
margin: 10px 10px;
or
margin: 10px 10px 10px 10px;
or
margin-left: 10px;
margin-right: 10px;
margin-bottom: 10px;
margin-top: 10px;

Text Properties
MAIN HEADING
Gravida lacinia velit.
Vivamus tortor enim,
tincidunt at, pellentesque ut,
iaculis eu, quam.
To style the main heading in
the paragraph above, we assigned
a class the HTML tag.

.mainHeading {
color: red;
letter-spacing: 5px;
text-transform: uppercase;
word-spacing: 15px;
text-align: left;
font-family: Times;
text-decoration: underline;
font-size: 12px;
font-style: italic;
font-weight: bold;
}

<h3 class=mainHeading>Main Heading</h3>

CSS Colors
Standard

Hexadecimal

#ffffff
#fff
#cccf0f3

White
Black
Blue
Fuchsia
Gray
Green
Lime
Aqua

Styling Links
The links property defines how inactive, hovered,
active, and visited link states appear to the user.
a:link {color: red; text-decoration:
none;border-bottom: 1px dashed red;
background: white;}
a:visited {color: yellow;}
a:active {color: green;}
a:hover {color: orange;}

Including Images
Properties for working with images include:
Background-image
Background-repeat
Background-position
Background-attachment

Layering
Background colors
and images are
layered like sheets
of paper one on top
of the other.

div id=bg
div id=main
div id=box

#bg{background:url(leaves.jpg) no-repeat top left}


#main {background-color: red}
#box {background-color: yellow}

Background-Image
The background-image property sets an image
in the background of an element.
Background images and colors are layered.
If not transparent, the last one listed in the
CSS file is visible.
li {
background-image:url(flower.jpg);
padding-left: 10px;
}

Background-Repeat
The background-repeat property sets an
image in the background of an element and
tiles, or repeats, it. Tiling is the default.
li {
background-image:url(flower.jpg);
background-repeat:no-repeat;
}

Possible Values

repeat
> repeat-x (horizontal)
repeat-y (vertical)
no-repeat

Image Positioning
The background-position
property positions the image
using either combined
keywords (top, bottom, left,
right, and center); length
values; or percentage values.
background-position: right top;
/*can also use number values*/
background-attachment:
fixed; /*can also use
scroll*/

left

center

top

top

left

center

right

bottom

bottom

bottom

The backgroundattachment property


fixes or scrolls an
image in the browser
window. Values include
fixed and scroll.

The Power of Cascade


When multiple styles or style sheets are used, they start to
cascade and sometimes compete with one another due to CSSs
inheritance feature. Any tag on the page could potentially be
affected by any of the tags surrounded by it.
So, which one wins? Nearest Ancestor Wins.
1. Inline style or directly applied style
2. The last style sheet declared in the <header> section

Saving Time with Inheritance


In a nutshell, inheritance (not the money you get from your
grandma) is the process by which CSS properties applied to one
tag are passed on to nested tags.
For example, the paragraph tag will inherit the same styling as
the body tag because <p> is always located inside <body>.
<body style=font-family: Arial>
<p>This text will be Arial as well</p>
</body>
So, instead of styling each paragraph separately, you can define the font
color in the <body>, and everything inside will have that color.

Resources

http://www.w3schools.com/css/css_reference.asp (list of all CSS properties)


http://www.w3schools.com/css/
http://www.glish.com/css/
http://www.html.net/tutorials/css/
http://blog.html.it/layoutgala/

Great Book

CSS: The Missing Manual - by David Sawyer McFarland

Thank You
I hope you enjoyed this presentation and learned
some basic CSS. I hope this will help with
creating beautiful and functional Web sites.

You might also like