28172 sujets

CSS et mise en forme, CSS3

Bien le bonjour amis d'alsa

j'ai beau chercher sur le net je ne trouve pas le sélecteur qu'il me faut (et je suis accessoirement assez mauvais en CSS ça doit jouer un peu aussi Smiley smile ).

Mon besoin est le suivant: arriver à trouver un sélecteur qui me remonte les TH contenant un SELECT dont la valeur sélectionnée est 'foo' par exemple.

Pas de problème pour réaliser cela en JS mais le problème c'est que cette opération de mise en forme de ce fameux TH ne doit être fait que sur les impréssions" d'ou mon besoin de faire cela en CSS (et je suis persuadé que c'est possible).

D'avance merci pour vos lumières.

Cdt

Xabi
Bonjour,
C'est impossible en CSS =) Il n'existe pas de sélecteur ascendant.
En quoi le fait que ce soir pour une impression empêche-t-il d'utiliser JS ? :o
Modérateur
Bonjour.

À mon avis c'est possible en ASS, ( Ascading Style Sheet ). Blague à part je ne vois pas trop, les css vont en descendant dans le dom, pas le contraire.
Ajouter une classe du côté serveur ne résous pas le problème?
Tout d'abord merci pour vos réponses rapides.

@gothor : dans ce cas je pense qu'il peut être négocié de mettre en forme le select lui même par un bg par exemple. Mon problème étant la détection de sa valeur en fait.
et oui en effet on peut utiliser JS mais je ne connais pas le moyen de détecter le média d'affichage en JS (ca pourrait en effet aussi résoudre mon problème). En fait j'ai pas vraiment cherché à résoudre le problème de cette manière mais pourquoi pas!

@kustolovic: ajouter une classe coté serveur pourrait être une solution mais j'aimerais conserver le dynamisme de la page et que cette maj de mis en forme se fasse à la volée (un peu comme on ferait de la mise en forme conditionnelle sous excel pour schématiser grossièrement)
Modérateur
Tu peux créer la classe selon la valeur prévue du select à la génération de la page. Puis modifier la classe en js au changement du select.
oui c'est ce que je me suis résigné a faire au final. Je voulais éviter de le faire en js et au final j'ai passer 2h a chercher une solution alternative et 10min a faire comme tu me l'a proposé. L'acharnement ca nous fait faire des choses pas nettes.

Autre question a 1000 brouzouf. En ce qui concerne la manipulation des attribut en ccs je n'ai pas trouvé la syntaxe de l'opérateur "différent de" (commence par fini par etc toutes ces fourberies existent bien mais il semble que différent de manque à l'appel) c'est moi qui déconne ou il existe vraiment pas?

en tout cas merci pour votre temps
Il existe bien la pseudo-classe :not mais reconnue qu'à partir d'IE9+ (et FF, Chrome, Opéra, Safari)
div:not([lang=fr])
Ah je ne suis donc pas fou! IE9+ donc ca le fera pas pour moi.

Merci a vous je clôture la conversation

bonne journée
Modérateur
Pour faire un not, on peut en deux coups…

d'abord le cas général, puis "annulation" du cas particulier.


div.machin {
  font-size: 2em;
}
div.machin[lang=fr] {
  font-size: inherit;
}


équivaut à


div.machin:not([lang=fr]) {
  font-size: 2em;
}