Je fais un petit site (http://ekkaia.tk/, mon code est ici → https://codepen.io/Ekkaia/pen/BdZXPz) et j'aurai besoin d'un coup de main . Je souhaiterai adapter les carrés qui composent le corps de mon site aux mobiles. Comme vous le voyez, ils sont en rangés de deux (sauf pour celui du milieu) quand ils s'affichent sur ordinateur. Mais sur mobile, ils apparaissent un par un (ce qui est moche).
Comment faire pour que mes carrés apparaissent aussi par rangés sur mobile ? J'ai placer des balises <section> pour définir chaque rangée, je pense qu'elles doivent me servir pour définir une rangée comme un élément qu'il ne faut pas couper en deux, mais comment faire ?
tu fixes des largeurs à chacun de tes éléments : forcément il arrive un moment où 1rem + 300px + 1rem + 1rem + 300px + 1rem, ça ne tient plus sur une ligne…
Je ne te conseille pas de garder tes carrés par deux sur mobile : imagine-toi un écran de 320px de large, avec deux carrés, ça fait pas bien gros…
Je conseille, sur petit écran, de ne plus fixer lesdites largeurs, de laisser tranquillou les blocs prendre leur largeur maximale (en leur mettant un display: block bien sûr).
Je pense d'ailleurs que tu gagnerais à mettre tout ce petit monde dans un seul bloc avec display: flex; flex-wrap: wrap; plutôt que une section par ligne et des inline-block un peu bancals.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
D'accord, je trouve que c'est effectivement mieux. Du coup avec les medias queries je met un "display:block" sur "main" directement ? Et je remplace pour tout mes carrés le "display:inline-block" par "display: flex; flex-wrap: wrap;" ? Ce n'est pas une bonne chose de mettre une largeur sur chacun des carrés ?
Pour la version petit écran (dans une media query, en effet), je mettrais simplement width: auto sur tes carrés.
Fixer une largeur n'est pas forcément une mauvaise idée : si le périphérique final est suffisant grand, ça passe très bien. Sur petits écrans (ou sur très grands, faut tester)… ben, moins. Teste en diminuant fortement la largeur de ta fenêtre.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Sinon, je peux essayer avec des pourcentages plutôt que des pixels ?
Je résume tes conseils (tu me dis si je me trompe) :
Sur mobile, n'avoir qu'un carré par ligne.
Avec une media query, ne pas fixer les largeurs, mettre un "display: block" et un "width: auto". Mais du coup je le fais sur les cartes à proprement parler, c'est-à-dire ".card", ".card-large", etc ? ou directement sur "main" qui les contient ?
Mettre tout mes carrés dans un même bloc (avec "div" ou directement avec "main" ?) et lui attribuer "display: flex; flex-wrap: wrap;".
Supprimer les "sections" et les "display: inline-block;".
Aussi : mais attention, si tu fais du flexible pur, pense à bien mettre des limites. (et aussi que 1rem + 50% + 1rem + 1rem + 50% + 1rem, c'est plus grand que 100% ! si tu veux jouer avec ça, inspire-toi de la grille de Bootstrap v4, elle est bien fichue)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
D'accord, je vais voir ça... j'ai trouvé quelques exemples de "responsive squares" qui pourrait me servir si je met les largeurs en pourcentage. J'ai quelques questions par rapport à tes conseils, elles sont dans le résumé que j'ai fais plus haut
Ben faut donner une largeur maximale à ta section globale (environ 680px, mais il faudra calculer plus précisément, et/ou mettre des marges en pixels et non en em ou en rem), et la centrer avec margin: 0 auto.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Re-bonjour ! Je souhaite que lorsque l'écran est petit, les carrés s'affichent un par un, en colonne. J'ai un début de résultat avec "flex-direction: column;" dans la media query mais je ne sais pas comment faire pour que le carré large se redimensionne en 300x300px comme les autres. Merci d'avance
Ben, déjà, de base, tu ne devrais pas lui mettre 100% de largeur, à ton "carré large" Ne lui précise rien ou bien mets width: auto. Ensuite, sur petit écran, je croyais que tu partais sur des "carrés" sans largeur définie ? Mais sinon ben il suffit de lui donner une largeur dans une déclaration de media query, je saisis pas où ça bloque.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Effectivement, c'était tout simple ça fait un moment que j'ai pas toucher au code de mon site, j'ai du mal à m'y remettre apparemment... Cependant, est-ce que vous savez pourquoi les carrés se collent sur la gauche lorsqu'ils s'affichent sur un petit écran ? Le "margin:auto" de "content" devrait les centrer normalement, non ?
CSS : Problème d'adaptation sur mobile
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)