IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Style conditionnel dépendant des classes d'un sibling (SASS)


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut Style conditionnel dépendant des classes d'un sibling (SASS)
    J'ai un cas que l'on me demande d'implémenter uniquement en CSS sans utiliser du JS et je bloque.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="bloc-a-afficher-ou-pas">
    </div>
    <div class="un-selecteur">
    </div>
    <div class="un-selecteur">
    </div>

    L'objectif est le suivant :
    - comportement par défaut : masquer le div avec l'id "afficher-ou-pas"
    - si l'un des siblings avec la classe "un-selecteur" a la classe "actif" alors le bloc a affiché doit être visible.

    Je n'ai pas de problème pour le comportement par défaut mais je n'arrive pas à écrire l'autre.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    A priori, SASS fonctionne comme CSS : en "Cascade".
    On ne peut pas remonter une cascade.

    Ca ne fonctionnera QUE si le "bloc-a-afficher-ou-pas" se trouve APRES les bloc "actif".
    Pas AVANT.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="bloc-a-afficher-ou-pas">
      bloc-a-afficher-ou-pas n° 1
    </div>
    <div class="un-selecteur actif">
      un-selecteur
    </div>
    <div class="bloc-a-afficher-ou-pas">
      bloc-a-afficher-ou-pas n° 2
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .bloc-a-afficher-ou-pas { display:none; }
    .un-selecteur.actif ~ .bloc-a-afficher-ou-pas { display:block; }
    Affiche :
    un-selecteur
    bloc-a-afficher-ou-pas n° 2
    • Le bloc n° 1 reste masqué. (PAS OK)
    • Le bloc n° 2 est affiché. (OK)

    (pour l'exemple, j'ai remplacé l'id par une classe, puisque j'ai 2 blocs)

    N.B. En JavaScript, c'est possible de remonter dans le DOM.

    [EDIT] Une ASTUCE possible en CSS :
    Utiliser flex / order pour inverser à l'écran la position des div.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div class="wrapper">
      <div class="un-selecteur actif">
        un-selecteur
      </div>
      <div class="bloc-a-afficher-ou-pas">
        bloc-a-afficher-ou-pas n° 1
      </div>
      <div class="bloc-a-afficher-ou-pas">
        bloc-a-afficher-ou-pas n° 2
      </div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .wrapper { display:flex; flex-direction:column; }
    .wrapper > div { order:1; }
    .wrapper > div:nth-child(2) { order:0; }
     
    .bloc-a-afficher-ou-pas { display:none; }
    .un-selecteur.actif ~ .bloc-a-afficher-ou-pas { display:block; }
    Affiche :
    bloc-a-afficher-ou-pas n° 1
    un-selecteur
    bloc-a-afficher-ou-pas n° 2
    • Le bloc n° 1 est affiché - AVANT. (OK)
    • Le bloc n° 2 est affiché. (OK)
    Dernière modification par Invité ; 01/08/2018 à 15h14.

Discussions similaires

  1. [UI Mobile] Supprimer des classes entre les balises <style>
    Par viny dans le forum jQuery
    Réponses: 5
    Dernier message: 12/03/2016, 09h53
  2. [CKEditor] Ajouter des class/style dans la liste déroulante des styles CKEditor 4.x
    Par Darkhan dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 02/08/2014, 22h15
  3. [studio report 8.4] gerer des styles conditionnels
    Par soltom dans le forum Cognos
    Réponses: 2
    Dernier message: 13/12/2010, 11h12
  4. Mettre du style à des classes incrémentées
    Par Fred0 dans le forum Langage
    Réponses: 5
    Dernier message: 08/10/2010, 10h18
  5. Inserer des classes java existantes
    Par 2000 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/03/2003, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo