Transcript Document
3 Layers of a Web Page
Content/Structure - HTML
2. Presentation - CSS
3. Action/Behavioral - JavaScript
1.
Technically, there are 4 layers
Content Layer
◦ Text and foreground images
Structural Layer
◦ HTML
Presentational Layer
◦ CSS
Action/Behavioral Layer
◦ JavaScript
But these two…
Content Layer
◦ Text and foreground images
Structural Layer
◦ HTML
…are hard to separate
Most books present only 3
HTML to structure the content
CSS used to decorate HTML structures
JavaScript to manipulate HTML
structures
Hypertext Markup Language
A set of markup tags with syntax rules
Unlike a programming language, you
cannot describe actions or logic
You can only describe information
structure and context
HTML tags
Also called HTML Elements
<element> Content goes here </element>
<tag attribute=“value”> Content </tag>
<p style=“text-align: center” id=“abstract”>
This the abstract of a paper </p>
HTML Elements
Can be nested and viewed as a tree
(Document Object Model – DOM Tree)
<p>This is a paragraph. This is
<b>bold</b>. This is <i>italic</i></p>
p
This is a paragraph. This is
b
bold
This is
i
italic
CSS: Cascading Style Sheets
CSS was part of Tim Berners-Lee’s
original design for HTML.
but its use was almost entirely abandoned
between 1996 and 2003.
CSS: Cascading Style Sheets
Used to define appearance of HTML
elements
◦
◦
◦
◦
◦
◦
◦
height, width
font-size
text-align
color
border,
margins, padding,
background-images, etc.
CSS: Cascading Style Sheets
Web pages can have multiple style sheets
◦ Main styles
◦ Special purpose styles
Tags can have conflicting styles
◦ One style sheet specifies
p { font-weight: bold; }
◦ The other specifies
p {font-weight: normal; }
CSS: Cascading Style Sheets
Cascading refers to how conflicting style
rules are resolved.
◦ Priority is given to the most specific rules
cascade down to the less specific rules.
◦ Priority is also given to rules that are “closer”
to the content
embedded and inline styles override global or
attached styles.
HTML & CSS together as friends
HTML was supposed to be a structural or
“semantic” language,
◦ But, The Browser Wars of the 90’s lead to the
introduction of “style” or formatting tags
Example <font> tag
◦ “style” tags are problematic and have been
removed from the HTML standards (called
deprecation).
Why are “style” tags bad?
Content and Appearance should be
separate
Otherwise you create redundant code
that is hard to maintain.
◦ Duplication instead of reuse
Semantic vs Style
Semantic =
Has Meaning
Style =
Specifies
Appearance
Semantic vs Style
Semantic Meaning
figcaption {
font-family: Arial;
size: 14pt;
color: blue;
}
<figure>
<img src=“tiger.jpg“ >
<figcaption>
This is a tiger
</figcaption>
</figure>
A figcaption is meaningful.
Figures typically have a caption
that describes the figure.
Style Appearance
<img src=“tiger.jpg">
<font face=“Arial”
size=“3” color=“blue”>
This is a tiger
</font>
Here, we specify how to display
the caption’s font
But there is no way to know
that “This is a tiger” is the
caption for a figure.
CSS + HTML allows you to reuse
styles
figcaption {
font-family: Arial;
size: 14pt;
color: blue;
}
<figcaption>Caption 1</figcaption>
…
<figcaption>Caption 2</figcaption>
…
<figcaption>Caption 3</figcaption>
…
<figcaption>Caption 99</figcaption>
…
Duplication instead of reuse
<font
<font
<font
<font
…
<font
face=“Arial” size=“3” color=“blue”> Caption 1 </font>
face=“Arial” size=“3” color=“blue”> Caption 2 </font>
face=“Arial” size=“3” color=“blue”> Caption 3 </font>
face=“Arial” size=“3” color=“blue”> Sub-title 1</font>
face=“Arial” size=“3” color=“blue”> Caption 999 </font>
<font face=“Arial” size=“3” color=“blue”> Sub-title 99</font>
Image if you wanted to change the font size to 2 for all
captions but not the Sub-titles?
General Structure
Example
<element>Content</element>
<h1>ESPN</h1>
element {
property: value;
property: value;
…
}
h1 {
font-size: 10pt;
color: red;
}
HTML & CSS syntax
Extensible HTML XHTML
XHTML is a reformulation of HTML according
to XML standards.
Only four differences
1. Inclusion of an XML header
2. Single tags end with />, instead of just >
3. Attribute values must have quotes: “value”
4. Tags must be in lowercase
Why use XHTML?
Allows your web page to be parsed by a
general XML parser.
◦ Lots of applications support XML parsing.
XHTML Rules
<elementname> Content </elementname>
In XHTML all element names must be lower
case.
◦ In HTML tag case didn’t matter.
In XHTML all element must have a closing tag
◦ Most web browsers are forgiving about closing tags,
which makes it possible to forget about them
◦ Example <p>Here is paragraph with no ending tag
<p>Here is another paragraph</p>
HTML single tags
HTML has a few tags that are standalone,
i.e., no closing tag.
Image: <img src=“imagename.jpg”>
Line break: <br>
Link: <link type="text/css”>
◦ Used to link/insert a Cascading Style Sheet
XHTML single tags
1.
2.
3.
To meet XML guidelines HTML single tags
must to closed with a />
Image: <img src=“imagename.jpg” />
Line break: <br />
Link: <link type="text/css" />
Note the space before the />
Attributes
<element attribute=“value”> content
</element>
XHTML requires that all attribute values be
enclosed in quotes.
HTML: <img src=tiger.jpg>
XHTML: <img src=“tiger.jpg” />
Forgiving browsers don’t care about the quotes
Browsers ignore whitespace
HTML documents are text documents.
When web browsers render a web page, they
ignore tabs, spaces and line breaks
◦ Allows web designer to format HTML code without
having an effect on the web page’s rendered
appearance.
Tabs, spaces, and line breaks should be added
with CSS, not HTML.
Basic HTML document
<html>
<head>
<title> Title Displays in Browser’s Top Bar </title>
<link type="text/css" href=“style.css" rel="stylesheet"/>
</head>
<body>
Page content here
</body>
</html>
Text Structure (blocks)
<h1>Most Important Header</h1>
<p>A paragraph in the literal sense.</p>
<h2>Sub-heading</h2>
<h3>Smaller Sub-heading</h3>
…
<h6>Smallest Sub-heading</h6>
Ordered Lists (ol)
Unordered Lists (ul)
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ol>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
Lists
Example
Meaning
<dl>
<dt>Coffee</dt>
<dd>black hot drink</dd>
<dt>Milk</dt>
<dd>white cold drink</dd>
</dl>
dl – definition list
dt – definition term
dd – definition description
Used heavily in early HTML
documents which were
most scientific papers with
lost of definitions and
terms
Terms and Definitions
Text Formatting (style)
<tt> Teletype text </tt>
<i> Italic text </i>
<b> Bold text </b>
<big> Big text </big>
<small> Small text </small>
Text identity (semantic)
<em> Emphasized text </em>
<strong> Strong text </strong>
<dfn> Definition term </dfn>
<code> Computer code text </code>
<samp> Sample computer code </samp>
<var> Variable </var>
<cite> Citation </cite>
Hyperlinks
Called the anchor tag
<a href=“http://www.espn.com”>ESPN</a>
href stands for hypertext reference
What is the element name?
What is the attribute?
What is the attribute’s value
What is the content?
Elements we’ll learn about later
Tables
<table>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
Forms
<form action=“program.php”>
<input type=“text”>
<input type=“submit”>
</form>
Deprecation
Removed from the standard
Most browsers will still render
deprecated tags
◦ However, browsers are not required to
Do not use deprecated tags even though
they may render properly on your
browser.
Divisions and Spans
Divisions <div> used to break your
webpage into logical blocks or boxes
Spans <span> used to create custom inline tags, i.e., within the flow of a
paragraph of text.
Example:
This is paragraph with a table reference.
<span class=“tableref”>Table 2.4</span>
is a lovely table.
HTML5 added
many new semantic tags
<article>
Defines an article
<aside>
Defines content aside from the page content
<details>
Defines additional details that can be hidden
<summary> Defines a visible heading for a <details> element
<figure>
Specifies self-contained content, like illustrations,
diagrams, photos, code listings, etc.
<figcaption> Defines a caption for a <figure> element
<footer>
Defines a footer for a document or section
<header>
Defines a header for a document or section
<nav>
Defines navigation links
<section>
Defines a section in a document
For Text Elements
For Block Elements
font-family,
size,
text-align,
weight,
sytle,
variant,
line-height,
indent,
direction
height,
width,
margins,
padding,
borders,
border-color,
border-style,
background color,
background image.
CSS Attributes
JavaScript
In the 90’s Sun Microsystems failed to
copyright “Java.”
Netscape (popular early browser),
developed a browser scripting language
and called it JavaScript to capitalize on
Java’s emerging popularity
JavaScript does NOT resemble Java in any
way!
JAVASCRIPT
EXAMPLE
JavaScript Basics
Interpreted language
◦ Web browsers are JavaScript interpreters
◦ Only web server (Node.js) can interpret
JavaScript
JavaScript is embedded in a <script> tag
HTML includes action/event attributes
that work nicely with JavaScript
◦ <button onclick=“myFunction()”>
JavaScript Fundamentals
Allows web pages to be interactive
◦ Web pages can change as the user moves the
mouse, clicks or types.
HTML includes form elements
◦ buttons, text boxes, selection menus, etc. that
work nicely with JavaScript
HTML5 includes a canvas element
◦ JavaScript can draw objects on the canvas that
the user can interact with.