SlideShare a Scribd company logo
1 of 40
Rough Timeline of Web
Technologies

1991 HTML

1994 HTML 2

1996 CSS 1 + JavaScript

1997 HTML 4

1998 CSS 2

2000 XHTML 1

2002 Tableless Web
Design

2005 AJAX

2009 HTML 5
HTML5 = Next Generation Features for
Modern Web Development
HTML5 ~= HTML + CSS + JS APIs
HTML5 - HTML

Semantics (New tags, Link Relations,
Microdata)

Accessibility (ARIA roles)

Web Forms 2.0 (Input Fields)

Multimedia (Audio Tag, Video Tag)

2D and 3D drawing (Canvas, WebGL, SVG)
HTML5- JS

Client Side Storage (Web SQL Database, App
Cache, Web Storage)

Communication (Web Sockets, Worker
Workers)

Desktop experience (Notifications, Drag and
Drop API)

Geolocation
HTML5 - CSS

Typography

Visuals

Transitions, transforms and animations
Why HTML 5 if we have HTML 4 !

HTML5 is basically the same as HTML4 but
with some nice additional features.

We don't need to start implementing all HTML5.
HTML5 is still in draft spec (and will be for a
long time)
Is it time to start using HTML5?

Yes and no. There are HTML5 features that we can use today,
but it would be wrong to say than we can use all of HTML5
today. When a given feature has two interoperable
implementations among Firefox, Opera, IE8 and WebKit, it is
OK to use that feature. If a feature hasn’t been implemented
yet, we probably shouldn’t try to use it speculatively.

If our website needs to be accessible from people who are on
IE6, then of course the set of available HTML5 functionality is
quite limited (Heck IE6 barely supports CSS2.1) - but the most
important bits (<video>, <canvas>) have workarounds available.

IE8 beta 2 supports two APIs from HTML5: cross-document
messaging and non-SQL storage.
Need to Discuss on following
points.

What kind of IE6 support does you want? In particular, can you make a site that will have some
more features on "non-IE6 browsers", at the cost of nearly no development time?

What features do you want to use?

Some features bring semantic sugar but are not really worth the hassle - even when
"supported". (<article>, <date>…)

Some features bring (mostly) eye-candy, but absence of support won't usually break your site.
(CSS3 corners, HTML5 forms)

Some features can become the cornerstone of your site (<canvas>, <video>), especially if you
want your site to be accessible from smartphones. (Even with Android getting Flash, I suspect
many users won't activate it if not forced in order to spare battery life)

What features can you afford to use?

Some features degrade extremely gracefully - that is, you don't have any work to do when the
browser offers no support, and people with non-supporting browsers won't even notice that they
are missing on something (HTML5 forms)

Most useful features have relatively widespread workarounds for non-supporting browsers
(mostly IE), generally implemented in Javascript or Flash. (HTML5 stylable markup, CSS3
corners, <video>, <canvas>) - but it will come at a price in site performance and design time.
Back to HTML 5 -:)

HTML5 is the next generation of HTML,
superseding HTML 4.01, XHTML 1.0, and
XHTML 1.1. HTML5 provides new features that
are necessary for modern web applications.

HTML5 is designed to be cross-platform

The mobile web browsers that come pre-
installed on iPhones, iPads, and Android
phones all have excellent support for HTML5.
At last , Microsoft has announced that the
version 9 of Internet Explorer will support some
HTML5 functionality.
Detecting HTML5 features

When your browser renders a web page, it constructs a
Document Object Model (DOM), a collection of objects that
represent the HTML elements on the page. Every element
— every <p>, every <div>, every <span> — is represented
in the DOM by a different object. (There are also global
objects, like window and document, that aren’t tied to
specific elements.)

All DOM objects share a set of common properties, but
some objects have more than others. In browsers that
support HTML5 features, certain objects will have unique
properties. A quick peek at the DOM will tell you which
features are supported.
Detecting HTML5 features ...

There are four basic techniques for detecting whether a
browser supports a particular feature.

Check if a certain property exists on a global object
(such as window or navigator).

Create an element, then check if a certain property
exists on that element.

Create an element, check if a certain method exists on
that element, then call the method and check the value
it returns.

Create an element, set a property to a certain value,
then check if the property has retained its value.
Detecting HTML5 features ...

Modernizr is an open
source, MIT-licensed
JavaScript library that
detects support for
many HTML5 &
CSS3 features.
Detecting HTML5 features ...
Let's look in detail

From the top of HTML page … first element is
“doctype.” tag was introduced by MS for
backword compatibility for HTML pages in IE 5.

Before rendering a page, IE5/Mac looked at the “doctype,” which is typically the first
line of the HTML source (even before the <html> element). Older pages (that relied
on the rendering quirks of older browsers) generally didn’t have a doctype at all.

This idea spread like wildfire, and soon all major browsers had two modes: “quirks
mode” and “standards mode.”

Later Mozilla introduced one more , called ”Almost Standards Mode”.
<!DOCTYPE >
Quirks Mode

In the Quirks mode, browsers violate contemporary Web format specifications in
order to avoid “breaking” pages authored according to practices that were prevalent
in the late 1990s.
Standards Mode

In the Standards mode, browsers try to give conforming documents the specification-
wise correct treatment to the extent implemented in a particular browser. HTML5 calls
this mode the “no quirks mode.”
Almost Standards Mode

Firefox, Safari, Chrome, Opera (since 7.5) and IE8 also have a mode known as
“Almost Standards mode,” that implements the vertical sizing of table cells
traditionally and not rigorously according to the CSS2 specification. HTML5 calls this
mode the “limited quirks mode.”
<! DOCTYPE>

