SlideShare a Scribd company logo
Cascading Style Sheets (CSS)
Manav
Motivation
HTML markup can be used to represent
 Semantics: h1 means that an element is a top-level
heading
 Presentation: h1 elements look a certain way
It’s advisable to separate semantics from
presentation because:
 It’s easier to present documents on multiple platforms
(browser, cell phone, spoken, …)
 It’s easier to generate documents with consistent look
 Semantic and presentation changes can be made
independently of one another (division of labor)
 User control of presentation is facilitated
Manav
Style Sheet Languages
Cascading Style Sheets (CSS)
 Applies to (X)HTML as well as XML documents
in general
 Focus of this chapter
Extensible Stylesheet Language (XSL)
 Often used to transform one XML document to
another form, but can also add style
 XSL Transformations covered in later chapter
Manav
CSS Introduction
A styled HTML document
produced by the style sheet style1.css:
Manav
CSS Introduction
link element associates style sheet with doc.
Manav
CSS Introduction
type attribute specifies style language used
Manav
CSS Introduction
href attribute provides style sheet URL
Manav
CSS Introduction
title attribute provides style sheet name
Manav
CSS Introduction
Alternative, user selectable style sheets
can be specified
Manav
CSS Introduction
Manav
CSS Introduction
A styled HTML document
produced by the style sheet style2.css:
Manav
CSS Introduction
Note that alternate, user selectable style is
not widely supported: firefox 3 and IE 8 do,
but IE 6, IE 7 and Chrome don’t.
Manav
CSS Introduction
Single document can be displayed on
multiple media platforms by tailoring style
sheets:
This document will be printed differently than
it is displayed.
Manav
CSS Syntax
Parts of a style rule (or statement)
Manav
CSS Syntax:
Selector Strings
Single element type:
Multiple element types:
All element types:
Specific elements by id:
Manav
CSS Syntax:
Selector Strings
Manav
CSS Syntax:
Selector Strings
Elements belonging to a style class:
 Referencing a style class in HTML:
Elements of a certain type and class:
class selector: begins with a period .
Manav
CSS Syntax:
Selector Strings
Elements belonging to a style class:
 Referencing a style class in HTML:
Elements of a certain type and class:
this span belongs to three style classes
Manav
CSS Syntax:
Selector Strings
Elements belonging to a style class:
 Referencing a style class in HTML:
Elements of a certain type and class:
this rule applies only to span’s belonging to class special
Manav
CSS Syntax:
Selector Strings
Source anchor elements:
Element types that are descendents:
pseudo-classes
Manav
CSS Syntax:
Selector Strings
Source anchor elements:
Element types that are descendants:
rule applies to li element that is
Manav
CSS Syntax:
Selector Strings
Source anchor elements:
Element types that are descendants:
rule applies to li element that is
part of the content of an ol element
Manav
CSS Syntax:
Selector Strings
Source anchor elements:
Element types that are descendants:
rule applies to li element that is
part of the content of an ol element
that is part of the content of a ul element
Manav
CSS Syntax
Style rules covered thus far follow ruleset
syntax
At-rule is a second type of rule
 Reads style rules from specified URL
 Must appear at beginning of style sheet
URL relative to style sheet URL
Manav
Style Sheets and HTML
Style sheets referenced by link HTML
element are called external style sheets
Style sheets can be embedded directly in
HTML document using style element
Most HTML elements have style
attribute (value is list of style declarations)
Manav
Style Sheets and HTML
Rules of thumb:
 Use external style sheets to define site-wide style
 Prefer style sheets (either external or embedded)
to style attributes
 XML special characters
 Must use references in embedded style sheets and
style attribute
 Must not use references in external style sheets
Manav
CSS Rule Cascade
What if more than one style declaration
applies to a property of an element?
The CSS rule cascade determines which
style rule’s declaration applies
Manav
CSS Rule Cascade
To find the value for an element/property
combination, user agents must apply the
following sorting order:
1- Find all declarations that apply to the
element and property in question, for the
target media type. Declarations apply if the
associated selector matches the element in
question.
Manav
CSS Rule Cascade
2- The primary sort of the declarations is
by weight and origin: for normal
declarations, author style sheets override
user style sheets which override the default
style sheet. For "!important" declarations,
user style sheets override author style sheets
which override the default style sheet. "!
important" declaration override normal
declarations. An imported style sheet has
the same origin as the style sheet that
imported it.
Five origin/weight levels:
1. user/important
2. author/important
3. author/normal
4. user/normal
5. user agent/normal
Manav
CSS Rule Cascade
3- The secondary sort is by specificity of selector: more
specific selectors will override more general ones. Pseudo-
elements and pseudo-classes are counted as normal elements
and classes, respectively.
Specificity:
1. style attribute
2. rule with selector:
1. ID
2. class/pseudo-class
3. descendant/element type
4. universal
3. HTML attribute
Manav
CSS Rule Cascade
4- Finally, sort by order specified: if two rules have the same
weight, origin and specificity, the latter specified wins. Rules
in imported style sheets are considered to be before any rules
in the style sheet itself.
Conceptually, create one
long style sheet. Later
style rules have higher
priority than earlier rules.
Manav
CSS Inheritance
What if no style declaration applies to a
property of an element?
Generally, the property value is inherited
from the nearest ancestor element that has a
value for the property
If no ancestor has a value (or the property
does not inherit) then CSS defines an initial
value that is used
Manav
CSS Inheritance
Manav
CSS Inheritance
Property values:
 Specified: value contained in declaration
 Absolute: value can be determined without reference
to context (e.g., 2cm)
 Relative: value depends on context (e.g., larger)
 Computed: absolute representation of relative
value (e.g., larger might be 1.2 x parent font
size)
 Actual: value actually used by browser (e.g.,
computed value might be rounded)
Manav
CSS Inheritance
Most properties inherit computed value
 Exception discussed later: line-height
A little thought can usually tell you whether
a property inherits or not
 Example: height does not inherit
Manav
CSS Font Properties
Glyph (visual representation)
character cell
(content area)
A font is a mapping from code points to glyphs
Manav
CSS Font Properties
A font is a mapping from code points to glyphs
glyphs do not necessary stay inside cells!
Manav
CSS Font Properties
A font family is a collection of related fonts
(typically differ in size, weight, etc.)
font-family property can accept a list of
families, including generic font families
first choice font
Manav
CSS Font Properties
A font family is a collection of related fonts
(typically differ in size, weight, etc.)
font-family property can accept a list of
families, including generic font families
second choice font
Manav
CSS Font Properties
A font family is a collection of related fonts
(typically differ in size, weight, etc.)
font-family property can accept a list of
families, including generic font families
generic
Manav
CSS Font Properties
generic
fonts are
system-
specific
Manav
CSS Font Properties
Note that most generic font can be easily
set on Firefox and Chrome, but such option
doesn’t seem to be available on IE 7 and 8. IE
will still default to something although maybe
not what you had hoped for!
Manav
CSS Font Properties
Many properties, such as font-size, have a value that
is a CSS length
All CSS length values except 0 need units
Manav
CSS Font Properties
Computed value
of font-size
property
Manav
CSS Font Properties
Reference font defines em and ex units
 Normally, reference font is the font of the
element being styled
 Exception: Using em/ex to specify value for
font-size
parent element’s font is
reference font
Manav
CSS Font Properties
Other ways to specify value for
font-size:
 Percentage (of parent font-size)
 Absolute size keyword: xx-small, x-small,
small, medium (initial value), large,
x-large, xx-large
 User agent specific; should differ by ~ 20%
 Relative size keyword: smaller, larger
 Relative to parent element’s font
