570 likes | 584 Views
Explore key concepts such as code validation, class vs id usage, floating elements, and more. Learn to create efficient and visually appealing web layouts using CSS. Dive into the importance of validation with W3C tips and best practices. Master the art of structuring web content using div tags and defining styles for optimal presentation.
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>