Now where were we?
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
That happens to be one of the 15 doctypes that trigger “standards mode” in all
modern browsers. There is nothing wrong with it. If you like it, you can keep
it. Or you can change it to the HTML5 doctype, which is shorter and sweeter
and also triggers “standards mode” in all modern browsers.
This is the HTML5 doctype:-
<!DOCTYPE html>
That’s it. Just 15 characters. It’s so easy, you can
type it by hand and not screw it up.
Look Again <!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml"
lang="en"
xml:lang="en">

xmlns attribute : - It says that elements in this page are in the XHTML namespace,
http://www.w3.org/1999/xhtml. But elements in HTML5 are always in this namespace,
so you no longer need to declare it explicitly.

Two more attributes:- lang and xml:lang, both define the language of this HTML page.
(en stands for “English.”). Only the lang attribute has any effect in HTML5.

<html lang="en">
Other Link Relations in HTML5

The first child of the root element is usually the <head> element. The <head>
element contains metadata:- information about the page.

<link rel="stylesheet" href="style-original.css" />

rel="archives" “indicates that the referenced document describes a collection of
records, documents, or other materials of historical interest. A blog’s index page
could link to an index of the blog’s past posts with rel="archives".”

rel="author" is used to link to information about the author of the page. This can be a
mailto: address, though it doesn’t have to be. It could simply link to a contact form or
“about the author” page.

rel="external" “indicates that the link is leading to a document that is not part of the
site that the current document forms a part of.” I believe it was first popularized by
WordPress, which uses it on links left by commenters.

Few more … rel="tag",rel="sidebar",rel="search",rel="prefetch",rel="pingback"
,rel="nofollow", rel="noreferrer",rel="license"
New Semantic Elements in
HTML5

<section>
The section element represents a generic document or application section. A section, in this context, is a thematic grouping
of content, typically with a heading. Examples of sections would be chapters, the tabbed pages in a tabbed dialog box,
or the numbered sections of a thesis. A Web site's home page could be split into sections for an introduction, news
items, contact information.

<nav>
The nav element represents a section of a page that links to other pages or to parts within the page: a section with
navigation links. Not all groups of links on a page need to be in a nav element — only sections that consist of major
navigation blocks are appropriate for the nav element. In particular, it is common for footers to have a short list of links
to common pages of a site, such as the terms of service, the home page, and a copyright page. The footer element
alone is sufficient for such cases, without a nav element.

<article>
The article element represents a component of a page that consists of a self-contained composition in a document, page,
application, or site and that is intended to be independently distributable or reusable, e.g. in syndication. This could be
a forum post, a magazine or newspaper article, a Web log entry, a user-submitted comment, an interactive widget or
gadget, or any other independent item of content.

<aside>
The aside element represents a section of a page that consists of content that is tangentially related to the content around
the aside element, and which could be considered separate from that content. Such sections are often represented as
sidebars in printed typography. The element can be used for typographical effects like pull quotes or sidebars, for
advertising, for groups of nav elements, and for other content that is considered separate from the main content of the
page.
New Semantic Elements in
HTML5 ...

<hgroup>
The hgroup element represents the heading of a section. The element is used to group a set of h1–h6 elements when the heading
has multiple levels, such as subheadings, alternative titles, or taglines.

<header>
The header element represents a group of introductory or navigational aids. A header element is intended to usually contain the
section’s heading (an h1–h6 element or an hgroup element), but this is not required. The header element can also be used to
wrap a section’s table of contents, a search form, or any relevant logos.

<footer>
The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically
contains information about its section such as who wrote it, links to related documents, copyright data, and the like. Footers
don’t necessarily have to appear at the end of a section, though they usually do. When the footer element contains entire
sections, they represent appendices, indexes, long colophons, verbose license agreements, and other such content.

<time>
The time element represents either a time on a 24 hour clock, or a precise date in the proleptic Gregorian calendar, optionally with a
time and a time-zone offset.

<mark>
The mark element represents a run of text in one document marked or highlighted for reference purposes.
I know you’re anxious to start using these new
elements … but wait ! Let's know how browsers
handle unknown elements. [ of course IE issue ;) ]

Every browser has a master list of HTML elements that it supports. For
example, Mozilla Firefox’s list is stored in
http://mxr.mozilla.org/seamonkey/source/parser/htmlparser/src/nsElementTable.cp

There are two fundamental problems with unknown elements:-

How should the element be styled? By default, <p> has spacing on the
top and bottom, <blockquote> is indented with a left margin, and <h1> is
displayed in a larger font.

What should the element’s DOM look like? Mozilla’s
nsElementTable.cpp includes information about what kinds of other
elements each element can contain. If you include markup like <p><p>,
the second paragraph element implicitly closes the first one, so the
elements end up as siblings, not parent-and-child. But if you write
<p><span>, the span does not close the paragraph, because Firefox
knows that <p> is a block element that can contain the inline element
<span>. So, the <span> ends up as a child of the <p> in the DOM.
how browsers handle unknown
elements ...

Different browsers answer these questions in different ways.

The first question should be relatively simple to answer: don’t give any special styling to unknown
elements. Just let them inherit whatever CSS properties are in effect wherever they appear on the
page, and let the page author specify all styling with CSS. Unfortunately, Internet Explorer (prior to
version 9) does not allow styling on unknown elements.

<style type="text/css"> article { display: block; border: 1px solid red } </style>
<article><h1>Welcome to Initech</h1> <p>This is your <span>first day</span>.</p></article>

Internet Explorer (up to and including IE 8) will not put a red border around the article.

The second problem is the DOM that browsers create when they encounter unknown elements.
Again, the most problematic browser is Internet Explorer.

If IE doesn’t explicitly recognize the element name, it will insert the element into the DOM as an empty
node with no children. All the elements that you would expect to be direct children of the unknown
element will actually be inserted as siblings instead.
how browsers handle unknown
elements ...