Manav
CSS Font Properties
Manav
CSS Font Properties
Text is rendered using line boxes
Height of line box given by line-height
 Initial value: normal (i.e., cell height; relationship with
em height is font-specific)
 Other values (following are equivalent):
Manav
CSS Font Properties
When line-height is greater than cell
height:
Inheritance of line-height:
 Specified value if normal or unit-less number
 Computed value otherwise
Manav
CSS Font Properties
font shortcut property:
Manav
CSS Font Properties
font shortcut property:
Initial values used if no value specified in font
property list (that is, potentially reset)
Manav
CSS Font Properties
font shortcut property:
specifying line-height (here, twice cell height)
any order size and family required,
order-dependent
Manav
CSS Text Formatting
Manav
CSS Text Color
Font color specified by color property
Two primary ways of specifying colors:
 Color name: black, gray, silver, white, red, lime,
blue, yellow, aqua, fuchsia, maroon, green, navy,
olive, teal, purple, full list at
http://www.w3.org/TR/SVG11/types.html#ColorKey
 red/green/blue (RGB) values
Manav
CSS Text Color
Manav
CSS Text Color
Manav
CSS Box Model
Every rendered element occupies a box:
(or inner edge)
(or outer edge)
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
Manav
CSS Box Model
If multiple declarations apply to a property,
the last declaration overrides earlier
specifications
Left border is 30px wide,
inset style, and red
Manav
Backgrounds
background-color
 Specifies background color for content, padding,
and border areas
 Margin area is always transparent
 Not inherited; initial value transparent
background-image
 Specifies (using url() function) image that
will be tiled over an element
Manav
Backgrounds
<body style="background-image:url('CucumberFlowerPot.png')">
Manav
Normal Flow Layout
In normal flow processing, each displayed
element has a corresponding box
 html element box is called initial containing
block and corresponds to entire document
 Boxes of child elements are contained in boxes
of parent
 Sibling block elements are laid out one on top of
the other
 Sibling inline elements are one after the other
Manav
Normal Flow Layout
(body)
(html)
Manav
Normal Flow Layout
Block
elements
only
Manav
Normal Flow Layout
html
body
div d1
div d2
div d3
div d4
Top edges of
block boxes are
in document order
Manav
Normal Flow Layout
What is a “block element”?
 Element with value block specified for its
display property
 User agent style sheet (not CSS) specifies default
values; typical block elements include html,
body, p, pre, div, form, ol, ul, dl, hr, h1
through h6
 Most other elements except li and table-related
have inline specified for display
Manav
Normal Flow Layout
When blocks stack, adjacent margins are
collapsed to the size of the larger margin
Manav
Normal Flow Layout
Initial value of width property is auto, which
for block boxes means to make the content area as
wide as possible within margin/padding constraints:
Width of block boxes
increases as browser
client area is widened
Manav
Normal Flow Layout
Can also specify CSS length or percentage
(of parent’s content width) for width
property
By default, width of right margin is
adjusted to accommodate a change to
width
Manav
Normal Flow Layout
Can also specify CSS length or percentage
(of parent’s content width) for width
property
Centering can be achieved by setting
both margins to auto
Manav
Normal Flow Layout
Boxes corresponding to character cells and
inline elements are laid out side by side in line
boxes that are stacked one on top of the other
Character cells aligned by baseline
Heights
based on
content
Manav
Normal Flow Layout
Padding/borders/margins affect width but
not height of inline boxes
Manav
Normal Flow Layout
Specify value for vertical-align to position
an inline element within line box:
initial
value of
vertical-
align
Manav
Beyond Normal Flow
CSS allows for boxes to be positioned
outside the normal flow:
 Relative positioning
span’s shifted backwards relative to normal flow
Manav
Beyond Normal Flow
CSS allows for boxes to be positioned
outside the normal flow:
 Float positioning
span taken out of normal
flow and “floated” to the
left of its line box
Manav
Beyond Normal Flow
CSS allows for boxes to be positioned
outside the normal flow:
 Absolute positioning
