1. HTML & CSS fundamentals
Anne Collet & Boris Rorsvort
by night
Ask for help when needed & have fun!
to build a website :
behind any website
(= the world wide web idea and its protocol HTTP,
both invented by Tim Berners-Lee in 1989 to
"surf" from one document to another one
by clicking on a hyperlink )
(= INTERconnected NETworks)
( = a serie of interconnected servers/computers,
respecting 2 protocols (TCP & IP), invented in 1964
by 2 guys (Vint Cerf & Bob Kahn), working for a research center
of the American army in order to get a decentralized information system)
static website
(aka site vitrine)
+ browser
dynamic website
(aka web application)
+ browser
Page built
( = the front-end part )
content (-> SEO)
+ structure
style / appearance
dynamic behaviour
+ animation
+ usability
HTML is a markup language.
It structures the content of a web page.
In order to design and animate its elements,
we have to tag them first!
<!DOCTYPE html>
<!-- end of file -->
<!DOCTYPE html>
<html>
<!-- your content (text, images,...)
and all the other html tags
to structure this content goes here -->
</html>
<!-- end of file -->
<!DOCTYPE html>
<html>
<head>
<!-- intelligence (meta-data) -->
</head>
<body>
<!-- stuff to be displayed on your web page -->
</body>
</html>
<!-- end of file -->
<!DOCTYPE html>
<html>
<head>
<title>Hello world</title>
<!-- text appearing in the tab + used by Google in its search results -->
<meta charset="utf-8"/>
<!-- to display properly the special characters -->
</head>
<body>
<!-- stuff to display in the page -->
</body>
</html>
<!-- end of file -->
<!DOCTYPE html>
<html>
<head>
<title>Hello world</title>
<!-- Text appearing in the tab + used by Google in its search results -->
<meta charset="utf-8"/>
<!-- To display properly the special characters -->
</head>
<body>
<h1>Hello buddies!</h1>
<!-- Stuff to display in the page -->
</body>
</html>
<!-- end of file -->
<element_name attribute_name="attribute_value">element_content</element_name>
opening tag
closing tag
-------------------------------------------
---------------
result => Le Wagon
QUIZZ:
<h1>[...]</h1> <!-- Only one per page! SEO important -->
<h2>[...]</h2>
<h3>[...]</h3>
<h4>[...]</h4>
<h5>[...]</h5>
<h6>[...]</h6>
titles
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Veritatis laboriosam mollitia autem at ab omnis iure quis
asperiores inventore eos nam aut iusto officiis deserunt
nihil, sequi tempore impedit quae?
</p>
paragraphs
<h2>Shopping List</h2>
<ul>
<li>Milk</li>
<li>Butter</li>
</ul>
<h2>World Cup 2014</h2>
<ol>
<li>Germany</li>
<li>Argentina</li>
<li>Netherlands</li>
<li>Brazil</li>
</ol>
lists
<img src="logo.png" alt="Le Wagon logo"/>
images
<a href="http://www.lewagon.org" target="_blank">Le Wagon</a>
links
<form name="input" action="/subscribe" method="post">
input elements
</form>
forms
<form name="input" action="/subscribe" method="post">
Username: <input type="text" name="firstname">
</form>
input - type: text
<form name="input" action="/subscribe" method="post">
Username: <input type="text" name="firstname"><br>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female
</form>
input - type: radio
<form name="input" action="/subscribe" method="post">
Username: <input type="text" name="firstname"><br>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car
</form>
input - type: checkbox
<form name="input" action="/subscribe" method="post">
Username: <input type="text" name="firstname"><br>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
<input type="submit" value="Submit">
</form>
input - type: submit
we need to configure a server
on the back-end side of our website
to receive and store these user inputs
resources
CSS is used to add some style properties
to specific & properly selected HTML elements
What would this website surfingla.fr look like without any CSS ?
Well, let's neutralise the CSS by deleting the head of the HTML document in the browser inspector!
Here is the result ! Quite different, isn't it ? ; )
For your CSS stylesheet to be taken into account, you need to
add a link to it in the head of the HTML document
/* syntax 1 : color name in English */
body {
color: orange;
}
color
/* syntax 2 : hexadecimal color reference */
body {
color: #FFA500;
}
color
/* syntax 3-a : RGB color reference */
body {
color: rgb(255, 165, 0);
}
color
/* syntax 3-b : RGBA color & opacity reference */
body {
color: rgba(255, 165, 0, 0.8);
}
color
RGBA has a 4th parameter: opacity
(which may vary between 0 and 1)
color tools
text color vs
background color
background image
fonts - family (1)
fonts - family (2)
fonts - family (3)
fonts - size & spacing
fonts - color
fonts - decoration
fonts - alignment
fonts tools
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
textual icons
<h1><i class="fa fa-cutlery"></i> MY RESTAURANT</h1>
graphical icons
You can get these icons both in :
Be careful about the picture/file's size :
too small, it will be blurred;
too big, it will slow down your page load!
=> to compress your pictures: ImageOptim
Select your pictures according to specific criteria (free of rights, landscape, min width 1024 px,...) :
picture size & shape
coding is about practice
divisions and box model
Any modern website...
... is made of <div>
divisions and box model
=> structure your HTML code with <div> elements,
to group all the contents that fits together
divisions and box model
the box model
the box model
syntax and shorcuts
div{
border-top: 1px solid red;
border-right: 2px dotted black;
border-bottom: 1px dashed green;
border-left: 2px dotted black;
}
borders
divisions and box model
div{
background: white;
border: 1px solid lightgrey;
padding: 20px;
margin: 30px;
}
you can make the box structure more visible
by adding some CSS rules on this <div>
id and class
To add some style only to :
id and class
in your HTML file
id and class
1 #logo {
2 width: 30%;
3 }
4
5 .staff {
6 border-radius: 50%;
7 }
in your CSS file
id and class
example
text editor
Sublime Text 3
to work efficiently
browser
+ dev' tools plug-in
Google Chrome
opened
simultanuously
on your screen