SlideShare a Scribd company logo
Cascading Style Sheets Hatem Mahmoud [email_address]
Part 1
Introduction
What is CSS?
What is CSS? Every web page is composed of HTML (HyperText Mark-up Language) code that describes the content
Example: <p> An <strong> important </strong><font color=&quot;#FFFF00&quot;> paragraph </font> . </p> Displays: An  important   paragraph . Repetitive and hard to maintain
What is CSS? Layers of a web page: Content: Text, images, animation, video, etc.
Presentation: How the content will appear to a human through a web browser, text reader, etc.
Behavior: Real-time user interaction with the page: validation, sorting, drag-n-drop, etc.
What is CSS? CSS separates the presentation from the content
Versions 1996 - CSS1 became a W3C recommendation: fonts, alignment, margins, borders, backgrounds, floating, etc.
1998 – CSS2 with advanced features: table cell display, sheets could import others, targeted different output media, etc.
Some parts of CSS2 were very difficult to implement, so the W3C decided to revise the specification
Versions The name of the revised version was “Cascading Style Sheets, Level 2 Revision 1”
References to CSS2 usually mean CSS2.1
CSS2.1 is the latest and current revision of the CSS2 specification
CSS3 specification is still in draft but some parts have been implemented by some browsers
Linking CSS to HTML 1) Inline Styles:  Using the  style  attribute which is supported by every HTML tag: <h1 style=&quot;color:red;&quot;> My Headline </h1> The simplest way but repetitive across multiple HTML elements
Linking CSS to HTML 2) Embedded Styles:  Using the  style  tag: <style type=&quot;text/css&quot;> h1{ font-family:Verdana }  //all h1 tags .warning{ color:red }  //tags with this class #footer{ font-size:10px }  //tag with this id </style> <h1> My Header </h1> <p  class=”warning” > WARNING </p> <div  id=”footer” > eSpace 2008 </div> Repetitive across multiple pages
Linking CSS to HTML 2) External Styles:  Using separate files: mypage.html <head>  <link type= &quot;text/css&quot;  href= &quot;nice.css&quot; /> </head> nice.css h1{ font-family:Verdana } .warning{ color:red } #footer{ font-size:10px }
Linking CSS to HTML Now, multiple HTML pages can share the same CSS file.
Why CSS? Flexible, can be applied in several ways
Easy to maintain
Accessibility to different users with different devices.
CSS caching = less bandwidth + fast loading
CSS Syntax
General Syntax Style definition: body{font-family:Verdana; font-size:9pt;}
General Syntax Case insensitive
Whitespace and line breaks have no semantic value
Comments: /*  This is  a comment */
Properties Font: div { color: black; } span {  color: #00003D;  font-size: 24px; font-family: Verdana, Arial;  font-style: italic; font-weight: bold; text-decoration: underline; text-align:justify; ... }
Properties Size units (  relative  and  absolute  ): px  = Pixels on the screen em  = Current font size ex  = Height of lowercase &quot;x&quot; mm  = Millimeters cm  = Centimeters in  = Inches (1 inch = 2,54 centimeters) pt  = Points (1 point = 1/72 inches) pc  = Picas (1 pica = 12 points)
Properties Backgrounds: div { background-color: Black; } body { background-image: url(logo.gif);  background-color: white;  background-attachment: fixed;  background-position: right top;  background-repeat: no-repeat; } body { background: white url(logo.gif)   repeat-x fixed right top; }
Selectors 1) Universal selector: * { margin: 0; padding: 0; } 2) Element type selector: span { font-family: Verdana } 3) Class selector: p.big { font-weight: bold; }
Selectors 4) ID selector: #menu { font-size: 22pt; } // unique id 5) Attribute selector: input[type=&quot;submit&quot;] { color: blue; }
Selectors CSS3 new attribute selectors: a[href ^ =&quot;http:&quot;]  { ... } /* matches a elements whose href attribute  value starts with &quot;http:&quot; */ img[src $ =&quot;.png&quot;]  { ... } /* matches img elements whose src  attribute value ends with &quot;.png&quot; */ div[id * =&quot;foo&quot;]  { ... } /* matches div elements whose id attribute  value contains &quot;foo&quot; */
Selectors Grouping: div, p { font-family: Verdana } a img { border: none } ul li ol li { color: blue } #menu a, div li, .note { color: red }
Selectors Child selector: ul>li { ... } <ul>   <li>   <ol> <li> Will not be matched. </li>   </ol> </li> </ul>
Selectors Adjacent sibling selector: - sibling = has the same parent element - adjacent = immediately following h2+p { ... } <div> <h2> Heading </h2> <p> Will be matched. </p> <p> Will not be matched. </p> </div>
Selectors General sibling selector: - sibling = has the same parent element - general = just following h2~p { ... }
Selectors Example:  h2~p { ... } <p> Will not be matched. </p> <h2> Heading </h2> <p> Will be matched. </p> <div> <p> Will not be matched. </p> </div> <p> Will be matched. </p>
Pseudo-classes (implicit) a:link { ... } //Normal a:visited { ... } //Visited a:hover { ... } //Mouse hovers a.menu:hover { ... } a:active { ... } // Clicking textarea:focus { ... } li:first-child { ... } :lang(fr) { ... }
Pseudo-classes (implicit) New in CSS3 :nth-child(N) :nth-last-child(N) :nth-of-type(N) :nth-last-of-type(N) :last-child :first-of-type :last-of-type :only-child :only-of-type :root :empty :target :enabled :disabled :checked :not(S)
Pseudo-elements (virtual) In CSS1 p :first-letter  { ... } p :first-line  { ... }
Pseudo-elements (virtual) New in CSS2 #breadcrumbs :before  { content : &quot;You are here:&quot;; margin-right: 0.5em; } span.centimeters :after  { content : &quot;cm&quot;; color: #cccccc; }
Pseudo-elements (virtual) New in CSS3 :: selection { ... } //represents a part of the document that’s been highlighted by the user, including text in editable text fields
The Cascade
The Cascade Style declarations cascade down to elements from many origins.
The cascade combines the importance, origin, specificity, and source order of the style declarations to determine which declaration should be applied to a given element.
The Cascade
The Cascade Importance: //Normal declaration p {font-size: 1em} //Important declaration p {font-size: 1em  !important ;}
The Cascade Importance and origins priorities (low to high): 1. User agent declarations 2. Normal declarations in user style sheets 3. Normal declarations in author style sheets 4. Important declarations in author style sheets 5. Important declarations in user style sheets
The Cascade Specificity: When multiple declarations (with the same importance and origin) try to set the same property to an element, the declaration with the most specific selector will take precedence.
The Cascade Calculating specificity: 1. Inline styles (highest specificity) 2. Count ID selectors 3. Count class selectors  ( .test ), attribute selectors   ( [type=&quot;submit&quot;] ), and pseudo-classes ( :hover ) 4. Count element type selectors ( div ) and    pseudo-elements ( :first-letter )
The Cascade The process of the cascade: 1. For a given property, find all declarations that apply to a specific element. (user agent, author, user-defined). 2. Sort according to levels of importance and origins. 3. Sort declarations with the same level of importance and origin by selector specificity. 4. If declarations have the same level of importance, origin, and specificity, sort them by the order in which they’re specified
Inheritance The process by which properties are passed from parent to child elements without explicit definition div { font-size: 20px; } <div>   <p>   My  <em> cool </em>  paragraph is  <a href=&quot;#&quot;> here </a>.   </p> </div>
Inheritance Exceptions ( borders, backgrounds, etc.)
But you can enforce it: p { background-image:  inherit ; }
CSS Layout
Block vs Inline 1) HTML block-level elements: May contain inline elements and other blocks
Begin on new lines
Examples:  <h1>..<h6> ,  <p> ,  <ul> ,  <ol> ,  <li> ,  <table> ,  <tr> ,  <th> ,  <td> ,  <form> ,  <select> ,  <input> ,  <div> , etc.
Block vs Inline 2) HTML Inline (text-level) elements: Must be nested within blocks
May contain only text and other inline elements
Don't begin on new lines
Examples:  <em> ,  <strong> ,  <a> ,  <img> ,  <abbr> ,  <span> , etc.
Block vs Inline Using the  display  property: #menu li { display:  inline ; } #menu a { display:  block ; } CSS does not affect the markup: Setting the  display  property to  block  for a  span  element doesn’t allow you to nest an  h1  element inside it, because the HTML document type definition forbids that.
Browser Work 1) Parsing: The browser reads the markup and builds a document object model (DOM) tree of nodes.
Browser Work DOM Tree:
Browser Work 2) Rendering: Each node in the DOM tree is rendered as zero or more boxes
Inline elements generate inline boxes
Block elements generate block boxes
CSS Box Box Model (for block-level elements):
CSS Box Internet Explorer box model bug:
CSS Box Dimensions: width = 352px
height = 252px
CSS Box Take care:  width=100%
Any margin, padding, or border will damage the layout

