SlideShare a Scribd company logo
Studio 4: CSS

  Prof. Alvarado
MDST 3703/7703
20 September 2012
Business
• Quizzes due Thursday at midnight
  – Will extend if the WordPress server goes
    down again
• 90 mins …
  – But some flexibility
  – Two hours is the hard limit
• Plan to have graded by next week
Responses from Last Studio
• “Should I continue to break the divisions
  down into sentences? What would happen if
  you broke it down into individual words? If I
  were to further break it down, how could
  this be useful for me? What could I do with
  it?”
  – See the Charrette Project
Turning words into elements
Responses
• How can the word “broken,” with the
  quotation marks around it, mean anything?
  Is there somewhere that I can go in and
  signify what each classification means? Will
  my signifying what it means change
  anything about the html document? I feel
  like I am seeing one side of the process. Is
  there another side to it?
  – Classes provide “hooks” that can be used to
    define styles and behaviors
Responses
• In simple recreation exists a form of
  democratization of information
  – Remediation as appropriation
• I am still confused about what SPAN and DIV
  actually do
  – These are just generic structural elements
  – DIVs are blocks, SPANs are in-line
• Where/when do you define what a “chapter-
  name” actually looks like
  – In CSS or JavaScript …
Responses
• Under content is where the actual tags of
  paragraph and quote come into play, which
  also confuses me because I typically think
  of those aspects as belonging under
  structure, since they don’t relate to the
  meaning, or maybe even layout since they
  help format the page.
  – Paragraphs and quotes are structure
  – Content comprises the actual words and
    letters (the “character data”)
Responses
• I feel like I need a crash course in HTML
  before I can handle the fast pace of this class
  – It should feel weird at first!
  – No need to internalize all of HTML
  – We are learning the logic of markup
• I thought we were using HTML on JEdit
  which is supposed to be non-linear and non-
  hierarchical, but we have also been using XML
  which is very hierarchical
  – Yes, non-linear and hierarchical patterns are
    mixed up in real life
The Document Stack

CONTENT (TEXT)   ASCII, Unicode, etc.


 STRUCTURE              XML


STYLE / LAYOUT          CSS
STRUCTURE,
represented by HTML
LAYOUT, as interpreted by
Chrome
LAYOUT, with CSS (as
interpreted by Chrome)
CSS
• Stands for “Cascading Style Sheets”
• Allows you to add styles to HTML
  – and XML in general
  – Browsers know how to apply CSS styles to
    documents
• “Style” includes things like
  –   Font characteristics
  –   Line characteristics
  –   Background colors and images
  –   Position of things on a page
How does it work?
CSS is language that associates
 style directives with document
            elements

A style directive is something like
 “make the font size 12 points”

To do this, CSS needs an efficient
    way to describe document
             elements
The DOM
• The elements in a document marked up in
  HTML are stored in a a tree called the
  DOM
  – Document Object Model
• The browser can do this because HTML
  follows the OHCO model
• CSS uses the DOM to specify elements
In the DOM, every element has an address
that can be expressed as a string
                                e.g. html/body/h1
Think of this as the element‟s ancestry
Let’s look at an example …
<html>
  <head>
   <title>I’m an HTML document</title>
  </head>
  <body>
   <h1>Here is the first header</h1>
   <p>Here is some conent</p>
  </body>
</html>




            Standard HTML Doc
<html>
  <head>
   <title>I’m an HTML document</title>
  </head>
  <body>
   <h1>Here is the first header</h1>
   <p>Here is some content:</p>
   <div>
   Here is some special content that I
  want to make bigger.
   </div>
  </body>
</html>         Standard HTM
<html>
  <head>
   <title>I’m an HTML document</title>
  </head>
  <body>
   <h1>Here is the first header</h1>
   <p>Here is some content:</p>
   <h1>
   Here is some special content that I
  want to make bigger.
   </h1>
  </body>
</html>        What not to do!
<html>
  <head>
   <title>I’m an HTML document</title>
  </head>
  <body>
   <h1>Here is the first header</h1>
   <p>Here is some conent</p>
   <div style=“font-size:14pt;">
   Here is some special content that I
  want to make bigger.
   </div>
  </body>
</html>        Instead, use CSS
<title>I’m an HTML document</title>
 <style type="text/css">
 div {
   font-size:14pt;      Better yet,
   font-weight:bold;
 }
                       put CSS here
 </style>
