<Style> On et Off

Résolu/Fermé
Pier-3d Messages postés 67 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 18 mars 2024 - 16 sept. 2014 à 19:40
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 18 sept. 2014 à 09:18
Bonjour,

J'ai plusieurs tables dans la même page.

Je voudrais leurs appliquer des styles différents.

Pour la table elle-même, ça va mais j'aimerais pouvoir appliquer un style à toutes les cellules sans avoir à ajouter un 'class=' ou un 'id=' à chaque cellule.

Quelque chose du genre <Table style="border(pour les TD seulement): 1px solid black;">

Ou ceci, par exemple :

<DIV style="td-border:1px"> la Table </DIV>

Je ne crois pas que td-border soit un mot clef en CSS mais je cherche un équivalent.

Merci,

Pierre

4 réponses

mr_demonicon Messages postés 828 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 9 avril 2016 126
16 sept. 2014 à 21:41
simplement dans le <head>
<style> .td{border: 1px solid black;} </style>
0
Pier-3d Messages postés 67 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 18 mars 2024 1
17 sept. 2014 à 16:34
Bonjour,

<style> .td{border: 1px solid black;} </style>

D'abord, corrigez-moi si je me trompe mais, selon moi, il ne devrait pas y avoir de point '.' avant le td dans cette ligne de code. Sinon, cela crée une classe 'td' et pour que mes cellules possèdent une bordure il faudrait que j'écrive :
<Table><tr><td class="td">

Ce que je souhaite éviter, c'est cet ajout dans chacune des balises <td>.

Si je reprends votre exemple sans le point, ça marche mais pour toutes les tables de ma page. Mon problème c'est que je veux des bordures pour la deuxième table et pas pour les autres. Et cette table doit ressembler à une feuille Excel avec beaucoup de cellules. De là une lourdeur à éviter d'ajouter du code dans chacune des balise <td> (cellules).

Une solution serait de pouvoir « styliser » ma table dans la balise <Table> et que ça influence les cellules. Quelque chose du genre :

<Table style="border-td: 1px;"><tr><td> etc.

Ici, on dirait à la table que toutes les cellules doivent avoir le style 'border: 1px;'

Est-ce possible ?


Pierre
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
17 sept. 2014 à 17:17
Salut,

Tu as raison, il ne faut pas de . devant td si on veut appliquer le style sur la balise <td>.

Ce serait effectivement très long de devoir appliquer une classe toutes les cellules pour les tableaux que l'on souhaite styliser.
Mais tu peux appliquer une classe sur le tableau à styliser et appliquer tes règles css uniquement sur les cellules des tableaux qui ont cette classe :
CSS
/* on applique une bordure sur les cellules des tableaux qui possèdent la classe .table-border */
.table-border td {
    border: solid 1px black;
}


HTML
<!-- tableau sans bordure -->
<table>
  <tr><td>1</td><td>2</td></tr>
</table>

<!-- tableau avec bordure -->
<table class="table-border">
  <tr><td>1</td><td>2</td></tr>
</table>


Bonne journée
0
Yo, pas forcément si on utilise le '.' de cette façon cela marche:

On crée une classe qu'on applique à toutes les balises d'un type particulier, donc pas besoin de mettre class en attribut de balise.


.div {/* s'applique à tout les div

.div.div s'applique à tout les div contenus dans un div

.div.p s'applique à toutes les balises p contenues dans un div

.div.surlignement s'applique à toutes les balises div de class='surlignement'

Ainsi la règle CSS est toujours respecté, même si une classe sans nom est généraliste et n'a pas besoin d'être appliqué en indiquant la classe.

De toute façon que vous nommiez une classe ou pas c'en est une(ou un id mais celui est censé être unique).

Quand à votre question si vous avez un tableau dynamique qui doit changer de couleur de fond selon son contenu il faut utiliser soit javascript soit PHP en écrivant la fonction qui le fera.


Par exemple:

<?php
if($valeur_du_tableau>10){

echo '<td class="superieur10">'.$valeur_du_tableau.'</td>';
/*On passe à la colonne ou ligne suivante, mettre ceci dans une boucle */
}else{
echo '<td class="inferieur10">'.$valeur_du_tableau.'</td>';

}

?>

Comme ceci vous n'avez pas à toucher quoique ce soit et les styles seront automatiquement différent en fonction du contenu et ce pour les prochaines années à venir.

Cela représente une économie pour le client et le webmaster, en temps et argent; bref c'est la différence entre un sirte qui devient une horreur à entretenir dès qu'on veut changer quelque chose (statique et qui ne se fait plus)ou un site Internet qui peut être is à jour simplement et sans avoir à toucher quoique ce soit du programme(site dynamique).

Yeah rock'n roll je suis mort pour vous sauver de la bêtise

cdt. Rodney
-2
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
18 sept. 2014 à 09:18
Il faut reprendre les bases ;)
.div -> s'applique à la classe "div"
#div -> s'applique à l'id "div"
div -> s'applique à la balise div
0