In this class we'll review some basics of HTML/CSS, languages for writing content to the web.
A website is a way to present your content to the world, using HTML and CSS to present that content & make it look good.
A paragraph is your content
<p>A paragraph is your content</p>
A paragraph is your content
<tagname>Stuff in the middle</tagname>
<p>This is a sample paragraph.</p>
<br/>
<img/>
<p lang="fr">C'est la vie</p>
<img src="my.picture.jpg"/>
The first thing on an HTML page is the doctype, which tells the browser which version of the markup language the page is using.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.01 Transitional//EN" "http://
www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html>
* The doctype is case-insensitive.
DOCtype, doctype, DocType and DoCtYpe are all valid.
After <doctype>, the page content must be contained between <html> tags.
<!DOCTYPE html>
<html>
</html>
Head: The head contains the title of the page & meta information about the page. Meta information is not visible to the user, but has many purposes, like providing information to search engines.
Body: The body contains the actual content of the page. Everything that is contained in the body is visible to the user.
<!DOCTYPE html>
<html>
<head>
<title>Title of the page </title>
</head>
<body>
The page content here.
</body>
</html>
All elements "nest" inside one another
Nesting is what happens when you put other containing tags inside other containing tags.
For example, you would put the <p> inside of the <body> tags. The <p> is now nested inside the <body>
Whichever element OPENS first CLOSES last
Elements are 'nested' inside the <body> tag.
<body>
<p>A paragraph inside the body tag</p>
</body>
Paragraphs 'nested' inside list items.
<ul>
<li>
<p>A paragraph inside a list item</p>
</li>
</ul>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<p>Paragraph 1</p> <p>Paragraph 2</p> <p>Paragraph 3</p>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
Paragraph 1
Paragraph 2
Paragraph 3
* White space is only for humans. You can write your code with any spacing.
Paragraphs allow you to format your content in a readable fashion.
* You can edit how paragraphs are displayed with CSS
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
* Heading number indicates hierarchy, not size. Think of outlines from high school papers
<p>
Here is a paragraph with <em>emphasized</em> text and <strong>important</strong> text.
</p>
Here is a paragraph with Emphasized text and Important text.
* Notice: em and strong are meant to indicate meaning through style. If you want to have italicized for appearance and not to communicate meaning, you should use CSS.
Links have three components
<a href="http://aureliamoser.com/web-html/#/7" title="Web HTML/CSS">Web Slides</a><
The <a> tag surrounds text or images to turn them into links
Links can have attributes that tell the link to do different actions like open in a new tab, or launch your e-mail program.
<a href="home.html" target="_blank">Link Text</a>
Link opens in a new window/tab with target="_blank"
<a href="mailto:sponsorships@girldevelopit.com">E-mail us!</a>
Adding mailto: directly before the email address means the link will open in the default email program.
"filename.jpg"
"img/filename.jpg"
"http://aureliamoser.com/web-html/#/7"
Images have three components
<img src="https://assets.brandfolder.com/4btx26fz/original/circle-gdi-logo.png"
alt="Girl Develop It logo"/>
* Notice: This tag is our first example of a stand-alone or "self-closing" element.
<p>
Imagine there's no Heaven <br/>
It's easy if you try <br/>
No hell below us <br/>
Above us only sky
</p>
Imagine there's no Heaven
It's easy if you try
No hell below us
Above us only sky
<ul>
<li>List Item</li>
<li>AnotherList Item</li>
</ul>
<ol>
<li>List Item</li>
<li>AnotherList Item</li>
</ol>
Unordered list (bullets)
Ordered list (sequence)
Lists can be used to organize any list of items.
You'd be surprised how often lists are used in web design.
You can add comments to your code that will not be seen by the browser, but only visible when viewing the code.
<!-- Comment goes here -->
Comments can be used to organize your code into sections so you (or someone else) can easily understand your code. It can also be used to 'comment out' large chunks of code to hide it from the browser.
<!-- Beginning of header -->
<div id="header">Header Content </div>
<!-- End of header -->
<!--
<ol>
<li>List Item</li>
<li>Another List Item</li>
</ol>
-->
Tables are a way to represent complex information in a grid format.
Tables are made up of rows and columns.
<table>
<tr>
<th>Head</th>
<th>Head</th>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
</tr>
</table>
Head | Head |
---|---|
Data | Data |
Tables can be styled with CSS to add zebra striping or to highlight important rows/columns.
There are character codes for many different characters in many different languages
CSS = Cascading Style Sheets
CSS is a "style sheet language" that lets you style the elements on your page.
CSS works in conjunction with HTML, but is not HTML itself.
selector {
property: value;
}
A block of CSS is a rule block.
The rule starts with a selector.
It has sets of properties and values.
A property-value pair is a declaration.
Declarations: Property and value of style you plan use on HTML element.
Declarations end with a semicolon
Declarations can be grouped and are surrounded by curly brackets.
selector {
property: value;
property: value;
property: value;
}
p {
property: value;
}
Selects all paragraph elements.
img {
property: value;
}
Selects all image elements.
#footer {
property: value;
}
Selects all elements with an id of "footer".
<p id="footer">Copyright 2011</p>
The associated HTML.
.warning {
color: red;
}
Selects all elements with a class of "warning".
<p class="warning">Run away!</p>
The associated HTML.
p em {
color: yellow;
}
Selects all em elements that are within a paragraph
<p>This is <em>important.</em></p>
The associated HTML.
Awesome, right?
But how do people use this REALLY?
Even though HTML is the structure and CSS is the design, some HTML elements have default styles
Examples include:
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
list-style: none;
Some sizes that are good to know about
Wrappers are a good way to center content if the screen width is wider than your content.
.wrapper{
width: 100%;
max-width:1400px;
margin: 0 auto;
}
Getting our feet wet
<a href = "#section">Go to Section!</a>
<a name= "section"></a>
In addition to applying css to elements, classes and ids, you can apply css on certain events. Most notably, hover
.turn-blue:hover{
background-color: lightblue;
color: grey
}
<div class = "turn-blue">I will only turn blue on hover</div>
I will only turn blue on hover
The world of HTML has progressed beyond Times New Roman and Arial
Yay!
How do we use new and cool fonts?
Use font from outside sources (like Google Web Fonts)
http://www.google.com/webfonts
In our example, we use Audiowide, Quicksand and Lato
<link href="http://fonts.googleapis.com/css?family=Audiowide|Quicksand:300,400,700|Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic" rel="stylesheet" type="text/css">
What does that do?
Download fonts locally
In our example, we downloaded 'Entypo'
To use it, add the following to css:
@font-face {
font-family: 'EntypoRegular';
src: url('font/Entypo-webfont.eot');
src: url('font/Entypo-webfont.eot?#iefix') format('embedded-opentype'),
url('font/Entypo-webfont.woff') format('woff'),
url('font/Entypo-webfont.ttf') format('truetype'),
url('font/Entypo-webfont.svg#EntypoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
Using the fonts
body{
font-family: 'Lato', Arial, sans-serif;
}
Use your new-found knowledge!
Formally, HTML5 is the W3C’s specification for the next version of HTML.
Informally, people use "HTML5" to refer to a whole set of new web standards and abilities:
Too much to cover in our time together
But here are some highlights:
Gives some old elements semantic meaning and separates them from presentation (e.g. b, i, strong, em)
<!DOCTYPE html>
Minimum information required to ensure that a browser renders using standards mode
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
The use of HTML markup to reinforce the semantics, or meaning, of the information in webpages rather than merely to define its presentation (look).-Wikipedia
Give meaning to structure
<div id="header"></div>
<div class="nav"></div>
<div id="footer"></div>
<header></header>
<nav></nav>
<footer></footer>
<body>
<div id="header">
<h1>Hi, I'm a header!</h1>
<div id="nav">
<ul>
<li><a href="foo">foo</a></li>
<li><a href="bar">bar</a></li>
</ul>
</div>
</div>
<div id="main">
<div class="article">foo</div>
<div class="article">bar</div>
</div>
<div id="footer">Hi, I'm a footer!</div>
</body>
<body>
<div id="header">
<h1>Hi, I'm a header!</h1>
<div id="nav">
<ul>
<li><a href="foo">foo</a></li>
<li><a href="bar">bar</a></li>
</ul>
</div>
</div>
<div id="main">
<div class="article">foo</div>
<div class="article">bar</div>
</div>
<div id="footer">Hi, I'm a footer!</div>
</body>
also known as div-itis
<body>
<header>
<h1>Hi, I'm a header!</h1>
<nav>
<ul>
<li><a href="http://www.foo.com">foo</a></li>
<li><a href="http://www.bar.com">bar</a></li>
</ul>
</nav>
</header>
<section>
<article>foo</article>
<article>bar</article>
</section>
<footer>Hi, I'm a footer!</footer>
</body>
It also helps treat the plague of div-itis!
HTML5 IE enabling script
<!--[if lt IE 9]>
<script src="html5shiv.js"></script>
<![endif]-->
polyfill (n): a JavaScript shim that replicates the standard API for older browsers
Modify the site to use semantic HTML