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 :

Background-attachment: fixed ne fonctionne pas sur mobile


Sujet :

CSS

  1. #1
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut Background-attachment: fixed ne fonctionne pas sur mobile
    Bonjour à tous,

    Je suis en train de créer un site et je suis confronté à un problème : Mon background-attachment: fixed ne fonctionne pas sur mobiles et tablettes.

    Je vous ai fait deux vidéos provisoires pour vous montrer le problème, une prise sur Mac et une prise sur iPad.
    Le résultat souhaité est sur la vidéo prise sur Mac.

    Mac :


    iPad :


    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    body 
     
     
    		{
    			background-image: url("../../images/mur.jpg");
    			background-attachment: fixed;
    			background-position: center;
    			background-repeat: no-repeat;
    			background-size: cover;
     
    		}

    A savoir que dans le futur, "mur.jpg" sera du code SVG directement dans le CSS pour des raisons de performance (je ne sais pas s'il y a des choses à savoir en plus concernant mon problème)

    Je vous remercie

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    problème de compatibilité (Safari) :


  3. #3
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    Merci pour ta réponse.

    Est-ce qu'à ta connaissance il y aurait un moyen en CSS de contourner cette incompatibilité pour obtenir le même effet ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    J'ai trouvé la solution sur internet grâce à ton aide, merci de m'avoir aiguillé.

    Voici le code adapté à mon utilisation pour contourner le problème :

    Il faut mettre une div à l'intérieur du body
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="bg"></div>

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	#bg {
     
    background: url(../../images/mur.jpg) top;
    height:100%;
    width:100%;
    position:fixed;
    background-position: center;
    background-size: cover;	
    background-repeat: no-repeat;
     
    		}

    Si j'ai bien compris les explications, ios doit en quelque sorte redimensionner la taille du corps pour qu'elle soit aussi grande que le contenu. Je ne suis pas sur d'avoir tout compris mais ça fonctionne.

  5. #5
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Une solution : utiliser une div en position:fixed

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <body>
    <div id="bodyFixed"></div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #bodyFixed { 
      position:fixed; overflow:hidden; top:0; left:0; right:0; width:100vw; height:100vh; 
      background:url(https://us.123rf.com/450wm/rawpixel/rawpixel1903/rawpixel190305535/124220058-vecteur-de-fond-textur%C3%A9-brique-gris-fonc%C3%A9.jpg) top center repeat;
    }

    [EDIT] oups... le temps d'écrire le code...

  6. #6
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    Merci

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    pour tout savoir, il existe également Can I use..., dans ton cas : CSS3 Background-image options, avec annotation des « Known issues » et autres ...

    Concernant le palliatif il est une façon, qui m'apparaît comme plus « élégante » qui consiste à utilser le pseudo-élement ::before sur le <body>.
    On n'ajoute donc pas d'élément, il suffit de modifier le CSS pour que cela soit pris en compte par tous les fichiers HTML concernés.

    Cela donne quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    body::before {
      content: "";
      position: fixed;
      width: 100vw;
      height: 100vh;
      background-image: url(adresse-de-l-image);
    }
    ...le reste étant éventuellement à définir suivant l'image.

  8. #8
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    NoSmoking, je viens d'essayer ta solution et elle fonctionne tout aussi bien.
    J'ai modifié mon code pour adopter ta solution qui est un peu plus propre effectivement.

    Merci !

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

Discussions similaires

  1. SpeechRecognition ne fonctionne pas sur chrome mobile
    Par QAYS dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/10/2017, 11h28
  2. [CSS 3] Menu déroulant ne fonctionne pas sur mobile
    Par xlucie dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 29/06/2014, 13h54
  3. Tubular (vidéo background) ne fonctionne pas sur ipad
    Par DevilYann dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 01/08/2012, 15h00
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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