span’s removed from
normal flow and
positioned relative
to another box
Manav
Beyond Normal Flow
Properties used to specify positioning:
 position: static (initial value),
relative, or absolute
 Element is positioned if this property not static
 Properties left, right, top, bottom apply to
positioned elements
 Primary values are auto (initial value) or CSS length
 float: none, left, or right
 Applies to elements with static and relative
positioning only
Manav
Beyond Normal Flow
Relative positioning
 Specifying positive value for right property of
relatively positioned box moves it to left
<span style="background-color:red">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span class="right">Red</span>
span
containing
text moves
left
Manav
Beyond Normal Flow
Relative positioning
 Specifying negative value for left property
also moves box to left
<span style="background-color:red">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span class="right">Red</span>
same
effect as
before
Manav
Beyond Normal Flow
Float positioning
 Specify value for float property
Manav
Beyond Normal Flow
Float positioning
 Specify value for float property
Floated element becomes a CSS block
element (e.g., can set height and width)
Manav
Beyond Normal Flow
Absolute positioning
 Specify location for corner of box relative to
positioned containing block
margin area
padding area
containing
block
This second paragraph has a
note.
p elements are positioned (but don’t move!)
Manav
Beyond Normal Flow
Absolute positioning
 Specify location for edges of box relative to
positioned containing block
Manav
Beyond Normal Flow
Absolute positioning
10em padding top
edge
padding left
edge
Manav
Beyond Normal Flow
Absolute positioning
8em
Manav
Beyond Normal Flow
Absolutely positioned box does not affect
positioning of other boxes!
Second absolutely
positioned box
obscures first
Manav
CSS Position-Related Properties
z-index: drawing order for overlaid
boxes (largest number drawn last)
Manav
CSS Position-Related Properties
display: value none means that element
and its descendants are not rendered and do
not affect normal flow
visibility: value hidden (initial
value is visible) means that element and its
descendants are not rendered but still do affect
normal flow

More Related Content

PPT
Javascript
PDF
CSS Notes in PDF, Easy to understand. For beginner to advanced. ...
PDF
Css notes for professionals
PPTX
PDF
Intro to HTML and CSS basics
PPT
Introduction to Cascading Style Sheets (CSS)
PPTX
Complete Lecture on Css presentation
Javascript
CSS Notes in PDF, Easy to understand. For beginner to advanced. ...
Css notes for professionals
Intro to HTML and CSS basics
Introduction to Cascading Style Sheets (CSS)
Complete Lecture on Css presentation

What's hot (20)

PPT
Cascading Style Sheets (CSS) help
PPT
Css Ppt
PPT
CSS for Beginners
ODP
Introduction of Html/css/js
PPTX
Database Connectivity in PHP
PPT
JQuery introduction
PPTX
PDF
Html / CSS Presentation
PPT
CSS Basics
PPTX
An Overview of HTML, CSS & Java Script
PPTX
Document Object Model (DOM)
PPTX
PDF
jQuery for beginners
PDF
HTML5: features with examples
KEY
HTML CSS & Javascript
PPT
jQuery Ajax
PPT
Introduction to JavaScript (1).ppt
PDF
JavaScript - Chapter 12 - Document Object Model
PDF
CSS3, Media Queries, and Responsive Design
PPTX
PHP Cookies and Sessions
Cascading Style Sheets (CSS) help
Css Ppt
CSS for Beginners
Introduction of Html/css/js
Database Connectivity in PHP
JQuery introduction
Html / CSS Presentation
CSS Basics
An Overview of HTML, CSS & Java Script
Document Object Model (DOM)
jQuery for beginners
HTML5: features with examples
HTML CSS & Javascript
jQuery Ajax
Introduction to JavaScript (1).ppt
JavaScript - Chapter 12 - Document Object Model
CSS3, Media Queries, and Responsive Design
PHP Cookies and Sessions
Ad

Viewers also liked (14)

