Created by Martin Angelov on Feb 16th, 2010
Web development is an area in which you have to keep up with the latest technologies and techniques, so that you are at the top of your game. And no wonder – this is an area which changes with an amazing pace. What is the standard now will be obsolete in just a couple of years.
But changes do not come from nowhere. The early adopters are already using what we are going to use day-to-day a few years from now. One of these technologies is
HTML5 – the new version of the fundamental language of the web.
Today we are making a
HTML5 web template, using some of the new features brought by CSS3 and jQuery, with the
scrollTo plug-in. As HTML5 is still a work in progress, you can optionally download a
XHTML version of the template
here.
Step 1 – The Design
Every design process starts with an initial idea which you later build upon. At this stage, designers usually go with programs such as Photoshop, to work on the details and see how it will all fit together.
![Photoshop Design Photoshop Design](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_umavw4Pt5BPJ9ykDgFiCPr299PTKOUt5Ag3Jpodz0WVBj39tZH7CuHUJM6tsgRUaKhpwcLnNxuq_UDRDYgupc2qP2NCOS1rK7L1FyRpI0yVtTNkgeE9NcJo-Ukng=s0-d)
Photoshop Design
After this, the design is hand coded with HTML and CSS going hand by hand, moving from designing the background, colors and fonts, to detail work on the content section.
Step 2 – HTML
It is a good time to note, that
HTML5 is still a work in progress. It will remain so probably till around
2022 (I am absolutely serious about this). However some parts of the standard are complete, and can be used
today.
In this tutorial, we are using a few of the tags introduced with this new version of HTML:
- header – wraps your page header;
- footer – wraps your page footer;
- section – groups content into sections (e.g. main area, sidebar etc);
- article – separates the individual articles from the rest of the page;
- nav – contains your navigation menu;
- figure – usually contains an image used as an illustration for your article.
These are used exactly as you would use normal divs. With the difference being that these tags organize your page semantically. In other words, you can present your content in such a way, that the subject matter of your page can be more easily determined. As a result services, such as search engines, will bring you more targeted visitors and thus boost your revenue (and theirs actually).
However, there are some
implications in using HTML5 today. One of the most notable is the IE family of browsers, which does not support these tags (it can be fixed with a simple JavaScript include file though). This is why you should base your decision for moving to HTML5 on your site’s audience. And just for this purpose, we are releasing a
pure XHTML version of this template as well.
template.html – Head section
06 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
08 | < title >Coding A CSS3 & HTML5 One Page Template | Tutorialzine demotitle > |
10 | < link rel = "stylesheet" type = "text/css" href = "styles.css" /> |
You can notice the new
at line one,
which tells the browser that the page is created with the HTML5
standard. It is also much shorter and easier to remember than older
doctypes.
After specifying the encoding of the document and the title, we move
on to including a special JS file that will enable Internet Explorer
(any version) to render HTML5 tags properly. Again, this means that if a
visitor is using IE and has
JavaScript disabled, the page is going to show all
messed up. This is why, depending on your audience, you should consider the regular XHTML version of this template, which works in
any browser and is
released free for all of our readers here.
template.html – Body Section
09 | < h3 >and a fancy sloganh3 > |
15 | < li >< a href = "#article1" >Photoshoota >li > |
16 | < li >< a href = "#article2" >Sweet Tabsa >li > |
17 | < li >< a href = "#article3" >Navigation Menua >li > |
Here we use the new
section tags, which divide your page into separate semantic sections. Outermost is the
#page section which is set to a width of
960px
in the style sheet (a fairly standard width with older computer
displays in mind). After this comes the header tag and the navigation
tag.
Notice the
href attributes of the links – the part after the hash symbol
# corresponds to the
ID of the
article we want to scroll to.
template.html – Article
05 | < article id = "article1" > |
07 | < h2 >Photoshoot Effecth2 > |
09 | < div class = "line" >div > |
11 | < div class = "articleBody clear" > |
20 | < p >In this tutorial, we are creating a photo shoot effect with our just-released PhotoShoot jQuery plug-in. With it you can convert a regular div on the page into a photo shooting stage simulating a camera-like feel.p > |
22 | < p >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer luctus quam quis .... p > |
The markup above is shared between all of the articles. First is the dividing line (the best solution semantically would be an
line, which in HTML5 has the added role of a logical dividing element,
but unfortunately it is impossible to style in a cross-browser fashion,
so we will stick with a
DIV). After this we have the new
article tag, with an
unique ID, which is used by the navigation to
scroll the page.
Inside we have the title of the article, two paragraphs and the new
figure tag, which marks the use of images in the article.
template.html – Footer
03 | < div class = "line" >div > |
05 | < p >Copyright 2010 - YourSite.comp > |
06 | < a href = "#" class = "up" >Go UPa > |
16 | < script src = "jquery.scrollTo-1.4.2/jquery.scrollTo-min.js" >script > |
17 | < script src = "script.js" >script > |
Lastly, we have the
footer tag, which does exactly
what you expect it to do. At the bottom of the page are the rest of the
JavaScript includes, which add the
jQuery library and the
scrollTo plug-in, which we are going to use in the next steps.
![HTML5 CSS3 Website Template HTML5 CSS3 Website Template](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s9pYwrcoMsEik6ilHrfi0z2eCosibPHOrVF0Tz5brg6SIy4DWqIORqnZ_zrywmY3syPV_GEfKtFtHUPf5UY1Pi9L45t7z1njzVxXNtfoyY3Q8KRvv5jkrKhbJ2tA=s0-d)
An HTML5 & CSS3 Website Template
Step 3 – CSS
As we are using HTML5, we have to take some extra measures with the
styling. The tags that this new version of HTML introduces, are not yet
provided with a default styling. This is however easily fixed with a
couple of lines of CSS code and the page works and looks as it is
supposed to:
styles.css – Part 1
11 | background-color : #15242a ; |
12 | border-bottom-color : #204656 ; |
21 | background : url (img/gradient_light.jpg) repeat-x 50% 50% #f8f8f8 ; |
27 | border : 1px solid #FCFCFC ; |
29 | -moz-box-shadow: 0 1px 1px #333333 ; |
30 | -webkit-box-shadow: 0 1px 1px #333333 ; |
31 | box-shadow: 0 1px 1px #333333 ; |
47 | text-shadow : 0 1px 1px white ; |
48 | text-transform : uppercase ; |
53 | background-color : #f0f0f0 ; |
56 | nav, article, nav ul li a,figure{ |
58 | -moz-border-radius: 10px ; |
59 | -webkit-border-radius: 10px ; |
We basically need to set the
display value of the new tags to
block, as you can see from the first couple of lines. After this we can style them as we would do with regular divs.
We style the horizontal lines, the articles, and the navigation
buttons, with the latter organized as an unordered list inside of the
nav tag. At the bottom we assign the
border-radius property for four different types of elements of once, which saves a lot of code.
styles.css – Part 2
10 | background-color : #213E4A ; |
14 | text-shadow : 0 2px 0 black ; |
18 | border : 3px solid #142830 ; |
27 | -moz-box-shadow: 0 0 2px #4D7788 ; |
28 | -webkit-box-shadow: 0 0 2px #4D7788 ; |
29 | box-shadow: 0 0 2px #4D7788 ; |
49 | footer a,footer a:visited{ |
51 | background-color : #213e4a ; |
60 | background-color : #142830 ; |
In the second part of the code, we apply more detailed styling to the elements. A
width for the
page section, a
hover property for the
figure
tag and styles for the links inside of the footer. There are also a few
styles that are not included here, but you can see them in
styles.css.
Now lets continue with the next step.
![Structure Of The Page Structure Of The Page](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_u26oZZVTJdFMRwPyNcptPopB0su0AoruyhgXcHw902hy-zA-5ZuhmxFATK5iLZlF7N7aaKt0QX2kw_GUKUtz8MvfeXEm5srEMQ4-gJ2TnLmN737F-XnrbL-bhq7A=s0-d)
Structure Of The Page - HTML5 Tags
Step 4 – jQuery
To enhance the template, we will create a smooth scrolling effect once a navigation link has been clicked, using the
scrollTo
jQuery plug-in that we included in the page earlier. To make it work we
just need to loop through the links in the navigation bar (and the UP
link in the footer) and assign an onclick event which will trigger the
$.srollTo() function, which is defined by the plug-in.
script.js
01 | $(document).ready( function (){ |
04 | $( 'nav a,footer a.up' ).click( function (e){ |
08 | $.scrollTo( this .hash || 0, 1500); |
With this our template is complete!
Wrapping it up
In this tutorial, we leveraged the new semantic features provided by
HTML5, to design and code a one-page web template. You can use it for
free both personally and commercially, providing you leave the back link
intact.
If you like this tutorial, be sure to check out
our twitter stream as well, where we share the latest and greatest design and development links.
Postado por Fernando Schimit - Fox Creative