Bonjour,
Il est possible de faire cette manipulation en CSS en utilisant les sélecteurs de proximité :
td+td {} // Concerne la seconde colonne (et toutes les occurrence de deux colonnes successives la règle s'appliquant à la seconde colonne)
td+td+td {} // concerne la troisième colonne d'un groupe de trois colonnes
Attention cette technique est assez complexe à utiliser. En effet si on ne prend que la première ligne de cet exemple, elle concerne toutes les colonnes d'un tableau sauf la première. En effet, la règle s'applique dès qu'il y a deux TD se suivant comme c'est le cas de la deuxième colonne, de la troisième colonne, etc.
Si vous connaissez à l'avance les nombre de colonnes c'est une manière de faire assez intéressante et surtout qui vous évite du JS qui ne devrait pas être utilisé pour gérer le design, je le rappelle (bien que, la discussion soit ouverte).
Voilà ma petite contrib de la nouvelle année. Alors bonne année à tout le monde.
_
Pablo
Le 15 janv. 08 à 10:00, Yoann NOGUES (zerax) a écrit :
Marc VALLETEAU de MOULLIAC a écrit :
Mais il demeure un problème : je voudrais pouvoir mettre une largeur
prédéfinie aux différents <td>, pas forcément la même pour chaque
<td>. Je n'ai pas trouvé la solution (si elle existe).
Y aurait-il une idée ? Merci.
le faire en jquery ?
voila un exemple de ce que j'ai fait pour masquer par exemple la
première colonne, la coloration d'une ligne sur 2, et la suppression de
la première ligne ( si elle est vide )
la suppression des premieres lignes ou colonnes se fait quand on a un
tableau avec les header soit en ligne soit en colonne.
Dans ton cas ..... plus simple il te suffit d'utiliser le .each et de
l'adapter
$(document).ready(
function(){
//on applique le style first_td aux td et aux th et on
vérifie si ils n'ont pas de contenu
$('table').each(
function(){
hide_first_column = true;
cpt = 0;
first_ligne = true;
//vérification de la présence d'un titre pour
decalage des interlignes
$('th',$(this)).each(
function(){
if(first_ligne && $(this).text() != ' ' &&
$(this).text() != ''){
first_ligne = false;
}
}
);
if(first_ligne){
cpt++;
}
$('tr',$(this)).each(
function(){
//coloration d'une ligne sur 2
if(cpt%2==0)
$(this).addClass('interligne');
cpt++;
//ajout d'une classe a la premiere cellule
de chaque ligne
//et vérification de la presence de contenu
$('th:first, td:first',$(this)).each(
function(){
$(this).addClass('first_td');
if($(this).text()!=' ' &&
$(this).text()!='')
hide_first_column = false;
}
);
//on ajoute une classe aux dernière cellules
de chaque lignes
$('th:last, td:last',$(this)).each(
function(){
$(this).addClass('last_td');
}
);
//si aucun contenu on masque la premiere colonne
if(hide_first_column){
$('th:first, td:first',$(this)).each(
function(){
$(this).addClass('displaynone');
}
);
}
}
);
}
);
}
);
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP