570 likes | 583 Views
Three parts: - A few words ... - Layout using CSS - From web page design to web site design. Part 0 : A few words … - Code validation - CSS classes and id. On the importance of validation http://validator.w3.org/. 1. Doctype. <!DOCTYPE html PUBLIC
E N D
Three parts: - A few words ... - Layout using CSS - From web page design to web site design
Part 0: A few words … - Code validation - CSS classes and id
On the importance of validation http://validator.w3.org/
1. Doctype <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2. Embedded lists – the right way! <ul> <li>Introduction</li> <li>Main Chapter <ul> <li>Section 1</li> <li>Section 2</li> </ul> <li>Conclusion</li> </ul>
3. Various inaccuracies • <img src=“…”alt=“description”/> • <td>, not <td width=“”> • <title> required in <head> • <td colspan=“2”> not <td colspan=2> • etc
4. Class or id? • id applies to a single element, class to any element • Only one id per element, several classes per element • But, these rules are not enforced by all browsers
id In the head: <style type="text/css" > p{color:black;} #quote{font-style:italic;} </style> In the body: <p>Here's a short paragraph formatted in a <i>standard</i> way.</p> <p id="quote">Here's a type of paragraph that is intended to be displayed in italic.</p>
class In the head: <style type="text/css" > p{color:black;} .quote{font-style:italic;} </style> In the body: <p>Here's a short paragraph formatted in a <i>standard</i> way.</p> <p class="quote">Here's a type of paragraph that is intended to be displayed in italic.</p> <div class="quote">Here's a section of text. Using a unique class identifier, the previous paragraph and the current div share the same formatting property.</div>
Using multiple classes In the head: <style type="text/css" > .important{font-style:italic;} .title{color:red;} </style> In the body: <p class=“title important">Here's a type of paragraph that is intended to be displayed in italic.</p>
W3C tips http://www.w3.org/QA/Tips/
The concept • Use <div> tags to structure the blocks of the page. (content) • Define a style for <div> tags to achieve the desired output. (presentation)
1. Basic properties • width (default is 100%) • padding (ex: padding: 10px;) • background (ex: background: #ffffff;) • etc
2. Floating elements • Enables blocks to be aligned • Property: • float: left; • float: right; • float: none;
2. Floating elements, example • Three divs in a page, with following style: div.title{ float:left; border:1px solid gray; padding:10px; } Output: layouta.html
2. Floating elements, example • Three divs in a page, with following style: div.title{ width:200px; float:left; border:1px solid gray; padding:10px; } Output: layoutb.html
3. Positioning • Elements can be positioned at any coordinates in the page • Property: • position: static; • position: relative; • position: absolute;
Positioning example • Three divs in a page, with following style: div.title{ width:200px; position: absolute; top: [100,200,300]px; left: [100,200,300]px; border:1px solid gray; padding:10px; } Output: layoutc.html
1. no layout <body> <h1>Page Title</h1> <p>This is the first block.</p> <p>This is still the first block.</p> <p>This is the second block.</p> </body>
2. Three sections (1) <body> <div> <h1>Page Title</h1> </div> ... </body>
2. Three sections (2) <body> ... <div> <p>This is the first block</p> <p>This is still the first block.</p> </div> ... </body>
2. Three sections (3) <body> ... <div> <p>This is the second block.</p> </div> </body>
2. Three “typed” sections (1) <body> <div class=”title”> <h1>Page Title</h1> </div> ... </body>
2. Three sections (2) <body> ... <div class=”part1”> <p>This is the first block</p> <p>This is still the first block.</p> </div> ... </body>
2. Three sections (3) <body> ... <div class=”part2”> <p>This is the second block.</p> </div> </body>
3. Writing a style (1) <style> div.title{ border:1px solid gray; padding:10px; } ... </style>
3. Writing a style (2) <style> ... div.part1{ border:1px solid gray; padding:10px; } ... </style>
3. Writing a style (3) <style> ... div.part2{ border:1px solid gray; padding:10px; } </style>
4. Two column layout v1 - right column has variable width
4. Two column layout v1 (1) <style> div.title{ border:1px solid gray; padding:10px; } ... </style>
4. Two column layout v1 (2) <style> ... div.part1{ float: left; width:200px; border:1px solid gray; padding:10px; } ... </style>
4. Two column layout v1 (3) <style> ... div.part2{ margin-left:222px; border:1px solid gray; padding:10px; } </style>
Output • As required • Right column has variable width
5. Two column layout v2 – left column has variable size
5. Two column layout v2 (1) <style> div.title{ border:1px solid gray; padding:10px; } ... </style>
5. Two column layout v2 (2) <style> ... div.part1{ margin-right:222px; border:1px solid gray; padding:10px; } ... </style>
5. Two column layout v2 (3) <style> ... div.part2{ float:right; width:200px; border:1px solid gray; padding:10px; } </style>
Output • As required • Left column has variable width • In Body of document, part1 and part2 have been permuted, otherwise doesn't work • At home, try to permute them back and see what happens ... • There's a way to make the layout work without permutation. See three column example further on ...
6. Three column layout v1 – Right column has variable width
6. Change in the document body <body> <div class=”part1”>...</div> <div class=”part3”>...</div> <div class=”part2”>...</div> </body>
6. Threecolumn layout v1 (1) <style> ... div.part1{ float: left; width:200px; border:1px solid gray; padding:10px; } ... </style>