</head>
<body>
 <h1>Here is the first header</h1>
 <p>Here is some conent</p>
 <div>
 Here is some special content that I
want to make bigger.
 </div>
<title>I’m an HTML document</title>
 <style type="text/css">
 .foo {
   font-size:14pt;
   font-weight:bold;     Or using a
 }                     class attribute
 </style>
</head>
<body>
 <h1>Here is the first header</h1>
 <p>Here is some conent</p>
 <div class=“foo”>
 Here is some special content that I
want to make bigger.
 </div>
<html>
  <head>
   <title>I’m an HTML document</title>
   <link rel=“stylesheet” type=“text/css”
  href=“default.css” />
  </head>
  <body>    Even better: CSS in linked file
   <h1>Here is the first header</h1>
   <p>Here is some conent</p>
   <div>
   Here is some special content that I want
  to make bigger.
   </div>
  </body>
</html>
default.css
.foo {
  font-size:14pt;
  font-weight:bold;
}



 This is what the content of the
 default.css file would look like.
CSS Syntax: Selectors
.foo {
  font-size:14pt;
  font-weight:bold;
}


        The “selector” indicates what
        elements the styles apply to. Can
        address element names, classes,
        and ID. This uses the DOM.
CSS Syntax: Selectors
                      Here the selector
#foo {                finds an element with
  font-size:14pt;     an ID attribute with
                      the value “foo” …
  font-weight:bold;
}

e.g. <div id=“foo”>Hey.</div>
Example selectors
p   Any p element
p.foo Any p element with a class of foo
.foo Any element with a class of foo
#foo The element with an id of foo
CSS Selectors and the DOM
X                           Y is descendant of X
     Elements of type X    X>Y
#X                          Y is child
     Element with ID X     X+Y
.X                          Y follows X
     Elements of Class X   X~Y
*                           Y immediately follows
     Every element
XY
CSS Selectors and Attributes
X[title]                   href ends with
  X has title            X[data-*="foo"]
X[href=“foo”]              Attribute matches
  X has href of „foo‟    X[foo~="bar"]