More Related Content

PPT
Web Development using HTML & CSS
PPT
Css Ppt
PPTX
HTML (Web) basics for a beginner
PDF
Bootstrap
PPT
ODP
Introduction of Html/css/js
PDF
Php introduction
PPTX
Html5 semantics
Web Development using HTML & CSS
Css Ppt
HTML (Web) basics for a beginner
Bootstrap
Introduction of Html/css/js
Php introduction
Html5 semantics

What's hot (20)

PPTX
Introduction to HTML and CSS
PPT
Intro Html
PDF
JavaScript - Chapter 12 - Document Object Model
PDF
jQuery for beginners
PPTX
Lab #2: Introduction to Javascript
PPT
PPTX
Javascript 101
PDF
javascript objects
PPSX
Introduction to Html5
PDF
Html / CSS Presentation
PDF
CSS3 Media Queries
PPT
Javascript
PPTX
CSS Transitions, Transforms, Animations
PDF
Basics of JavaScript
PPTX
Presentation of bootstrap
PPTX
An Overview of HTML, CSS & Java Script
PPT
Html basics
PPTX
HTML Forms
PPSX
Html introduction
PDF
HTML CSS Basics
Introduction to HTML and CSS
Intro Html
JavaScript - Chapter 12 - Document Object Model
jQuery for beginners
Lab #2: Introduction to Javascript
Javascript 101
javascript objects
Introduction to Html5
Html / CSS Presentation
CSS3 Media Queries
Javascript
CSS Transitions, Transforms, Animations
Basics of JavaScript
Presentation of bootstrap
An Overview of HTML, CSS & Java Script
Html basics
HTML Forms
Html introduction
HTML CSS Basics
Ad