Solution !!?

If you create a dummy <article> element with
JavaScript before you use it in your page,
Internet Explorer will magically recognize the
<article> element and let you style it with CSS.
IE hack for unknown elements
<html>
<head>
<style>
article { display: block; border: 1px solid red }
</style>
<script>document.createElement("article");</script>
</head>
<body>
<article>
<h1>Welcome to Initech</h1>
<p>This is your <span>first day</span>.</p>
</article>
</body>
</html>
IE hack for unknow elements
<!--[if lt IE 9]>
<script>
var e = ("abbr,article,aside,audio,canvas,datalist,details," +
"figure,footer,header,hgroup,mark,menu,meter,nav,output," +
"progress,section,time,video").split(',');
for (var i = 0; i < e.length; i++) {
document.createElement(e[i]);
}
</script>
<![endif]-->
The <!--[if lt IE 9]> and <![endif]--> bits are conditional comments. Internet Explorer interprets them like an
if statement: “if the current browser is a version of Internet Explorer less than version 9, then execute
this block.” Every other browser will treat the entire block as an HTML comment. The net result is that
Internet Explorer (up to and including version 8) will execute this script, but other browsers will ignore
the script altogether. This makes your page load faster in browsers that don’t need this hack.
Dates and Times

<time datetime="2009-10-22" pubdate>October
22, 2009</time>

If you want to include a time too, add the letter
T after the date, then the time in 24-hour
format, then a timezone offset.
<time datetime="2009-10-22T13:59:47-04:00" pubdate>
October 22, 2009 1:59pm EDT
</time>
Pubdate is boolean flag it tells:-
If the <time> element is in an <article> element, it means that this timestamp is
the publication date of the article. If the <time> element is not in an <article>
element, it means that this timestamp is the publication date of the entire
document.
the <canvas> element HTML 5's
Magic

HTML 5 defines the <canvas> element as “a
resolution-dependent bitmap canvas which can
be used for rendering graphs, game graphics,
or other visual images on the fly.” A canvas is a
rectangle in your page where you can use
JavaScript to draw anything you want.

IE* Firefox Safari Chrome Opera
iPhone Android
7.0+ 3.0+ 3.0+ 3.0+ 10.0+ 1.0+
1.0+

Internet Explorer support requires the third-party explorercanvas
http://code.google.com/p/explorercanvas/ library.
canvas

Board-drawing , art , gaming, chart , GUI
presentation

http://spielzeugz.de/html5/liquid-particles.html

http://craftymind.com/factory/html5video/CanvasVid
Back to HTML 5 - JS

New Selectors
var el = document.getElementById('section1'); el.focus();
var els = document.getElementsByTagName('div'); els[0].focus();
var els = document.getElementsByClassName('section'); els[0].focus();

Web Storage
textarea.addEventListener('keyup', function () {
window.localStorage['value'] = area.value;
window.localStorage['timestamp'] = (new Date()).getTime();
}, false);
textarea.value = window.localStorage['value'];
// Content will be available after browser refresh/reopen.
HTML5 - JS

Web SQL Database
var db = window.openDatabase("Database Name", "Database Version");
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM test", [], successCallback, errorCallback);
});

Application Cache API
<html manifest="cache-manifest">
window.applicationCache.addEventListener('checking', updateCacheStatus, false);
CACHE MANIFEST
# version 1
CACHE:-/html5/src/refresh.png,/html5/src/logic.js, /html5/src/style.css,/html5/src/background.png
// Turn off internet connection and refresh
HTML5-JS

Web Workers
main.js:
var worker = new Worker(‘extra_work.js'); worker.onmessage = function(event) { alert(event.data); };
extra_work.js:
/* do some work; when done post message.*/ postMessage(some_data);

Web Sockets
var socket = new WebSocket(location);
socket.onopen = function(event) {
socket.postMessage(“Hello, WebSocket”);
}
socket.onmessage = function(event) { alert(event.data); }
socket.onclose = function(event) { alert(“closed”); }
//Bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP)
socket, designed to be implemented in web browsers and web servers.
HTML5-JS

Notifications
if (window.webkitNotifications.checkPermission() == 0) {
window.webkitNotifications.createNotification(tweet.picture, tweet.title, tweet.text).show();
} else { window.webkitNotifications.requestPermission(); }

Geolocation
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var options = { position: new google.maps.LatLng(lat, lng) }
var marker = new google.maps.Marker(options);
marker.setMap(map);
});
HTML5-HTML Forms
Dedicated UI:
<input type='range' min='0' max='50' value='0' />
<input results='10' type='search' />
<input type='text' placeholder='Search inside' />
Input Validation:
<style> :invalid { background-color: red; } </style>
<input type='color' />
<input type='number' />
<input type='email' />
<input type='tel' />
etc...
Not yet
<meter>,<progress>,<output> etc...
HTML5-HTML

Audio + Video
<audio src="sound.mp3" controls></audio>
document.getElementById("audio").muted = false;
<video src='movie.mp4' autoplay controls></video>
document.getElementById("video").play();
HTML5-CSS

