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 :

pseudo-élément et position absolute


Sujet :

Positionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 168
    Par défaut pseudo-élément et position absolute
    Bonjour,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <a> <!-- ***position relative*** -->
                    <img src="img/user.png" alt="">
                    <div class="login-logout-popup"> <!-- ***position absolute*** -->
                        <p class="account-info">Loged in as, name</p>
                        <button class="btn" id="user-btn">Log out</button>
                    </div>
     </a>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    .login-logout-popup {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      padding: 10px;
      background: rgb(255, 255, 255);
      border-radius: 10px;
      top: 40px;
      width: 200px;
      transition: 0.5s;
      border: 2px solid #f5f5f5;
    }
     
    .login-logout-popup::after {
      content: "";
      position: absolute;
      width: 15px;
      height: 15px;
      background: rgb(178, 37, 37);
      border-radius: 5px;
    }
    J'obtiens se résultat:
    Nom : After.png
Affichages : 87
Taille : 4,7 Ko

    Maintenant si j'enlève la position: absolute au pseudo ::after (en rouge) ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .login-logout-popup::after {
      content: "";
     
      width: 15px;
      height: 15px;
      background: rgb(178, 37, 37);
      border-radius: 5px;
    }
    ... Il disparaît mais semble toujours présent quand je regarde avec Devtool de Chrome.
    Pour moi position: absolute dois pouvoir me donner seulement la possibilité le pseudo avec les propriétés de positionnement.
    Donc je comprends pas pourquoi la position doit être présente pour que le pseudo s'affiche.

    Nom : After2.png
Affichages : 73
Taille : 7,2 Ko

    Une petite explication ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    Maintenant si j'enlève la position: absolute au pseudo ::after (en rouge) ...
    (...)
    Donc je comprends pas pourquoi la position doit être présente pour que le pseudo s'affiche..
    Il y a plusieurs choses à prendre en compte :

    • Par défaut les pseudo-élément sont en « modèle de boîte inline », display:inline, et n'occupent que l'espace nécessaire à afficher leur contenu. Les dimensions, via les propriétés width et height ne s'appliquent pas. En déclarrant un content: "" le pseudo-élément est pris en compte mais sa largeur est nulle, elle s'adapte au (non) contenu.

    • Le fait de positionner ton pseudo-élément en position:absolute le fait passer en « modèle de boîte block », display:block, et dans ce cas les dimensions définies sont prises en compte, ton pseudo-élément est donc, dans ton cas, visible.

    Tu pourrais également appliquer ce genre de régles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .login-logout-popup::after {
      content: "";
      display: inline-block;
      width: 15px;
      height: 15px;
      border-radius: 5px;
      background: #B22525;
    }
    devrait s'afficher à la suite ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .login-logout-popup::after {
      content: "";
      display: block;
      width: 15px;
      height: 15px;
      border-radius: 5px;
      background: #B22525;
    }
    devrait s'afficher dessous.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 168
    Par défaut
    Ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS 2] Listes, sous-élément en position absolute
    Par windmastr26 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/02/2012, 19h58
  2. Récupérer le top d'un élément en position: fixed
    Par Maximil ian dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2007, 09h54
  3. Centrage d'éléments DIV ayant position:absolute;
    Par Steph4fun dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 14/05/2007, 08h41
  4. [HTML/CSS] position absolute et centrage
    Par LE NEINDRE dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/08/2005, 11h11

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