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 :

Safari 10 et erreurs flexbox


Sujet :

Positionnement en CSS avec flexbox

  1. #1
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut Safari 10 et erreurs flexbox
    Hello,

    j'ai un affichage de cards qui est incorrect sur des version <= a Safari 10.

    display: flex; fonctionne correctement sous Firefox et Chrome.

    La solution suivante casse tout mon layout :
    display: webkit-box;

    En gros j'ai besoin de faire ceci :
    - si j'ai affaire à Salari en version 10 alors appliquer display:block à toutes mes cards.

    Ce qui reste possible de manière dégeulasse en sélectionnant toutes mes cards au chargement du document, d'extraire avec des regex la nomn du navigateur et la version à partir du userAgent et si c'est Safari <= 10 mettre un display:block en style inline.

    C'est absolument pas propre mais je ne vois pas d'autre solution.
    Exprimer une différence d'opinion vaut mieux que :

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 739
    Points
    4 739
    Par défaut
    rien de nouveau sous le soleil, ça fait partie des info à connaitre avant de ce lancer dans la maquette d'un site : savoir quels navigateurs son ciblés, et ce qu'il est possible ou non de faire.

    => https://caniuse.com/#search=flexbox
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

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


    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
    }

  4. #4
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Bien essayé mais ça n'a aucun effet sur mon layout sur l'avant dernière version de Sarai (10), le seul affichage potable c'est de mettre du display: block;
    Exprimer une différence d'opinion vaut mieux que :

  5. #5
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Alors, j'ai corrigé le problème de cette façon :

    CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .safari-flex
    {
        display: block !important;
    }
    Lors du chargement de ce document, je vise les versions de Safari de 6 à 10 en utilisant le userAgent et un filtre de versions pour Sarari.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    _.safariFlexboxHack = function ()
    {
        var userAgent = navigator.userAgent;
     
        if ( userAgent.match("Safari" ) && userAgent.match( "Version\/([6-9]|10)" ) )
        {            
            var cards = document.querySelectorAll( "div.card" );
     
            for ( var cardIndex = 0; cardIndex < cards.length; cardIndex++ )
            {
                cards[ cardIndex ].classList.add( "safari-flex" );
            }
        }
    }

    Ce correctif fonctionne pour les versions de Safari 6.2 ou ultérieures.

    Les éléments n'ont pas tous la même hauteur sur le rendu final mais le texte est désormais visible.
    Exprimer une différence d'opinion vaut mieux que :

Discussions similaires

  1. Erreur JavaScript sous Chrome, Safari et IE8
    Par hsii04 dans le forum IGN API Géoportail
    Réponses: 16
    Dernier message: 04/07/2010, 12h26
  2. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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