Now that we’ve got the mock-up translated into structured content marked up in semantic HTML, it’s time to paint the town.
This morning, I gave the class a seat work — tear off a page, any page from any magazine and translate it into structured content marked up in semantic HTML. What does that mean?
Say you tore off a car advertisement page — most probably it would have the following elements on it:
Paragraph of copy
Each element we identified has an equivalent HTML element that we could use in marking up the HTML document. For example:
Brand logo = h1
<liTagline = h2
Headline = h1
Paragraph of copy = p
Images = img
Fineprint = p
Of course, we would still need to “group” those elements into bigger “boxes” such as:
With HTML tags, the content could be translated into:
Paragraph of copy
Notice the addition of the <div> attribute “role” with the value, “main” — since we don’t have a semantic tag (yet) for a main content in our document, we used “role” to denote the meaning of that div’s content. “Main” simply means “main content”. It is one of the predefined Role values in XHTML. Here’s the complete list of Role values from W3C.
This week, I’m conducting a workshop on basic HTML and CSS at Chikka. Participants come from the corporate communication, creatives, and content teams.
For a martian to easily digest a complicated topic such as a webpage, I’ve used a human being as a metaphor for the three front-end layers of a webpage.
Front-end meaning the webpage not needing any database or server — it should launch and run even when all you’ve got are notepad, Internet Explorer 3.0, and zero prepaid load in your EDSA Mail internet dial-up connection account (no internet needed!).
HTML: the structure layer
Think about a simple human body; disregard the color of its skin or the length of its hair or whether it is male or female — god simply made it with a head, body, and legs. No complicated hiphop outfit nor nice slick pompadour; it doesn’t have any flavoring not even vanilla. It’s only a naked human being. That’s our HTML markup — purely focused on the very essence of the structure of the content.
The HTML markup is what you see when you view the source of a webpage or when you open an HTML document in a text editor.
That’s the structure of the content of your document. For example, your webpage is an article about cats, then most probably, the structure of your content is arranged according to this:
Of course, each item I enumerated has a corresponding HTML tag like for the header group it is <header>, etc.
It is best to forget about CSS when we’re laying out the structure layer. What all matters here is the structure of your content — don’t you ever write <header> at the bottom of the document because that’s not the correct structure. Header should be at the top, footer at the bottom.
Also, what we should give attention to in laying out the structure layer is semantics. Meaning, if you’ve got some important title or heading in your design, make it <h1> or <h2> depending on the hierarchy of your headings. Don’t use the heading tags for their font sizes; use them to show hierarchy in your headings. <h1> being the most important like the title of your site or the heading of your cat article. Likewise, if you have a list of anything, use <ul> or <ol>.
Open the HTML document in a browser, close your eyes and let someone read your HTML webpage per element from top to bottom, from left to right (or right to left in other cases) and say “next” if you want to proceed to the next element. If it makes sense to you, then most likely you’ve made the right structure.
To somehow test its semantics, you may want to use a screen reader. Everything should make sense to you while listening and “browsing” the content.
CSS: the presentation layer
Now, it’s time to present our naked human being to the world. It needs something to wear. Something like Sailor Moon’s costume.
That’s CSS, short for Cascading Style Sheets. A set of instructions that our HTML document takes to have a visual design like background color and many more.
CSS could also make HTML elements be positioned anywhere on the webpage whether at the left, right, top, or bottom.
And lastly, whenever you want your vitruvian man to do some break-dancing, add some script.
Combine all three layers and you’ve got that breakdancing streetdancer.