Viewers also liked (20)

PPT
Introduction to Cascading Style Sheets (CSS)
ODP
Cascading Style Sheets - Part 02
PPT
Introduction to CSS
PDF
Efficient, maintainable CSS
PPT
How Cascading Style Sheets (CSS) Works
PPTX
1 03 - CSS Introduction
PPT
Css 2010
PDF
Revista Presencia Divina Volumen 5
PDF
Beste sauna in wesseling aus
PDF
Wettbewerbliche Ausschreibung: die Förderprogramme effelux, effeLED und effeS...
PDF
TpM2013: Pascal Bieri, Switzerland Tourism : Les innovations digitales au ser...
PDF
INNONESS - Innovationsmanagement & Business Developmet
PPT
Cascading Style Sheet
PDF
Physica b 08
PDF
Compartilhando o Facebook
PDF
Prospectiva e Foresight - BuzzMedia Jul15
PDF
Brand Dating: How to Pitch and work with Multiple Brands
PPTX
Nested lists in HTML
PPTX
Amplifier &amp; op amp
PPTX
Gain dan operasional amplifier (op amp)
Introduction to Cascading Style Sheets (CSS)
Cascading Style Sheets - Part 02
Introduction to CSS
Efficient, maintainable CSS
How Cascading Style Sheets (CSS) Works
1 03 - CSS Introduction
Css 2010
Revista Presencia Divina Volumen 5
Beste sauna in wesseling aus
Wettbewerbliche Ausschreibung: die Förderprogramme effelux, effeLED und effeS...
TpM2013: Pascal Bieri, Switzerland Tourism : Les innovations digitales au ser...
INNONESS - Innovationsmanagement & Business Developmet
Cascading Style Sheet
Physica b 08
Compartilhando o Facebook
Prospectiva e Foresight - BuzzMedia Jul15
Brand Dating: How to Pitch and work with Multiple Brands
Nested lists in HTML
Amplifier &amp; op amp
Gain dan operasional amplifier (op amp)
Ad

Similar to Cascading Style Sheets - Part 01 (20)