CSS Selectors
Image-like display
Div { display: inline-block; }
Specific attributes
input[type="text"] { background: #eee; }
Negation
:not(.box) {
color: #00c;
}
More specific targetting
h2:first-child { ... }
HTML5-CSS
New font support
@font-face {
font-family: 'LeagueGothic';
src: url(LeagueGothic.otf);
}
Text wrapping
div {
text-overflow: ellipsis;
}
Columns
-webkit-column-count: 1;
-webkit-column-rule: 1px solid #bbb;
Text stroke
div {
-webkit-text-fill-color: black;
-webkit-text-stroke-color: red;
-webkit-text-stroke-width: 0.00px;
}
Opacity
color: rgba(255, 0, 0, 1.00);
background: rgba(0, 0, 255, 0.32);
Rounded corners
border-radius: 0px;
HTML5-CSS
Gradients
background: -webkit-gradient(linear, left top, left
bottom,
from(#00abeb), to(white),
color-stop(0.5, white), color-
stop(0.5, #66cc00))
Shadows
text-shadow: rgba(0, 0, 0, 0.5) 0 7px 7px;
background:
-webkit-gradient(linear, left top, left bottom,
from(rgba(200, 200, 240, 0.86)),
to(rgba(255, 255, 255, 0.86)));
border-radius: 50px;
-webkit-box-reflect: below 10px
-webkit-gradient(linear, left top, left bottom,
from(transparent), to(rgba(255, 255,
255, 0.69)));
Animations
@-webkit-keyframes pulse {
from {
opacity: 0.0;
font-size: 100%;
}
to {
opacity: 1.0;
font-size: 200%;
}
}
div {
-webkit-animation-name: pulse;
}
Browser Support
Check Your Browser

So many tools
Thank You

More Related Content

What's hot

Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationSean Burgess
 
Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)Joseph Lewis
 
SharePoint 2010 Web Standards & Accessibility
SharePoint 2010 Web Standards & AccessibilitySharePoint 2010 Web Standards & Accessibility
SharePoint 2010 Web Standards & AccessibilityMavention
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5Gil Fink
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - IntroductionDavy De Pauw
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introductiondynamis
 
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8Wong Hoi Sing Edison
 
What the heck is HTML 5?
What the heck is HTML 5?What the heck is HTML 5?
What the heck is HTML 5?Simon Willison
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5Sayed Ahmed
 
HTML validation, microformats, jQuery
HTML validation, microformats, jQueryHTML validation, microformats, jQuery
HTML validation, microformats, jQueryJeffrey Barke
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 
A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3Darren Wood
 
Web Components v1
Web Components v1Web Components v1
Web Components v1Mike Wilcox
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overviewJacob Nelson
 
Html5 p resentation by techmodi
Html5 p resentation by techmodiHtml5 p resentation by techmodi
Html5 p resentation by techmoditechmodi_India
 

What's hot (19)

Html5
Html5Html5
Html5
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
 
Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)
 
What is jQuery?
What is jQuery?What is jQuery?
What is jQuery?
 
SharePoint 2010 Web Standards & Accessibility
SharePoint 2010 Web Standards & AccessibilitySharePoint 2010 Web Standards & Accessibility
SharePoint 2010 Web Standards & Accessibility
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - Introduction
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
 
What the heck is HTML 5?
What the heck is HTML 5?What the heck is HTML 5?
What the heck is HTML 5?
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5
 
HTML validation, microformats, jQuery
HTML validation, microformats, jQueryHTML validation, microformats, jQuery
HTML validation, microformats, jQuery
 
Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
 
Intro to html 5
Intro to html 5Intro to html 5
Intro to html 5
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3A practical guide to building websites with HTML5 & CSS3
A practical guide to building websites with HTML5 & CSS3
 
Web Components v1
Web Components v1Web Components v1
Web Components v1
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
Html5 p resentation by techmodi
Html5 p resentation by techmodiHtml5 p resentation by techmodi
Html5 p resentation by techmodi
 

Viewers also liked

Is it time to start using HTML 5
Is it time to start using HTML 5Is it time to start using HTML 5
Is it time to start using HTML 5Ravi Raj
 
Module 17 investigating wireless attacks
Module 17 investigating wireless attacksModule 17 investigating wireless attacks
Module 17 investigating wireless attackssagaroceanic11
 
Module 04 digital evidence
Module 04 digital evidenceModule 04 digital evidence
Module 04 digital evidencesagaroceanic11
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attackssagaroceanic11
 
Module 20 mobile forensics
Module 20 mobile forensicsModule 20 mobile forensics
Module 20 mobile forensicssagaroceanic11
 
Module 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimesModule 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimessagaroceanic11
 
Module 21 investigative reports
Module 21 investigative reportsModule 21 investigative reports
Module 21 investigative reportssagaroceanic11
 
HOMEOPATHIC MEDICINE
HOMEOPATHIC MEDICINEHOMEOPATHIC MEDICINE
HOMEOPATHIC MEDICINEFulvio Toso
 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionTim O'Reilly
 

Viewers also liked (9)

Is it time to start using HTML 5
Is it time to start using HTML 5Is it time to start using HTML 5
Is it time to start using HTML 5
 
Module 17 investigating wireless attacks
Module 17 investigating wireless attacksModule 17 investigating wireless attacks
Module 17 investigating wireless attacks
 
Module 04 digital evidence
Module 04 digital evidenceModule 04 digital evidence
Module 04 digital evidence
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attacks
 
Module 20 mobile forensics
Module 20 mobile forensicsModule 20 mobile forensics
Module 20 mobile forensics
 
Module 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimesModule 19 tracking emails and investigating email crimes
Module 19 tracking emails and investigating email crimes
 
Module 21 investigative reports
Module 21 investigative reportsModule 21 investigative reports
Module 21 investigative reports
 
HOMEOPATHIC MEDICINE
HOMEOPATHIC MEDICINEHOMEOPATHIC MEDICINE
HOMEOPATHIC MEDICINE
 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
 

Similar to Html5 basics

HTML 5 Complete Reference
HTML 5 Complete ReferenceHTML 5 Complete Reference
HTML 5 Complete ReferenceEPAM Systems
 
HTML 5, CSS3 and ASP.NET Best Practices by Example
HTML 5, CSS3 and ASP.NET Best Practices by ExampleHTML 5, CSS3 and ASP.NET Best Practices by Example
HTML 5, CSS3 and ASP.NET Best Practices by ExampleDarren Sim
 
Getting started with html5
Getting started with html5Getting started with html5
Getting started with html5Suresh Kumar
 
Html5 deciphered - designing concepts part 1
Html5 deciphered - designing concepts part 1Html5 deciphered - designing concepts part 1
Html5 deciphered - designing concepts part 1Paxcel Technologies
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
How Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishHow Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishNagamurali Reddy
 
Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Marios Fakiolas
 
Introduction to html5
Introduction to html5Introduction to html5
Introduction to html5Manav Prasad
 
Introduction to html55
Introduction to html55Introduction to html55
Introduction to html55subrat55
 
HTML 5 Fundamental
HTML 5 FundamentalHTML 5 Fundamental
HTML 5 FundamentalLanh Le
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websiteswebsiteunlimited
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5IT Geeks
 

Similar to Html5 basics (20)

Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
HTML 5 Complete Reference
HTML 5 Complete ReferenceHTML 5 Complete Reference
HTML 5 Complete Reference
 
HTML 5, CSS3 and ASP.NET Best Practices by Example
HTML 5, CSS3 and ASP.NET Best Practices by ExampleHTML 5, CSS3 and ASP.NET Best Practices by Example
HTML 5, CSS3 and ASP.NET Best Practices by Example
 
Getting started with html5
Getting started with html5Getting started with html5
Getting started with html5
 
Html5 deciphered - designing concepts part 1
Html5 deciphered - designing concepts part 1Html5 deciphered - designing concepts part 1
Html5 deciphered - designing concepts part 1
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
How Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishHow Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul Irish
 
Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...
 
Html5
Html5Html5
Html5
 
Html5
Html5Html5
Html5
 
Introduction to html5
Introduction to html5Introduction to html5
Introduction to html5
 
Html 5
Html 5Html 5
Html 5
 
Introduction to html55
Introduction to html55Introduction to html55
Introduction to html55
 
HTML 5 Fundamental
HTML 5 FundamentalHTML 5 Fundamental
HTML 5 Fundamental
 
web designing course bangalore
web designing course bangaloreweb designing course bangalore
web designing course bangalore
 
Html5
Html5Html5
Html5
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websites
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 

More from sagaroceanic11

Module 03 searching and seizing computers
Module 03 searching and seizing computersModule 03 searching and seizing computers
Module 03 searching and seizing computerssagaroceanic11
 
Module 01 computer forensics in todays world
Module 01 computer forensics in todays worldModule 01 computer forensics in todays world
Module 01 computer forensics in todays worldsagaroceanic11
 
Virtualisation with v mware
Virtualisation with v mwareVirtualisation with v mware
Virtualisation with v mwaresagaroceanic11
 
Virtualisation overview
Virtualisation overviewVirtualisation overview
Virtualisation overviewsagaroceanic11
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisationsagaroceanic11
 
2 the service lifecycle
2 the service lifecycle2 the service lifecycle
2 the service lifecyclesagaroceanic11
 
1 introduction to itil v[1].3
1 introduction to itil v[1].31 introduction to itil v[1].3
1 introduction to itil v[1].3sagaroceanic11
 
Visual studio 2008 overview
Visual studio 2008 overviewVisual studio 2008 overview
Visual studio 2008 overviewsagaroceanic11
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Presentationrubyonrails 1221891563546619-8
Presentationrubyonrails 1221891563546619-8Presentationrubyonrails 1221891563546619-8
Presentationrubyonrails 1221891563546619-8sagaroceanic11
 
Understanding san ( storage area network )
Understanding san ( storage area network )Understanding san ( storage area network )
Understanding san ( storage area network )sagaroceanic11
 
Understanding nas (network attached storage)
Understanding nas (network attached storage)Understanding nas (network attached storage)
Understanding nas (network attached storage)sagaroceanic11
 

More from sagaroceanic11 (20)

Module 03 searching and seizing computers
Module 03 searching and seizing computersModule 03 searching and seizing computers
Module 03 searching and seizing computers
 
Module 01 computer forensics in todays world
Module 01 computer forensics in todays worldModule 01 computer forensics in todays world
Module 01 computer forensics in todays world
 
Virtualisation with v mware
Virtualisation with v mwareVirtualisation with v mware
Virtualisation with v mware
 
Virtualisation overview
Virtualisation overviewVirtualisation overview
Virtualisation overview
 
Virtualisation basics
Virtualisation basicsVirtualisation basics
Virtualisation basics
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisation
 
6 service operation
6 service operation6 service operation
6 service operation
 
5 service transition
5 service transition5 service transition
5 service transition
 
4 service design
4 service design4 service design
4 service design
 
3 service strategy
3 service strategy3 service strategy
3 service strategy
 
2 the service lifecycle
2 the service lifecycle2 the service lifecycle
2 the service lifecycle
 
1 introduction to itil v[1].3
1 introduction to itil v[1].31 introduction to itil v[1].3
1 introduction to itil v[1].3
 
Visual studio 2008 overview
Visual studio 2008 overviewVisual studio 2008 overview
Visual studio 2008 overview
 
Vb introduction.
Vb introduction.Vb introduction.
Vb introduction.
 
Vb essentials
Vb essentialsVb essentials
Vb essentials
 
Vb basics
Vb basicsVb basics
Vb basics
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Presentationrubyonrails 1221891563546619-8
Presentationrubyonrails 1221891563546619-8Presentationrubyonrails 1221891563546619-8
Presentationrubyonrails 1221891563546619-8
 
Understanding san ( storage area network )
Understanding san ( storage area network )Understanding san ( storage area network )
Understanding san ( storage area network )
 
Understanding nas (network attached storage)
Understanding nas (network attached storage)Understanding nas (network attached storage)
Understanding nas (network attached storage)
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Html5 basics

  • 1. Rough Timeline of Web Technologies  1991 HTML  1994 HTML 2  1996 CSS 1 + JavaScript  1997 HTML 4  1998 CSS 2  2000 XHTML 1  2002 Tableless Web Design  2005 AJAX  2009 HTML 5
  • 2. HTML5 = Next Generation Features for Modern Web Development HTML5 ~= HTML + CSS + JS APIs
  • 3. HTML5 - HTML  Semantics (New tags, Link Relations, Microdata)  Accessibility (ARIA roles)  Web Forms 2.0 (Input Fields)  Multimedia (Audio Tag, Video Tag)  2D and 3D drawing (Canvas, WebGL, SVG)
  • 4. HTML5- JS  Client Side Storage (Web SQL Database, App Cache, Web Storage)  Communication (Web Sockets, Worker Workers)  Desktop experience (Notifications, Drag and Drop API)  Geolocation
  • 6. Why HTML 5 if we have HTML 4 !  HTML5 is basically the same as HTML4 but with some nice additional features.  We don't need to start implementing all HTML5. HTML5 is still in draft spec (and will be for a long time)
  • 7. Is it time to start using HTML5?  Yes and no. There are HTML5 features that we can use today, but it would be wrong to say than we can use all of HTML5 today. When a given feature has two interoperable implementations among Firefox, Opera, IE8 and WebKit, it is OK to use that feature. If a feature hasn’t been implemented yet, we probably shouldn’t try to use it speculatively.  If our website needs to be accessible from people who are on IE6, then of course the set of available HTML5 functionality is quite limited (Heck IE6 barely supports CSS2.1) - but the most important bits (<video>, <canvas>) have workarounds available.  IE8 beta 2 supports two APIs from HTML5: cross-document messaging and non-SQL storage.
  • 8. Need to Discuss on following points.  What kind of IE6 support does you want? In particular, can you make a site that will have some more features on "non-IE6 browsers", at the cost of nearly no development time?  What features do you want to use?  Some features bring semantic sugar but are not really worth the hassle - even when "supported". (<article>, <date>…)  Some features bring (mostly) eye-candy, but absence of support won't usually break your site. (CSS3 corners, HTML5 forms)  Some features can become the cornerstone of your site (<canvas>, <video>), especially if you want your site to be accessible from smartphones. (Even with Android getting Flash, I suspect many users won't activate it if not forced in order to spare battery life)  What features can you afford to use?  Some features degrade extremely gracefully - that is, you don't have any work to do when the browser offers no support, and people with non-supporting browsers won't even notice that they are missing on something (HTML5 forms)  Most useful features have relatively widespread workarounds for non-supporting browsers (mostly IE), generally implemented in Javascript or Flash. (HTML5 stylable markup, CSS3 corners, <video>, <canvas>) - but it will come at a price in site performance and design time.
  • 9. Back to HTML 5 -:)  HTML5 is the next generation of HTML, superseding HTML 4.01, XHTML 1.0, and XHTML 1.1. HTML5 provides new features that are necessary for modern web applications.  HTML5 is designed to be cross-platform  The mobile web browsers that come pre- installed on iPhones, iPads, and Android phones all have excellent support for HTML5. At last , Microsoft has announced that the version 9 of Internet Explorer will support some HTML5 functionality.
  • 10. Detecting HTML5 features  When your browser renders a web page, it constructs a Document Object Model (DOM), a collection of objects that represent the HTML elements on the page. Every element — every <p>, every <div>, every <span> — is represented in the DOM by a different object. (There are also global objects, like window and document, that aren’t tied to specific elements.)  All DOM objects share a set of common properties, but some objects have more than others. In browsers that support HTML5 features, certain objects will have unique properties. A quick peek at the DOM will tell you which features are supported.
  • 11. Detecting HTML5 features ...  There are four basic techniques for detecting whether a browser supports a particular feature.  Check if a certain property exists on a global object (such as window or navigator).  Create an element, then check if a certain property exists on that element.  Create an element, check if a certain method exists on that element, then call the method and check the value it returns.  Create an element, set a property to a certain value, then check if the property has retained its value.
  • 12. Detecting HTML5 features ...  Modernizr is an open source, MIT-licensed JavaScript library that detects support for many HTML5 & CSS3 features.
  • 14. Let's look in detail  From the top of HTML page … first element is “doctype.” tag was introduced by MS for backword compatibility for HTML pages in IE 5.  Before rendering a page, IE5/Mac looked at the “doctype,” which is typically the first line of the HTML source (even before the <html> element). Older pages (that relied on the rendering quirks of older browsers) generally didn’t have a doctype at all.  This idea spread like wildfire, and soon all major browsers had two modes: “quirks mode” and “standards mode.”  Later Mozilla introduced one more , called ”Almost Standards Mode”.
  • 15. <!DOCTYPE > Quirks Mode  In the Quirks mode, browsers violate contemporary Web format specifications in order to avoid “breaking” pages authored according to practices that were prevalent in the late 1990s. Standards Mode  In the Standards mode, browsers try to give conforming documents the specification- wise correct treatment to the extent implemented in a particular browser. HTML5 calls this mode the “no quirks mode.” Almost Standards Mode  Firefox, Safari, Chrome, Opera (since 7.5) and IE8 also have a mode known as “Almost Standards mode,” that implements the vertical sizing of table cells traditionally and not rigorously according to the CSS2 specification. HTML5 calls this mode the “limited quirks mode.”
  • 16. <! DOCTYPE>  Now where were we? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> That happens to be one of the 15 doctypes that trigger “standards mode” in all modern browsers. There is nothing wrong with it. If you like it, you can keep it. Or you can change it to the HTML5 doctype, which is shorter and sweeter and also triggers “standards mode” in all modern browsers. This is the HTML5 doctype:- <!DOCTYPE html> That’s it. Just 15 characters. It’s so easy, you can type it by hand and not screw it up.
  • 17. Look Again <!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">  xmlns attribute : - It says that elements in this page are in the XHTML namespace, http://www.w3.org/1999/xhtml. But elements in HTML5 are always in this namespace, so you no longer need to declare it explicitly.  Two more attributes:- lang and xml:lang, both define the language of this HTML page. (en stands for “English.”). Only the lang attribute has any effect in HTML5.  <html lang="en">
  • 18. Other Link Relations in HTML5  The first child of the root element is usually the <head> element. The <head> element contains metadata:- information about the page.  <link rel="stylesheet" href="style-original.css" />  rel="archives" “indicates that the referenced document describes a collection of records, documents, or other materials of historical interest. A blog’s index page could link to an index of the blog’s past posts with rel="archives".”  rel="author" is used to link to information about the author of the page. This can be a mailto: address, though it doesn’t have to be. It could simply link to a contact form or “about the author” page.  rel="external" “indicates that the link is leading to a document that is not part of the site that the current document forms a part of.” I believe it was first popularized by WordPress, which uses it on links left by commenters.  Few more … rel="tag",rel="sidebar",rel="search",rel="prefetch",rel="pingback" ,rel="nofollow", rel="noreferrer",rel="license"
  • 19. New Semantic Elements in HTML5  <section> The section element represents a generic document or application section. A section, in this context, is a thematic grouping of content, typically with a heading. Examples of sections would be chapters, the tabbed pages in a tabbed dialog box, or the numbered sections of a thesis. A Web site's home page could be split into sections for an introduction, news items, contact information.  <nav> The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links. Not all groups of links on a page need to be in a nav element — only sections that consist of major navigation blocks are appropriate for the nav element. In particular, it is common for footers to have a short list of links to common pages of a site, such as the terms of service, the home page, and a copyright page. The footer element alone is sufficient for such cases, without a nav element.  <article> The article element represents a component of a page that consists of a self-contained composition in a document, page, application, or site and that is intended to be independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a Web log entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content.  <aside> The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography. The element can be used for typographical effects like pull quotes or sidebars, for advertising, for groups of nav elements, and for other content that is considered separate from the main content of the page.
  • 20. New Semantic Elements in HTML5 ...  <hgroup> The hgroup element represents the heading of a section. The element is used to group a set of h1–h6 elements when the heading has multiple levels, such as subheadings, alternative titles, or taglines.  <header> The header element represents a group of introductory or navigational aids. A header element is intended to usually contain the section’s heading (an h1–h6 element or an hgroup element), but this is not required. The header element can also be used to wrap a section’s table of contents, a search form, or any relevant logos.  <footer> The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like. Footers don’t necessarily have to appear at the end of a section, though they usually do. When the footer element contains entire sections, they represent appendices, indexes, long colophons, verbose license agreements, and other such content.  <time> The time element represents either a time on a 24 hour clock, or a precise date in the proleptic Gregorian calendar, optionally with a time and a time-zone offset.  <mark> The mark element represents a run of text in one document marked or highlighted for reference purposes.
  • 21. I know you’re anxious to start using these new elements … but wait ! Let's know how browsers handle unknown elements. [ of course IE issue ;) ]  Every browser has a master list of HTML elements that it supports. For example, Mozilla Firefox’s list is stored in http://mxr.mozilla.org/seamonkey/source/parser/htmlparser/src/nsElementTable.cp  There are two fundamental problems with unknown elements:-  How should the element be styled? By default, <p> has spacing on the top and bottom, <blockquote> is indented with a left margin, and <h1> is displayed in a larger font.  What should the element’s DOM look like? Mozilla’s nsElementTable.cpp includes information about what kinds of other elements each element can contain. If you include markup like <p><p>, the second paragraph element implicitly closes the first one, so the elements end up as siblings, not parent-and-child. But if you write <p><span>, the span does not close the paragraph, because Firefox knows that <p> is a block element that can contain the inline element <span>. So, the <span> ends up as a child of the <p> in the DOM.
  • 22. how browsers handle unknown elements ...  Different browsers answer these questions in different ways.  The first question should be relatively simple to answer: don’t give any special styling to unknown elements. Just let them inherit whatever CSS properties are in effect wherever they appear on the page, and let the page author specify all styling with CSS. Unfortunately, Internet Explorer (prior to version 9) does not allow styling on unknown elements.  <style type="text/css"> article { display: block; border: 1px solid red } </style> <article><h1>Welcome to Initech</h1> <p>This is your <span>first day</span>.</p></article>  Internet Explorer (up to and including IE 8) will not put a red border around the article.  The second problem is the DOM that browsers create when they encounter unknown elements. Again, the most problematic browser is Internet Explorer.  If IE doesn’t explicitly recognize the element name, it will insert the element into the DOM as an empty node with no children. All the elements that you would expect to be direct children of the unknown element will actually be inserted as siblings instead.
  • 23. how browsers handle unknown elements ...  Solution !!?  If you create a dummy <article> element with JavaScript before you use it in your page, Internet Explorer will magically recognize the <article> element and let you style it with CSS.
  • 24. IE hack for unknown elements <html> <head> <style> article { display: block; border: 1px solid red } </style> <script>document.createElement("article");</script> </head> <body> <article> <h1>Welcome to Initech</h1> <p>This is your <span>first day</span>.</p> </article> </body> </html>
  • 25. IE hack for unknow elements <!--[if lt IE 9]> <script> var e = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < e.length; i++) { document.createElement(e[i]); } </script> <![endif]--> The <!--[if lt IE 9]> and <![endif]--> bits are conditional comments. Internet Explorer interprets them like an if statement: “if the current browser is a version of Internet Explorer less than version 9, then execute this block.” Every other browser will treat the entire block as an HTML comment. The net result is that Internet Explorer (up to and including version 8) will execute this script, but other browsers will ignore the script altogether. This makes your page load faster in browsers that don’t need this hack.
  • 26. Dates and Times  <time datetime="2009-10-22" pubdate>October 22, 2009</time>  If you want to include a time too, add the letter T after the date, then the time in 24-hour format, then a timezone offset. <time datetime="2009-10-22T13:59:47-04:00" pubdate> October 22, 2009 1:59pm EDT </time> Pubdate is boolean flag it tells:- If the <time> element is in an <article> element, it means that this timestamp is the publication date of the article. If the <time> element is not in an <article> element, it means that this timestamp is the publication date of the entire document.
  • 27. the <canvas> element HTML 5's Magic  HTML 5 defines the <canvas> element as “a resolution-dependent bitmap canvas which can be used for rendering graphs, game graphics, or other visual images on the fly.” A canvas is a rectangle in your page where you can use JavaScript to draw anything you want.  IE* Firefox Safari Chrome Opera iPhone Android 7.0+ 3.0+ 3.0+ 3.0+ 10.0+ 1.0+ 1.0+  Internet Explorer support requires the third-party explorercanvas http://code.google.com/p/explorercanvas/ library.
  • 28. canvas  Board-drawing , art , gaming, chart , GUI presentation  http://spielzeugz.de/html5/liquid-particles.html  http://craftymind.com/factory/html5video/CanvasVid
  • 29. Back to HTML 5 - JS  New Selectors var el = document.getElementById('section1'); el.focus(); var els = document.getElementsByTagName('div'); els[0].focus(); var els = document.getElementsByClassName('section'); els[0].focus();  Web Storage textarea.addEventListener('keyup', function () { window.localStorage['value'] = area.value; window.localStorage['timestamp'] = (new Date()).getTime(); }, false); textarea.value = window.localStorage['value']; // Content will be available after browser refresh/reopen.
  • 30. HTML5 - JS  Web SQL Database var db = window.openDatabase("Database Name", "Database Version"); db.transaction(function(tx) { tx.executeSql("SELECT * FROM test", [], successCallback, errorCallback); });  Application Cache API <html manifest="cache-manifest"> window.applicationCache.addEventListener('checking', updateCacheStatus, false); CACHE MANIFEST # version 1 CACHE:-/html5/src/refresh.png,/html5/src/logic.js, /html5/src/style.css,/html5/src/background.png // Turn off internet connection and refresh
  • 31. HTML5-JS  Web Workers main.js: var worker = new Worker(‘extra_work.js'); worker.onmessage = function(event) { alert(event.data); }; extra_work.js: /* do some work; when done post message.*/ postMessage(some_data);  Web Sockets var socket = new WebSocket(location); socket.onopen = function(event) { socket.postMessage(“Hello, WebSocket”); } socket.onmessage = function(event) { alert(event.data); } socket.onclose = function(event) { alert(“closed”); } //Bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket, designed to be implemented in web browsers and web servers.
  • 32. HTML5-JS  Notifications if (window.webkitNotifications.checkPermission() == 0) { window.webkitNotifications.createNotification(tweet.picture, tweet.title, tweet.text).show(); } else { window.webkitNotifications.requestPermission(); }  Geolocation if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; var options = { position: new google.maps.LatLng(lat, lng) } var marker = new google.maps.Marker(options); marker.setMap(map); });
  • 33. HTML5-HTML Forms Dedicated UI: <input type='range' min='0' max='50' value='0' /> <input results='10' type='search' /> <input type='text' placeholder='Search inside' /> Input Validation: <style> :invalid { background-color: red; } </style> <input type='color' /> <input type='number' /> <input type='email' /> <input type='tel' /> etc... Not yet <meter>,<progress>,<output> etc...
  • 34. HTML5-HTML  Audio + Video <audio src="sound.mp3" controls></audio> document.getElementById("audio").muted = false; <video src='movie.mp4' autoplay controls></video> document.getElementById("video").play();
  • 35. HTML5-CSS  CSS Selectors Image-like display Div { display: inline-block; } Specific attributes input[type="text"] { background: #eee; } Negation :not(.box) { color: #00c; } More specific targetting h2:first-child { ... }
  • 36. HTML5-CSS New font support @font-face { font-family: 'LeagueGothic'; src: url(LeagueGothic.otf); } Text wrapping div { text-overflow: ellipsis; } Columns -webkit-column-count: 1; -webkit-column-rule: 1px solid #bbb; Text stroke div { -webkit-text-fill-color: black; -webkit-text-stroke-color: red; -webkit-text-stroke-width: 0.00px; } Opacity color: rgba(255, 0, 0, 1.00); background: rgba(0, 0, 255, 0.32); Rounded corners border-radius: 0px;
  • 37. HTML5-CSS Gradients background: -webkit-gradient(linear, left top, left bottom, from(#00abeb), to(white), color-stop(0.5, white), color- stop(0.5, #66cc00)) Shadows text-shadow: rgba(0, 0, 0, 0.5) 0 7px 7px; background: -webkit-gradient(linear, left top, left bottom, from(rgba(200, 200, 240, 0.86)), to(rgba(255, 255, 255, 0.86))); border-radius: 50px; -webkit-box-reflect: below 10px -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(255, 255, 255, 0.69))); Animations @-webkit-keyframes pulse { from { opacity: 0.0; font-size: 100%; } to { opacity: 1.0; font-size: 200%; } } div { -webkit-animation-name: pulse; }