500 likes | 656 Views
Layout using CSS. 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>. The goal. Part 1 : Layout.
E N D
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>
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: layoutb.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: layoutc.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: layoutd.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> layout1.html
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> layout2.html
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 • layout2col1.html
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 swapped, otherwise doesn't work • At home, try to swap them back and see what happens ... • There's a way to make the layout work without swapping. See three column example further on ... • layout2col2.html
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> layout3col1.html
6. Threecolumn layout v1 (1) <style> ... div.part1{ float: left; width:200px; border:1px solid gray; padding:10px; } ... </style>
6. Three column layout v1 (2) <style> ... div.part3{ float: left; width:200px; border:1px solid gray; padding:10px; } ... </style>
6. Two column layout v1 (3) <style> ... div.part2{ margin-left:444px; border:1px solid gray; padding:10px; } </style>
8. Three column layout v3 – All three columns have variable widths
8. Threecolumn layout v3 (1) <style> ... div.part1 { float: left; width:20%; border:1px solid gray; } ... </style> layout3col3.html
8. Three column layout v3 (2) <style> ... div.part3 { float:left; width:58%; border:1px solid gray; } ... </style>
8. Three column layout v3 (3) <style> ... div.part2 { float:left; width:20%; background:#ffffff; border:1px solid gray; } </style>