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 :

Equivalent :after pour ie


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut Equivalent :after pour ie
    Bonjour à tous,

    Je me retrouve confronté une fois de plus au manque de support css de la part d'ie. En effet j'utilise la pseudo-classe :after et :before pour rajouter des images (puces en l'occurrence) à un texte.

    Donc j'applique une classe à un texte qui est dans un span et le after de la classe rajoute tout proprement et automatiquement ma puce, c'est vraiment super pratique.
    Le bémol : IE compatible oblige seulement il ne gère pas ces éléments. Avez-vous déjà rencontré ce problème ou une piste de réflexion?

    J'ai envisagé trois solutions qui se révèle inefficaces :
    - :after, :before -> incompatible avec ie
    - sous forme de li -> sémantiquement pas propre et ne marche pas dans le cas où la puce est après le texte
    - en background image avec un padding pour le texte -> ne marche pas dans le cas où la puce est après le texte (sauf si le texte est aligné à droite mais bon ...)

    J'espère trouver une solution css pratique parce que ajouter à la main à chaque fois les balises images :s et pire pour la maintenance aie... Merci d'avance !

  2. #2
    Membre émérite Avatar de c_s_s
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 619
    Par défaut
    Bonjour

    Peut-être avec une image après le texte ?
    Avec un class particulier dans le conteneur de [texte - puce] tu peux faire apparaître ou non l'image.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <span class="texte-puce">
         <span class="puce-apres">
         texte
         <img src="puce.gif" alt="texte alternatif">
         <span>
    </span>
    et dans le CSS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .texte-puce img {	
    	display:none;
    }
    .puce-apres img {	
    	display:inline;
    }
    Si le class "puce-apres" est présent, l'image s'affiche. Sinon, elle ne s'affiche pas.

    C'est un peu tiré par les cheveux, mais tant qu'IE n'interprètera pas la pseudo-class :after, il faudra ruser.


  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Merci pour cette réponse mais ça ne répond pas vraiment à mon problème.
    En fait j'aimerais vraiment externaliser l'image, donc ne plus avoir à la répéter à chaque fois mais juste une seule fois dans le css.
    Peut-être c'est pas possible ^^, je sais pas j'espère pas :/

  4. #4
    Membre émérite Avatar de c_s_s
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 619
    Par défaut
    Ok, une deuxième solution alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="puce apres">Texte</span>
    Si tu veux mettre le puce avant, bah il faut mettre "puce avant" au lieu de "puce apres".


    Le css

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .puce.avant {
    	padding:0 0 0 20px;
    	background:url(puce.gif) no-repeat left 50%;
    }
    .puce.apres {
    	padding:0 20px 0 0;
    	background:url(puce.gif) no-repeat right 50%;
    }
    Evidemment, le padding est de 20px à titre d'exmple. A toi de l'adapter en fonction de la largeur de ta puce.
    De même, j'ai positionné mon image à 50% en hauteur pour qu'elle soit alignée avec le texte, mais tu peux adapter en fonction de tes marges.


    J'ai un autre solution si tu dois mettre les puces avant et après le texte.

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Uip voilà ça c'est la solution 3 que j'ai dit, mais c'est exactement ce qui faudrait.
    En fait j'avais laché l'affaire parce que ca ne marchait pas, ca affichait :
    |texte >| au lieu de
    |texte > | mais en réessayant ce que tu viens de me dire je suis con de pas avoir plus creusé.

    En fait le problème vient de la largeur du span par rapport au texte. Mon span prend la taille du conteneur dans lequel il est du coup la puce s'affiche a droite du span mais beaucoup trop loin du texte. En foutant width:auto ça ne marche pas, comment je peux faire pour adapter la taille du span automatiquement à la taille du texte + la puce?

  6. #6
    Membre émérite Avatar de c_s_s
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 619
    Par défaut
    Citation Envoyé par Kywhod Voir le message
    Mon span prend la taille du conteneur dans lequel il est du coup la puce s'affiche a droite du span mais beaucoup trop loin du texte.
    Là il y a un problème. Si ton span s'adapte à la largeur de ton texte, et si la puce est en background de ce span, elle ne peut pas dépasser la largeur de ton span, donc elle doit rester près du texte, sauf si tu as mis un padding droit gigantesque.


    Si tu veux voir mon exemple, regarde ici : http://www.ellm.net/puce.html

Discussions similaires

  1. [MySQL] [SGBD] [mssql] Equivalent mysql_real_escape_string pour mssql
    Par PoZZyX dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/10/2005, 11h37
  2. Equivalent HttpZip pour Apache
    Par maff dans le forum Apache
    Réponses: 1
    Dernier message: 13/09/2005, 21h09
  3. [débutant] equivalent à sprintf pour les std::string
    Par Biosox dans le forum SL & STL
    Réponses: 22
    Dernier message: 26/08/2005, 12h46
  4. Equivalent à TCppWebBrowser pour BCB5 Standard
    Par bartfr dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2004, 16h11
  5. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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