PPTX
Presentación comunicación
PPT
Rest introduction
PDF
taller de fisica
PDF
Ruby on Rails - Web Application Framework
PDF
Operations spark innovation - slides from Innovation Social May 2016
PDF
Ansee Smart Home Security Products201610
PPTX
SIP Presentation Satyam
PDF
01 por que não aceitamos os evangelhos apócrifos
PDF
Introduction to XPath
DOCX
Ips kelas 1 semester 2
DOCX
Matematika kelas 1 semester 2
PPT
Individuelle Massenproduktion
PDF
Meilensteine der Instandhaltung 4.0
PPSX
PREGUNTADOS SECUNDARIA STELLA MARIS
Presentación comunicación
Rest introduction
taller de fisica
Ruby on Rails - Web Application Framework
Operations spark innovation - slides from Innovation Social May 2016
Ansee Smart Home Security Products201610
SIP Presentation Satyam
01 por que não aceitamos os evangelhos apócrifos
Introduction to XPath
Ips kelas 1 semester 2
Matematika kelas 1 semester 2
Individuelle Massenproduktion
Meilensteine der Instandhaltung 4.0
PREGUNTADOS SECUNDARIA STELLA MARIS
Ad

Similar to Css (20)

PDF
CSS.pdf
PPTX
Css1
PPT
cascading style sheet in web design .ppt
PPT
Cascading Style Sheet | CSS
PPT
Css lecture notes
PDF
Css - Tutorial
PDF
Css tutorial
PPTX
Chapter 11: Intro to CSS
PPTX
Fundamental of Web Development Tutorials-CSS by PINFO Technologies.pptx
PDF
Csstutorial
DOCX
PDF
CSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
PDF
PPTX
2_css.pptx
PPTX
2_css.pptx
PDF
Web 2 | CSS - Cascading Style Sheets
PPTX
Css basics
PPTX
Css Complete Notes
PDF
Css tutorial
CSS.pdf
Css1
cascading style sheet in web design .ppt
Cascading Style Sheet | CSS
Css lecture notes
Css - Tutorial
Css tutorial
Chapter 11: Intro to CSS
Fundamental of Web Development Tutorials-CSS by PINFO Technologies.pptx
Csstutorial
CSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
2_css.pptx
2_css.pptx
Web 2 | CSS - Cascading Style Sheets
Css basics
Css Complete Notes
Css tutorial

More from Manav Prasad (20)

PPTX
Experience with mulesoft
PPTX
Mulesoftconnectors
PPT
Mule and web services
PPTX
Mulesoft cloudhub
PPT
Perl tutorial
PPT
Hibernate presentation
PPT
PPT
Spring introduction
PPT
PPT
The spring framework
PPT
Exceptions in java
PPT
PPT
Xml parsers
PPT
PPT
PPT
PPT
Introduction to html5
PPT
PPT
J query
PPTX
J query1
Experience with mulesoft
Mulesoftconnectors
Mule and web services
Mulesoft cloudhub
Perl tutorial
Hibernate presentation
Spring introduction
The spring framework
Exceptions in java
Xml parsers
Introduction to html5
J query
J query1

Recently uploaded (20)

PDF
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
PDF
Electronic commerce courselecture one. Pdf
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Modernizing your data center with Dell and AMD
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Sensors and Actuators in IoT Systems using pdf
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced IT Governance
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
Teaching material agriculture food technology
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
Electronic commerce courselecture one. Pdf
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
“AI and Expert System Decision Support & Business Intelligence Systems”
Review of recent advances in non-invasive hemoglobin estimation
Modernizing your data center with Dell and AMD
madgavkar20181017ppt McKinsey Presentation.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Sensors and Actuators in IoT Systems using pdf
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Advanced IT Governance
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Spectral efficient network and resource selection model in 5G networks
Teaching material agriculture food technology
NewMind AI Monthly Chronicles - July 2025
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx

Css