PPTX
Introduction to Html5, css, Javascript and Jquery
PPTX
Introduction to HTML+CSS+Javascript.pptx
PPTX
Introduction to HTML+CSS+Javascript.pptx
PPT
CSS Part I
PPT
HTML & CSS Workshop Notes
PPTX
Html advance
PPTX
HTML-Advance.pptx
PPS
PPTX
GDG On Campus NBNSCOE Web Workshop Day 1 : HTML & CSS
PPT
CSS
PPTX
Introduction to HTML+CSS+Javascript.pptx
PPTX
Introduction to HTML+CSS+Javascript.pptx
PDF
Introduction to HTML-CSS-Javascript.pdf
PPTX
Introduction to Web Development.pptx
PPTX
Introduction to Web Development.pptx
PPTX
Introduction to Web Development.pptx
PPT
SDP_-_Module_4.ppt
PDF
1. Advanced Web Designing (12th IT) (1).pdf
Introduction to Html5, css, Javascript and Jquery
Introduction to HTML+CSS+Javascript.pptx
Introduction to HTML+CSS+Javascript.pptx
CSS Part I
HTML & CSS Workshop Notes
Html advance
HTML-Advance.pptx
GDG On Campus NBNSCOE Web Workshop Day 1 : HTML & CSS
CSS
Introduction to HTML+CSS+Javascript.pptx
Introduction to HTML+CSS+Javascript.pptx
Introduction to HTML-CSS-Javascript.pdf
Introduction to Web Development.pptx
Introduction to Web Development.pptx
Introduction to Web Development.pptx
SDP_-_Module_4.ppt
1. Advanced Web Designing (12th IT) (1).pdf

Recently uploaded (20)

PPTX
An introduction to AI in research and reference management
PPT
UNIT I- Yarn, types, explanation, process
PPTX
CLASS_11_BUSINESS_STUDIES_PPT_CHAPTER_1_Business_Trade_Commerce.pptx
PPTX
Causes of Flooding by Slidesgo sdnl;asnjdl;asj.pptx
PDF
Skskkxiixijsjsnwkwkaksixindndndjdjdjsjjssk
PPTX
Complete Guide to Microsoft PowerPoint 2019 – Features, Tools, and Tips"
PDF
SOUND-NOTE-ARCHITECT-MOHIUDDIN AKHAND SMUCT
PDF
Urban Design Final Project-Context
DOCX
A Contemporary Luxury Villa in Dubai Jumeirah-2.docx
PDF
Integrated-2D-and-3D-Animation-Bridging-Dimensions-for-Impactful-Storytelling...
PDF
Chalkpiece Annual Report from 2019 To 2025
PPTX
rapid fire quiz in your house is your india.pptx
PDF
SEVA- Fashion designing-Presentation.pdf
PPTX
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb
PPTX
Media And Information Literacy for Grade 12
PPTX
2. Competency Based Interviewing - September'16.pptx
PDF
Pongal 2026 Sponsorship Presentation - Bhopal Tamil Sangam
PPTX
DOC-20250430-WA0014._20250714_235747_0000.pptx
PDF
UNIT 1 Introduction fnfbbfhfhfbdhdbdto Java.pptx.pdf
PDF
YOW2022-BNE-MinimalViableArchitecture.pdf
An introduction to AI in research and reference management
UNIT I- Yarn, types, explanation, process
CLASS_11_BUSINESS_STUDIES_PPT_CHAPTER_1_Business_Trade_Commerce.pptx
Causes of Flooding by Slidesgo sdnl;asnjdl;asj.pptx
Skskkxiixijsjsnwkwkaksixindndndjdjdjsjjssk
Complete Guide to Microsoft PowerPoint 2019 – Features, Tools, and Tips"
SOUND-NOTE-ARCHITECT-MOHIUDDIN AKHAND SMUCT
Urban Design Final Project-Context
A Contemporary Luxury Villa in Dubai Jumeirah-2.docx
Integrated-2D-and-3D-Animation-Bridging-Dimensions-for-Impactful-Storytelling...
Chalkpiece Annual Report from 2019 To 2025
rapid fire quiz in your house is your india.pptx
SEVA- Fashion designing-Presentation.pdf
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb
Media And Information Literacy for Grade 12
2. Competency Based Interviewing - September'16.pptx
Pongal 2026 Sponsorship Presentation - Bhopal Tamil Sangam
DOC-20250430-WA0014._20250714_235747_0000.pptx
UNIT 1 Introduction fnfbbfhfhfbdhdbdto Java.pptx.pdf
YOW2022-BNE-MinimalViableArchitecture.pdf