X[href*=”foo"]             Attribute among
  href contains „foo‟        values
                           e.g. attr=“v1 v2 v3”
X[href^="http"]
  href begins with ...
X[href$=".jpg”]
CSS Selectors and Pseudo Elements
X:link               X:before
  unclicked anchor   X:after
X:visited              Before and after the
  clicked anchor         element
X:hover                Works with the
                         content property
  on mouse hover
                       E.g. content:”foo”;
X:checked
  checked input
CSS Selectors: Double Colon
• X::first-letter
• X::first-line
CSS Syntax: Declarations
.foo {
  font-size:14pt;
  font-weight:bold;
}
          The “declarations” specify
          properties and values to apply to
          the element.

      Format = property-name:
               value;
Example Directives
font-family: Georgia, Garamond, serif;
color: blue;
color: #eeff99;
background-color: gray;
border: 1px solid black;
CSS Box Model
Basic Idea
• A CSS file is just a series of “rules” that
  associated styles with elements
• A CSS rule has two parts
  – A selector to identify elements (tag name,
    class, id)
  – One or more declarations of style
• CSS rules have a simple syntax
  – Selectors followed by curly braces
  – Key/value pairs separated by colons
  – Rules separated by semi-colons
Basic idea
• You can apply any number of rules to a
  document
• Rules may appear in attributes, headers, or
  external files
• Rules are “cascaded”
  – Later ones inherit previous ones
  – Later ones have precedence (can
    overwrite) earlier ones
Exercise
• Let’s try to format out Persuasion
• Go to blog post for today’s studio

More Related Content

What's hot (20)

PPTX
Ifi7174 lesson1
Sónia
 
PPTX
Ifi7174 lesson2
Sónia
 
PPT
Introduction to HTML
Abzetdin Adamov
 
PPTX
About Best friends - HTML, CSS and JS
Naga Harish M
 
PPTX
Css ppt
Nidhi mishra
 
PPTX
Concept of CSS unit3
Dr. SURBHI SAROHA
 
PPTX
Complete Lecture on Css presentation
Salman Memon
 
PPTX
FFW Gabrovo PMG - CSS
Toni Kolev
 
PPTX
Introduction to HTML and CSS
danpaquette
 
PDF
Modular HTML, CSS, & JS Workshop
Shay Howe
 
PPTX
Concept of CSS part 2
Dr. SURBHI SAROHA
 
PDF
CSS: a rapidly changing world
Russ Weakley
 
PPTX
uptu web technology unit 2 Css
Abhishek Kesharwani
 
PPTX
Beginners css tutorial for web designers
Singsys Pte Ltd
 
PDF
Html
Kamal Acharya
 
PPTX
CSS Basics part One
M Ashraful Islam Jewel
 
PDF
CSS - OOCSS, SMACSS and more
Russ Weakley
 
PPTX
Responsive web design with html5 and css3
Divya Tiwari
 
Ifi7174 lesson1
Sónia
 
Ifi7174 lesson2
Sónia
 
Introduction to HTML
Abzetdin Adamov
 
About Best friends - HTML, CSS and JS
Naga Harish M
 
Css ppt
Nidhi mishra
 
Concept of CSS unit3
Dr. SURBHI SAROHA
 
Complete Lecture on Css presentation
Salman Memon
 
FFW Gabrovo PMG - CSS
Toni Kolev
 
Introduction to HTML and CSS
danpaquette
 
Modular HTML, CSS, & JS Workshop
Shay Howe
 
Concept of CSS part 2
Dr. SURBHI SAROHA
 
CSS: a rapidly changing world
Russ Weakley
 
uptu web technology unit 2 Css
Abhishek Kesharwani
 
Beginners css tutorial for web designers
Singsys Pte Ltd
 
CSS Basics part One
M Ashraful Islam Jewel
 
CSS - OOCSS, SMACSS and more
Russ Weakley
 
Responsive web design with html5 and css3
Divya Tiwari
 

Viewers also liked (18)

PPTX
Mdst3703 2013-09-12-semantic-html
Rafael Alvarado
 
PPTX
UVA MDST 3703 Studio 01 2012-08-30
Rafael Alvarado
 
PPTX
UVA MDST 3703 2013 08-27 Introduction
Rafael Alvarado
 
PPTX
Mdst3703 2013-10-08-thematic-research-collections
Rafael Alvarado
 
PPTX
MDST 3703 F10 Seminar 14
Rafael Alvarado
 
PPTX
Mdst3703 maps-and-timelines-2012-11-13
Rafael Alvarado
 
PPTX
Mdst3703 shiva-2012-10-18
Rafael Alvarado
 
PPTX
Mdst3705 2013-02-12-finding-data
Rafael Alvarado
 
PPTX
MDST 3705 2012-03-05 Databases to Visualization
Rafael Alvarado
 
PPT
Hd Overview
Rafael Alvarado
 
PPTX
Mdst3703 graph-theory-11-20-2012
Rafael Alvarado
 
PPTX
Mdst 3559-01-27-data-journalism-studio
Rafael Alvarado
 
PPTX
MDST 3703 F10 Studio 12
Rafael Alvarado
 
PPTX
Mdst 3559-02-22-sql1
Rafael Alvarado
 
PPTX
UVA MDST 3703 The Stack of Scholarship 2012-09-24
Rafael Alvarado
 
PPTX
Mdst3705 2013-02-26-db-as-genre
Rafael Alvarado
 
PPTX
MDST 3703 F10 Studio 2
Rafael Alvarado
 
PPTX
Mdst 3559-02-15-php
Rafael Alvarado
 
Mdst3703 2013-09-12-semantic-html
Rafael Alvarado
 
UVA MDST 3703 Studio 01 2012-08-30
Rafael Alvarado
 
UVA MDST 3703 2013 08-27 Introduction
Rafael Alvarado
 
Mdst3703 2013-10-08-thematic-research-collections
Rafael Alvarado
 
MDST 3703 F10 Seminar 14
Rafael Alvarado
 
Mdst3703 maps-and-timelines-2012-11-13
Rafael Alvarado
 
Mdst3703 shiva-2012-10-18
Rafael Alvarado
 
Mdst3705 2013-02-12-finding-data
Rafael Alvarado
 
MDST 3705 2012-03-05 Databases to Visualization
Rafael Alvarado
 
Hd Overview
Rafael Alvarado
 
Mdst3703 graph-theory-11-20-2012
Rafael Alvarado
 
Mdst 3559-01-27-data-journalism-studio
Rafael Alvarado
 
MDST 3703 F10 Studio 12
Rafael Alvarado
 
Mdst 3559-02-22-sql1
Rafael Alvarado
 
UVA MDST 3703 The Stack of Scholarship 2012-09-24
Rafael Alvarado
 
Mdst3705 2013-02-26-db-as-genre
Rafael Alvarado
 
MDST 3703 F10 Studio 2
Rafael Alvarado
 
Mdst 3559-02-15-php
Rafael Alvarado
 
Ad

Similar to UVA MDST 3073 CSS 2012-09-20 (20)

PDF
Cmsc 100 xhtml and css
MaeEstherMaguadMaralit
 
PPT
CSS Overview
Doncho Minkov
 
PPT
Introduction to CSS
Amit Tyagi
 
PPTX
Ppt of web designing
prab5
 
PPTX
Html-Prabakaran
DrPrabakaranPerumal
 
PPTX
Lab#1 - Front End Development
Walid Ashraf
 
PDF
Introduction to HTML-CSS-Javascript.pdf
DakshPratapSingh1
 
PPTX
CSS
Akila Iroshan
 
PDF
Web Design & Development - Session 2
Shahrzad Peyman
 
PDF
Intro to HTML and CSS - Class 2 Slides
Heather Rock
 
PPTX
Workshop 2 Slides.pptx
DaniyalSardar
 
PPTX
gdg Introduction to HTML-CSS-Javascript.pptx
saurabh45tiwari
 
PPTX
Introduction to HTML-CSS-Javascript.pptx
deepak37877
 
PDF
Basic-CSS-tutorial
tutorialsruby
 
PDF
Basic-CSS-tutorial
tutorialsruby
 
PDF
Basic css-tutorial
mohamed ashraf
 
PDF
Webpage style with CSS
Hemant Patidar
 
PDF
cascading style sheet for web developer.pdf
nawasyt700
 
PDF
HTML2.pdf
202GCET19
 
Cmsc 100 xhtml and css
MaeEstherMaguadMaralit
 
CSS Overview
Doncho Minkov
 
Introduction to CSS
Amit Tyagi
 
Ppt of web designing
prab5
 
Html-Prabakaran
DrPrabakaranPerumal
 
Lab#1 - Front End Development
Walid Ashraf
 
Introduction to HTML-CSS-Javascript.pdf
DakshPratapSingh1
 
Web Design & Development - Session 2
Shahrzad Peyman
 
Intro to HTML and CSS - Class 2 Slides
Heather Rock
 
Workshop 2 Slides.pptx
DaniyalSardar
 
gdg Introduction to HTML-CSS-Javascript.pptx
saurabh45tiwari
 
Introduction to HTML-CSS-Javascript.pptx
deepak37877
 
Basic-CSS-tutorial
tutorialsruby
 
Basic-CSS-tutorial
tutorialsruby
 
Basic css-tutorial
mohamed ashraf
 
Webpage style with CSS
Hemant Patidar
 
cascading style sheet for web developer.pdf
nawasyt700
 
HTML2.pdf
202GCET19
 
Ad

More from Rafael Alvarado (20)

PPTX
Mdst3703 2013-10-01-hypertext-and-history
Rafael Alvarado
 
PPTX
Mdst3703 2013-09-24-hypertext
Rafael Alvarado
 
PPTX
Presentation1
Rafael Alvarado
 
PPTX
Mdst3703 2013-09-17-text-models
Rafael Alvarado
 
PPTX
Mdst3703 2013-09-10-textual-signals
Rafael Alvarado
 
PPTX
Mdst3703 2013-09-05-studio2
Rafael Alvarado
 
PPTX
Mdst3703 2013-09-03-plato2
Rafael Alvarado
 
PPTX
Mdst3703 2013-08-29-hello-world
Rafael Alvarado
 
PPTX
Mdst3705 2013-02-19-text-into-data
Rafael Alvarado
 
PPTX
Mdst3705 2013-02-05-databases
Rafael Alvarado
 
PPTX
Mdst3705 2013-01-29-praxis
Rafael Alvarado
 
PPTX
Mdst3705 2013-01-31-php3
Rafael Alvarado
 
PPTX
Mdst3705 2012-01-22-code-as-language
Rafael Alvarado
 
PPTX
Mdst3705 2013-01-24-php2
Rafael Alvarado
 
PPTX
Mdst3705 2012-01-15-introduction
Rafael Alvarado
 
PPTX
Mdst3703 culturomics-2012-11-01
Rafael Alvarado
 
PPTX
Mdst3703 visualization-2012-10-23
Rafael Alvarado
 
PPTX
Mdst3703 ontology-overrated-2012-10-16
Rafael Alvarado
 
PPTX
Mdst3703 projects-2012-10-11
Rafael Alvarado
 
PPTX
UVA MDST 3703 JavaScript (ii) 2012-10-04
Rafael Alvarado
 
Mdst3703 2013-10-01-hypertext-and-history
Rafael Alvarado
 
Mdst3703 2013-09-24-hypertext
Rafael Alvarado
 
Presentation1
Rafael Alvarado
 
Mdst3703 2013-09-17-text-models
Rafael Alvarado
 
Mdst3703 2013-09-10-textual-signals
Rafael Alvarado
 
Mdst3703 2013-09-05-studio2
Rafael Alvarado
 
Mdst3703 2013-09-03-plato2
Rafael Alvarado
 
Mdst3703 2013-08-29-hello-world
Rafael Alvarado
 
Mdst3705 2013-02-19-text-into-data
Rafael Alvarado
 
Mdst3705 2013-02-05-databases
Rafael Alvarado
 
Mdst3705 2013-01-29-praxis
Rafael Alvarado
 
Mdst3705 2013-01-31-php3
Rafael Alvarado
 
Mdst3705 2012-01-22-code-as-language
Rafael Alvarado
 
Mdst3705 2013-01-24-php2
Rafael Alvarado
 
Mdst3705 2012-01-15-introduction
Rafael Alvarado
 
Mdst3703 culturomics-2012-11-01
Rafael Alvarado
 
Mdst3703 visualization-2012-10-23
Rafael Alvarado
 
Mdst3703 ontology-overrated-2012-10-16
Rafael Alvarado
 
Mdst3703 projects-2012-10-11
Rafael Alvarado
 
UVA MDST 3703 JavaScript (ii) 2012-10-04
Rafael Alvarado
 

Recently uploaded (20)

PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 

UVA MDST 3073 CSS 2012-09-20

  • 1. Studio 4: CSS Prof. Alvarado MDST 3703/7703 20 September 2012
  • 2. Business • Quizzes due Thursday at midnight – Will extend if the WordPress server goes down again • 90 mins … – But some flexibility – Two hours is the hard limit • Plan to have graded by next week
  • 3. Responses from Last Studio • “Should I continue to break the divisions down into sentences? What would happen if you broke it down into individual words? If I were to further break it down, how could this be useful for me? What could I do with it?” – See the Charrette Project
  • 5. Responses • How can the word “broken,” with the quotation marks around it, mean anything? Is there somewhere that I can go in and signify what each classification means? Will my signifying what it means change anything about the html document? I feel like I am seeing one side of the process. Is there another side to it? – Classes provide “hooks” that can be used to define styles and behaviors
  • 6. Responses • In simple recreation exists a form of democratization of information – Remediation as appropriation • I am still confused about what SPAN and DIV actually do – These are just generic structural elements – DIVs are blocks, SPANs are in-line • Where/when do you define what a “chapter- name” actually looks like – In CSS or JavaScript …
  • 7. Responses • Under content is where the actual tags of paragraph and quote come into play, which also confuses me because I typically think of those aspects as belonging under structure, since they don’t relate to the meaning, or maybe even layout since they help format the page. – Paragraphs and quotes are structure – Content comprises the actual words and letters (the “character data”)
  • 8. Responses • I feel like I need a crash course in HTML before I can handle the fast pace of this class – It should feel weird at first! – No need to internalize all of HTML – We are learning the logic of markup • I thought we were using HTML on JEdit which is supposed to be non-linear and non- hierarchical, but we have also been using XML which is very hierarchical – Yes, non-linear and hierarchical patterns are mixed up in real life
  • 9. The Document Stack CONTENT (TEXT) ASCII, Unicode, etc. STRUCTURE XML STYLE / LAYOUT CSS
  • 12. LAYOUT, with CSS (as interpreted by Chrome)
  • 13. CSS • Stands for “Cascading Style Sheets” • Allows you to add styles to HTML – and XML in general – Browsers know how to apply CSS styles to documents • “Style” includes things like – Font characteristics – Line characteristics – Background colors and images – Position of things on a page
  • 14. How does it work?
  • 15. CSS is language that associates style directives with document elements A style directive is something like “make the font size 12 points” To do this, CSS needs an efficient way to describe document elements
  • 16. The DOM • The elements in a document marked up in HTML are stored in a a tree called the DOM – Document Object Model • The browser can do this because HTML follows the OHCO model • CSS uses the DOM to specify elements
  • 17. In the DOM, every element has an address that can be expressed as a string e.g. html/body/h1 Think of this as the element‟s ancestry
  • 18. Let’s look at an example …
  • 19. <html> <head> <title>I’m an HTML document</title> </head> <body> <h1>Here is the first header</h1> <p>Here is some conent</p> </body> </html> Standard HTML Doc
  • 20. <html> <head> <title>I’m an HTML document</title> </head> <body> <h1>Here is the first header</h1> <p>Here is some content:</p> <div> Here is some special content that I want to make bigger. </div> </body> </html> Standard HTM
  • 21. <html> <head> <title>I’m an HTML document</title> </head> <body> <h1>Here is the first header</h1> <p>Here is some content:</p> <h1> Here is some special content that I want to make bigger. </h1> </body> </html> What not to do!
  • 22. <html> <head> <title>I’m an HTML document</title> </head> <body> <h1>Here is the first header</h1> <p>Here is some conent</p> <div style=“font-size:14pt;"> Here is some special content that I want to make bigger. </div> </body> </html> Instead, use CSS
  • 23. <title>I’m an HTML document</title> <style type="text/css"> div { font-size:14pt;  Better yet, font-weight:bold; } put CSS here </style> </head> <body> <h1>Here is the first header</h1> <p>Here is some conent</p> <div> Here is some special content that I want to make bigger. </div>
  • 24. <title>I’m an HTML document</title> <style type="text/css"> .foo { font-size:14pt; font-weight:bold; Or using a } class attribute </style> </head> <body> <h1>Here is the first header</h1> <p>Here is some conent</p> <div class=“foo”> Here is some special content that I want to make bigger. </div>
  • 25. <html> <head> <title>I’m an HTML document</title> <link rel=“stylesheet” type=“text/css” href=“default.css” /> </head> <body> Even better: CSS in linked file <h1>Here is the first header</h1> <p>Here is some conent</p> <div> Here is some special content that I want to make bigger. </div> </body> </html>
  • 26. default.css .foo { font-size:14pt; font-weight:bold; } This is what the content of the default.css file would look like.
  • 27. CSS Syntax: Selectors .foo { font-size:14pt; font-weight:bold; } The “selector” indicates what elements the styles apply to. Can address element names, classes, and ID. This uses the DOM.
  • 28. CSS Syntax: Selectors Here the selector #foo { finds an element with font-size:14pt; an ID attribute with the value “foo” … font-weight:bold; } e.g. <div id=“foo”>Hey.</div>
  • 29. Example selectors p Any p element p.foo Any p element with a class of foo .foo Any element with a class of foo #foo The element with an id of foo
  • 30. CSS Selectors and the DOM X Y is descendant of X Elements of type X X>Y #X Y is child Element with ID X X+Y .X Y follows X Elements of Class X X~Y * Y immediately follows Every element XY
  • 31. CSS Selectors and Attributes X[title] href ends with X has title X[data-*="foo"] X[href=“foo”] Attribute matches X has href of „foo‟ X[foo~="bar"] X[href*=”foo"] Attribute among href contains „foo‟ values e.g. attr=“v1 v2 v3” X[href^="http"] href begins with ... X[href$=".jpg”]
  • 32. CSS Selectors and Pseudo Elements X:link X:before unclicked anchor X:after X:visited Before and after the clicked anchor element X:hover Works with the content property on mouse hover E.g. content:”foo”; X:checked checked input
  • 33. CSS Selectors: Double Colon • X::first-letter • X::first-line
  • 34. CSS Syntax: Declarations .foo { font-size:14pt; font-weight:bold; } The “declarations” specify properties and values to apply to the element. Format = property-name: value;
  • 35. Example Directives font-family: Georgia, Garamond, serif; color: blue; color: #eeff99; background-color: gray; border: 1px solid black;
  • 37. Basic Idea • A CSS file is just a series of “rules” that associated styles with elements • A CSS rule has two parts – A selector to identify elements (tag name, class, id) – One or more declarations of style • CSS rules have a simple syntax – Selectors followed by curly braces – Key/value pairs separated by colons – Rules separated by semi-colons
  • 38. Basic idea • You can apply any number of rules to a document • Rules may appear in attributes, headers, or external files • Rules are “cascaded” – Later ones inherit previous ones – Later ones have precedence (can overwrite) earlier ones
  • 39. Exercise • Let’s try to format out Persuasion • Go to blog post for today’s studio