28172 sujets

CSS et mise en forme, CSS3

Bonjour - mon validateur W3C me dit que l'attribut width n'est pas recommandé dans une table. Ca marche mais dans un souci absolu de pureté (!!!) je me demande quelle est l'alternative.

Mon extrait de code HTML est le suivant


<div id="entete" style="position: absolute; left: 36px; top: 9px; width: 380px; height: 65px; z-index: 2; ">
<table>
    <thead style="background-color: #FCF1D4">
    <tr>
    <th width="30%">Photo</th>
    <th width="55%">Nom</th>
	<th width="15%">Prix</th> 
	</tr>
    </thead>
 </table>
	</div>


Je suppose que je dois utiliser une feuille de style, mais comment différencier mes colonnes dans la feuille (elle n'ont pas la même largeur) ?

Merci d'avance

Olivier
Modifié par odel (25 Jan 2010 - 19:31)
Salut,

Et pourquoi donc ?

Aurais tu une page en ligne pour constater le problème, car je doute qu'il s'agisse réellement de cela. Il doit y avoir quelque chose d'autre... Smiley cligne
page en ligne
www.latelierperles.fr/tarif.php

Pour être précis, le validateur W3C ne trouve aucune anomalie sur l'ensemble de mon site. Mais j'utilise Web Expression 3 pour créer le site et c'est lui qui me donne le message cité plus haut. Je peux l'ignorer ?
Merci
Olivier
Ci dessous le message web expression

Page Ligne Type de problème Schéma Résumé du problème
bagues/bagues.php [1/3] 70 Incompatibilité XHTML 1.0 Transitional Le W3C considère désormais que l'attribut « width » est obsolète. De nouvelles constructions sont recommandées.

Olivier
Si tu valides en Strict, tu as l'erreur suivante.

<th width="25%">Catégorie</th>
Attribute "width" exists, but can not be used for this element.

Peut-être que ton logiciel expression valide toujours en STRICT malgré le Doctype.

D'un côté, tu peux utilisé les CSS pour mettre le width. Ça règlerait ton erreur et je crois que ça cadrerait dans la mentalité vers laquelle le Web tend, séparer le contenu de la mise en forme.
Merci -

mais mon probleme est que je ne sais pas comment utiliser une feuille de style pour affecter une largeur différente à chaque colonne du tableau - toute indication sur la méthode serait la bienvenue, je cherche effectivement à séparer le format du contenu

Merci

Olivier

<thead> 
    <tr> 
        <th class="col_1">Photo</th> 
        <th class="col_2">Nom</th> 
        <th class="col_3">Prix</th>  
    </tr> 
</thead> 

<tbody>
    <tr> 
        <td>a</td> 
        <td>b</td> 
        <td>c</td>  
    </tr> 
</tbody>





.col_1 { width:30%; }
.col_2 { width:55%; }
.col_3 { width:15%; }


Tu n'as pas besoin de spécifier la classe partout. Tu peux le faire uniquement sur le <th> et tous les <td> de cette colonne prendront la même dimension.
Modifié par Sorano (25 Jan 2010 - 19:14)
Merci Sorano -

C'est magnifique de simplicité, et en plus ça m'aide à comprendre l'usage des classes.

Olivier