Cascading Style Sheets - Part 01

  • 1. Cascading Style Sheets Hatem Mahmoud [email_address]
  • 5. What is CSS? Every web page is composed of HTML (HyperText Mark-up Language) code that describes the content
  • 6. Example: <p> An <strong> important </strong><font color=&quot;#FFFF00&quot;> paragraph </font> . </p> Displays: An important paragraph . Repetitive and hard to maintain
  • 7. What is CSS? Layers of a web page: Content: Text, images, animation, video, etc.
  • 8. Presentation: How the content will appear to a human through a web browser, text reader, etc.
  • 9. Behavior: Real-time user interaction with the page: validation, sorting, drag-n-drop, etc.
  • 10. What is CSS? CSS separates the presentation from the content
  • 11. Versions 1996 - CSS1 became a W3C recommendation: fonts, alignment, margins, borders, backgrounds, floating, etc.
  • 12. 1998 – CSS2 with advanced features: table cell display, sheets could import others, targeted different output media, etc.
  • 13. Some parts of CSS2 were very difficult to implement, so the W3C decided to revise the specification
  • 14. Versions The name of the revised version was “Cascading Style Sheets, Level 2 Revision 1”
  • 15. References to CSS2 usually mean CSS2.1
  • 16. CSS2.1 is the latest and current revision of the CSS2 specification
  • 17. CSS3 specification is still in draft but some parts have been implemented by some browsers
  • 18. Linking CSS to HTML 1) Inline Styles: Using the style attribute which is supported by every HTML tag: <h1 style=&quot;color:red;&quot;> My Headline </h1> The simplest way but repetitive across multiple HTML elements
  • 19. Linking CSS to HTML 2) Embedded Styles: Using the style tag: <style type=&quot;text/css&quot;> h1{ font-family:Verdana } //all h1 tags .warning{ color:red } //tags with this class #footer{ font-size:10px } //tag with this id </style> <h1> My Header </h1> <p class=”warning” > WARNING </p> <div id=”footer” > eSpace 2008 </div> Repetitive across multiple pages
  • 20. Linking CSS to HTML 2) External Styles: Using separate files: mypage.html <head> <link type= &quot;text/css&quot; href= &quot;nice.css&quot; /> </head> nice.css h1{ font-family:Verdana } .warning{ color:red } #footer{ font-size:10px }
  • 21. Linking CSS to HTML Now, multiple HTML pages can share the same CSS file.
  • 22. Why CSS? Flexible, can be applied in several ways
  • 24. Accessibility to different users with different devices.
  • 25. CSS caching = less bandwidth + fast loading
  • 27. General Syntax Style definition: body{font-family:Verdana; font-size:9pt;}
  • 28. General Syntax Case insensitive
  • 29. Whitespace and line breaks have no semantic value
  • 30. Comments: /* This is a comment */
  • 31. Properties Font: div { color: black; } span { color: #00003D; font-size: 24px; font-family: Verdana, Arial; font-style: italic; font-weight: bold; text-decoration: underline; text-align:justify; ... }
  • 32. Properties Size units ( relative and absolute ): px = Pixels on the screen em = Current font size ex = Height of lowercase &quot;x&quot; mm = Millimeters cm = Centimeters in = Inches (1 inch = 2,54 centimeters) pt = Points (1 point = 1/72 inches) pc = Picas (1 pica = 12 points)
  • 33. Properties Backgrounds: div { background-color: Black; } body { background-image: url(logo.gif); background-color: white; background-attachment: fixed; background-position: right top; background-repeat: no-repeat; } body { background: white url(logo.gif) repeat-x fixed right top; }
  • 34. Selectors 1) Universal selector: * { margin: 0; padding: 0; } 2) Element type selector: span { font-family: Verdana } 3) Class selector: p.big { font-weight: bold; }
  • 35. Selectors 4) ID selector: #menu { font-size: 22pt; } // unique id 5) Attribute selector: input[type=&quot;submit&quot;] { color: blue; }
  • 36. Selectors CSS3 new attribute selectors: a[href ^ =&quot;http:&quot;] { ... } /* matches a elements whose href attribute value starts with &quot;http:&quot; */ img[src $ =&quot;.png&quot;] { ... } /* matches img elements whose src attribute value ends with &quot;.png&quot; */ div[id * =&quot;foo&quot;] { ... } /* matches div elements whose id attribute value contains &quot;foo&quot; */
  • 37. Selectors Grouping: div, p { font-family: Verdana } a img { border: none } ul li ol li { color: blue } #menu a, div li, .note { color: red }
  • 38. Selectors Child selector: ul>li { ... } <ul> <li> <ol> <li> Will not be matched. </li> </ol> </li> </ul>
  • 39. Selectors Adjacent sibling selector: - sibling = has the same parent element - adjacent = immediately following h2+p { ... } <div> <h2> Heading </h2> <p> Will be matched. </p> <p> Will not be matched. </p> </div>
  • 40. Selectors General sibling selector: - sibling = has the same parent element - general = just following h2~p { ... }
  • 41. Selectors Example: h2~p { ... } <p> Will not be matched. </p> <h2> Heading </h2> <p> Will be matched. </p> <div> <p> Will not be matched. </p> </div> <p> Will be matched. </p>
  • 42. Pseudo-classes (implicit) a:link { ... } //Normal a:visited { ... } //Visited a:hover { ... } //Mouse hovers a.menu:hover { ... } a:active { ... } // Clicking textarea:focus { ... } li:first-child { ... } :lang(fr) { ... }
  • 43. Pseudo-classes (implicit) New in CSS3 :nth-child(N) :nth-last-child(N) :nth-of-type(N) :nth-last-of-type(N) :last-child :first-of-type :last-of-type :only-child :only-of-type :root :empty :target :enabled :disabled :checked :not(S)
  • 44. Pseudo-elements (virtual) In CSS1 p :first-letter { ... } p :first-line { ... }
  • 45. Pseudo-elements (virtual) New in CSS2 #breadcrumbs :before { content : &quot;You are here:&quot;; margin-right: 0.5em; } span.centimeters :after { content : &quot;cm&quot;; color: #cccccc; }
  • 46. Pseudo-elements (virtual) New in CSS3 :: selection { ... } //represents a part of the document that’s been highlighted by the user, including text in editable text fields
  • 48. The Cascade Style declarations cascade down to elements from many origins.
  • 49. The cascade combines the importance, origin, specificity, and source order of the style declarations to determine which declaration should be applied to a given element.
  • 51. The Cascade Importance: //Normal declaration p {font-size: 1em} //Important declaration p {font-size: 1em !important ;}
  • 52. The Cascade Importance and origins priorities (low to high): 1. User agent declarations 2. Normal declarations in user style sheets 3. Normal declarations in author style sheets 4. Important declarations in author style sheets 5. Important declarations in user style sheets
  • 53. The Cascade Specificity: When multiple declarations (with the same importance and origin) try to set the same property to an element, the declaration with the most specific selector will take precedence.
  • 54. The Cascade Calculating specificity: 1. Inline styles (highest specificity) 2. Count ID selectors 3. Count class selectors ( .test ), attribute selectors ( [type=&quot;submit&quot;] ), and pseudo-classes ( :hover ) 4. Count element type selectors ( div ) and pseudo-elements ( :first-letter )
  • 55. The Cascade The process of the cascade: 1. For a given property, find all declarations that apply to a specific element. (user agent, author, user-defined). 2. Sort according to levels of importance and origins. 3. Sort declarations with the same level of importance and origin by selector specificity. 4. If declarations have the same level of importance, origin, and specificity, sort them by the order in which they’re specified
  • 56. Inheritance The process by which properties are passed from parent to child elements without explicit definition div { font-size: 20px; } <div> <p> My <em> cool </em> paragraph is <a href=&quot;#&quot;> here </a>. </p> </div>
  • 57. Inheritance Exceptions ( borders, backgrounds, etc.)
  • 58. But you can enforce it: p { background-image: inherit ; }
  • 60. Block vs Inline 1) HTML block-level elements: May contain inline elements and other blocks
  • 61. Begin on new lines
  • 62. Examples: <h1>..<h6> , <p> , <ul> , <ol> , <li> , <table> , <tr> , <th> , <td> , <form> , <select> , <input> , <div> , etc.
  • 63. Block vs Inline 2) HTML Inline (text-level) elements: Must be nested within blocks
  • 64. May contain only text and other inline elements
  • 65. Don't begin on new lines
  • 66. Examples: <em> , <strong> , <a> , <img> , <abbr> , <span> , etc.
  • 67. Block vs Inline Using the display property: #menu li { display: inline ; } #menu a { display: block ; } CSS does not affect the markup: Setting the display property to block for a span element doesn’t allow you to nest an h1 element inside it, because the HTML document type definition forbids that.
  • 68. Browser Work 1) Parsing: The browser reads the markup and builds a document object model (DOM) tree of nodes.
  • 70. Browser Work 2) Rendering: Each node in the DOM tree is rendered as zero or more boxes
  • 71. Inline elements generate inline boxes
  • 72. Block elements generate block boxes
  • 73. CSS Box Box Model (for block-level elements):
  • 74. CSS Box Internet Explorer box model bug:
  • 75. CSS Box Dimensions: width = 352px
  • 77. CSS Box Take care: width=100%
  • 78. Any margin, padding, or border will damage the layout
  • 79. Solutions: 1. Leave with the default value: width=auto (doesn't work with a floated element) 2. Use a fixed width: width=500px 3. Apply the margin, padding, or border to a nested element
  • 80. CSS Box Borders: div { border-style: solid; border-width: 1px; border-color: black; } div { border: dashed 1px black; } div { border-left: dotted 1px black; }
  • 81. CSS Box Margins and paddings: div { margin: 10px } div { padding-right: 10px } div { margin: 10px 5px 0 3px } //top right bottom left div { padding: 10px 5px 3px } //top right-left bottom div { margin: 10px 3px } //top-bottom right-left
  • 82. CSS Box Collapsing margins :
  • 83. when the vertical margins of two elements are touching, only the margin of the element with the largest margin value will be honored
  • 84. If one element has a negative margin, the margin values are added together
  • 85. If both are negative, the greater negative value is used.
  • 86. CSS Box Example : h1 { margin: 0 0 25px 0; } p { margin: 20px 0 0 0; } <h1> Heading Content </h1> <p> Paragraph content </p>
  • 87. CSS Box To avoid collapsing, use a border or padding: h1 { margin: 0; } div { margin: 40px 0 0 0; border: 1px solid #000; } p { margin: 20px 0 0 0; } <h1> Heading Content </h1> <div> <p> Paragraph content </p> </div>
  • 88. Positioning The CSS position property takes the values: static The default position in the page flow relative Relative to its normal position in the flow absolute Relative to its containing block (the first ancestor that is not static ) fixed Relative to the browser window (regardless of scrolling) To change the position of a box, use the top, left, bottom, right properties (no effect with static )
  • 89. Positioning Boxes are positioned in three dimensions
  • 90. To change the stack level, use z-index (default value is 0 ) img.bg{ position: absolute ; left:50px; top:0; z-index: 1 }
  • 91. Floating A floated element is one whose float property has the value right or left (the default is none )
  • 92. Floating an element converts it to a block
  • 93. A floated box is shifted to the left or right as far as possible
  • 94. A floated box must have an explicit width. Otherwise, the results can be unpredictable
  • 95. Floating Elements below a floated element will wrap around it:
  • 96. Floating To avoid this, you can apply the clear property to the following element using: clear:left , clear:right or clear:both p2{ clear: left ; }
  • 97. Interaction If display:none , no box is generated, so float and position are ignored
  • 98. If position:absolute or position:fixed , float is ignored
  • 100. IE Conditional Comments Conditional comments are Microsoft’s recommended mechanism for delivering targeted CSS to Internet Explorer <!--[if IE 7]> <link href=&quot;ie7.css&quot; type=&quot;text/css&quot;> <![endif]--> <!--[if !IE 6]> <p> Other than IE 6 </p> <![endif]-->
  • 101. IE Conditional Comments <!--[if gte IE 6]> <p> Greater than or equal </p> <![endif]--> <!--[if (IE 6)|(IE 7)]> <p> IE 6 or IE 7 </p> <![endif]-->
  • 102. Star Selector Hack Using the * html selector
  • 103. Should apply the rule to any html element that’s the descendant of any other element
  • 104. As html is the root element, it’s never a descendant of any other element
  • 105. IE 6 and earlier versions don't understand this!
  • 106. Star Selector Hack Example: .test {position: fixed;} * html .test {position: absolute;} Only IE 6 and earlier versions will apply the latter rule; other browsers will ignore it
  • 107. Backslash Hack Browsers should ignore a backslash character in a property name: .test { height: 500px; he\ight: 400px; } IE 5.5 and earlier versions will ignore the whole declaration!
  • 108. Underscore Hack Browsers should ignore the declaration of a property that starts with an underscore because it becomes an unknown property: .test { position: fixed; _position: absolute; } IE 6 and earlier versions will ignore the underscore and apply the declaration!
  • 109. Tools
  • 111. Tools Firebug (Firefox extension)
  • 117. Thank You! Hatem Mahmoud [email_address]