2009-04-24 7 views
2

J'ai une mise en page de base, et je voulais organiser les informations dans des colonnes.Quelle est la meilleure façon de présenter l'information dans plusieurs colonnes?

J'ai réussi à le faire, mais je pense que j'ai fait cela d'une manière très médiocre.

J'ai créé un calque et un style appelé 'leftlayer', qui flotte vers la gauche. Puis 2 couches avec un style appelé 'leftlayer2' qui flotte aussi à gauche, pour préserver l'ordre que je voulais pour l'information. Puis une couche appelée 'rightlayer', qui flotte vers la droite.

Devrais-je plutôt utiliser une table ou tout mettre dans des couches séparées? Quelle est la meilleure approche?

Mon code:

<html> 
<head> 
<title>Test page</title> 
<link rel="stylesheet" href="style.css" type="text/css"> 
</head> 
<div id="Layer0"> 
<div id="Layer1" class="Layer1"> 
<h3 align="left">A menu</h3> 
<div align="left"> 
<ul class="BLUE"> 
<li><a href="#">item 1</a></li> 
<li><a href="#">item 2</a></li> 
</ul> 
</div> 
</div> 
<div id="Layer2"> 
<h1>Artcile heading</h1> 
<div id="leftlayer" class="leftlayer"> 
<p><strong>Random info 1: </strong>blah 
</p> 
<p><strong>Random info 2: </strong>blah blah 
</p> 
<p><strong>Random info 3: </strong>anything 
</p> 
<p><strong>Random info 4: </strong>more text 
16:46:29 </p> 
<p><strong>Random info 5: </strong>and so on 
</p> 
<p><strong>Random info 6: </strong>such as 
</p> 
<p><strong>Random info 7: </strong>sport 
</p> 
</div> 
<div class="leftlayer2"> 
<p><strong>Random info 1: </strong>blah 
</p> 
<p><strong>Random info 2: </strong>blah blah 
</p> 
<p><strong>Random info 3: </strong>anything 
</p> 
<p><strong>Random info 4: </strong>more text 
16:46:29 </p> 
<p><strong>Random info 5: </strong>and so on 
</p> 
<p><strong>Random info 6: </strong>such as 
</p> 
<p><strong>Random info 7: </strong>sport 
</p> 
</div> 
<div class="leftlayer2"> 
<p><strong>Random info 1: </strong>blah 
</p> 
<p><strong>Random info 2: </strong>blah blah 
</p> 
<p><strong>Random info 3: </strong>anything 
</p> 
<p><strong>Random info 4: </strong>more text 
16:46:29 </p> 
<p><strong>Random info 5: </strong>and so on 
</p> 
<p><strong>Random info 6: </strong>such as 
</p> 
<p><strong>Random info 7: </strong>sport 
</p> 
<form name="testForm"> 
<p><input name="radiobutton" value="test1" type="radio">Test</p> 
<p><input name="radiobutton" value="test2" type="radio">test</p> 
<p><input name="radiobutton" value="test3" type="radio">Test</p> 
<p><input name="radiobutton" value="test4" type="radio">test</p> 
<input name="Submit" value="Update" type="submit"> 
</form> 
</div> 
<div id="rightlayer"> 
<a href="#"> 
<img src="img.jpg" height="300" width="199"> 
</a> 
<p> 
<a href="#">Click for full description </a> 
</p> 
<p><a href="#">DELETE</a> 
</p> 
</div> 
<div id="Layer3"> 
<h1>A list of records</h1> 
<table border="0" width="85%"> 
<tbody> 
<tr> 
<td width="15%"><strong>Column 1</strong></td> 
<td width="10%"><strong>Column 2</strong></td> 
<td width="65%"><strong>Column 3</strong></td> 
<td width="10%"><strong>Column 4</strong></td> 
</tr> 
<tr id="article_250405322811"> 
<td><a href="#">Some info</a></td> 
<td><a href="#">more info</a></td> 
<td><a href="#">Even more info</a></td> 
<td>No more info</td> 
</tr> 
</tbody> 
</table> 
</div> 
<div id="tablefooter" class="tablefooter"> 
<div id="tablefooterleft" class="tablefooterleft"><a href="#">&lt;&lt;-First</a> 
<a href="#" onclick="updateByPage('Layer3', 'Hardy', '1')">&lt;-Previous</a> 
----------------------------------------------------------------- 
<a href="#" onclick="updateByPage('Layer3', 'Hardy', '2')">Next -&gt; </a> 
<a href="#" onclick="updateByPage('Layer3', 'Hardy', '7')"> Last-&gt;&gt;</a> 
</div> 
</div> 
</div> 
</div> 
</body> 
</html> 

Le css:

#Layer0 { 
    width: 100%; 
    height: 100%; 
} 

body{ 
margin:10px 10px 0px 10px; 
padding:0px; 
color:#999999; 
font-family:"Trebuchet MS",arial,sans-serif; 
font-size:70.5%; 

} 

#Layer2 { 
background:#fff; 
color:#000; 
voice-family: "\"}\""; 
voice-family: inherit; 
padding:20px; 

} 

#Layer2 p {color:#888;} 

#Layer2 a, a:link { color:#006633; text-decoration: none;} 

#Layer2 a:hover, a:active{ color:#FF6666; text-decoration: none;} 

html>body #Layer2 { 
} 

p,h1,pre { 
margin:0px 10px 10px 10px; 
font:Arial, Helvetica, sans-serif; 
font-size:12px; 
line-height: 1.6em; 
text-align:justify; 
text-decoration:none; 
} 

h1 { 
font-size:2.5em; 
text-align: center; 
color:#ccc; 
padding-top:15px; 

} 

h3 { 
font-size:14px; 
color:#999; 

} 

.leftlayer { 
    float: left; 
    left: 20%; 
    width: 20%; 
    height: 100%; 
    margin-right: 10%; 
} 
.leftlayer strong { 
    text-align: left; 
} 
.leftlayer2 { 
    float: left; 
    width: 20%; 
    height: 100%; 
    margin-left: 2%; 
} 
#rightlayer { 
    float: left; 
} 
#Layer3 { 
    float: bottom; 
} 

Répondre

2

bâton à <div> approche pour des trucs de mise en page, mais l'affichage des données tabulaires régulières (comme des enregistrements d'une table) en utilisant la balise <table> (c'est exactement la raison pour laquelle cette balise a été introduite en premier lieu).

Pour maîtriser les astuces de mise en page en fonction div-vous besoin de mieux comprendre CSS positioning model.

0

La meilleure façon de présenter des informations dans plusieurs colonnes, à mon avis, utilise un cadre de grilles, comme Blueprint CSS.

(Les tables sont un no-no.Aller avec CSS div +)

Plan directeur (et d'autres cadres similaires) sont

  • très facile à utiliser
  • vous permettent de créer très facilement/régler un certain nombre de colonnes que vous voulez travailler
  • à travers tous les navigateurs (y compris IE6)
  • vous permettent de faire réseau très complexe mises en page et avec facilité (création d'un simple 2 ou 3 colonnes est toujours très facile)

Selon moi, les mises en page codées à la main - bien qu'elles fonctionnent bien - ne sont pas bien adaptées et requièrent souvent une refonte importante lorsque vous essayez d'ajouter des éléments de mise en page supplémentaires. Les mises en page avec des cadres de grille sont plutôt faciles à maintenir, et vous pouvez être opérationnel en un rien de temps (pour toutes sortes de mises en page, simples et complexes). Essayez-le :)

Questions connexes