Bonjour à toutes et tous,

Je suis junior dans le métier et totalement débutant sur GRID.

J'ai réalisé (avec l'aide de Raphaël sur ce forum d'ailleurs Smiley cligne ) une partie de mon site en grid (affichage instagram).

Mon soucis c'est que ça fonctionne parfaitement sur firefox et chrome mais ie, safari et Edge ... disons que c'est moins clean lol.

Voici les lignes que j'ai :



.insta-list {
    display: grid;
    grid-gap: 0rem;
    display: -ms-grid;
    -ms-grid-columns: 33.33% 33.33% 33.33% 33.33%;
    grid-template-columns: repeat(auto-fit, 33.33%);
    -ms-grid-rows: 50%;
    grid-auto-rows: 50%;
    margin-left: -0.1px;
    margin-bottom: -0.1px;
}

.insta-list img {
    max-width: 100%;
    align-self: stretch;
    justify-self: stretch;
    object-fit: cover;
    height: 50%;
}


Pourriez-vous me filer un coup de pouce pour le rendre compatible svp ?

Merci d'avance.
Modifié par Bidules (05 Jul 2018 - 23:52)
Modérateur
As-tu une exemple en ligne pour voir le problème ? C'est assez compliqué de dire ce qui cloche avec simplement le css (sans rendu et html en vis à vis) Smiley smile
Bien sûr désolé j’ai oublié ...

Clairegindre.com

Le bug est sur la partie en bas de page Instagram.

Merci.
J’ai ca à modifier. Ma femme étant photographe elle a besoin de mettre du hd mais il faut que je trouve un moyen d’optimiser ça ...

Débutant ... désolé les amis.
Modérateur
Salut,

Par contre IE je ne pense pas que grid soit supporté, il va te falloir un Fallback.
https://caniuse.com/#feat=css-grid Can i use précise qu'ie supprote une ancienne version de la spec avec le préfixe -ms-. Donc pour IE il faut se baser sur ces propriétés là : https://www.w3.org/TR/2011/WD-css3-grid-layout-20110407/#grid-concepts en rajoutant les-ms-

-ms-grid-columns
-ms-grid-rows

-ms-grid-row
-ms-grid-column
-ms-grid-column-span

Voila un exemple qui marche sous IE : https://codepen.io/anon/pen/LrKBvR
(Et je pense qu'il va falloir positionner chaque image avec -ms-grid-row et -ms-grid-column


Et quand tu parle de Safari c'est sur quel terminal ? Un mac ? Un ipad ? Un PC Windows ?
Modifié par _laurent (06 Jul 2018 - 14:38)
Merci à vous deux pour vos réponses ! Je regarde dans le week-end.

J’ai utilisé GD déjà pour resize certaines images déjà.
_laurent a écrit :
Salut,

Par contre IE je ne pense pas que grid soit supporté, il va te falloir un Fallback.
https://caniuse.com/#feat=css-grid Can i use précise qu'ie supprote une ancienne version de la spec avec le préfixe -ms-. Donc pour IE il faut se baser sur ces propriétés là : https://www.w3.org/TR/2011/WD-css3-grid-layout-20110407/#grid-concepts en rajoutant les-ms-

-ms-grid-columns
-ms-grid-rows

-ms-grid-row
-ms-grid-column
-ms-grid-column-span

Voila un exemple qui marche sous IE : https://codepen.io/anon/pen/LrKBvR
(Et je pense qu'il va falloir positionner chaque image avec -ms-grid-row et -ms-grid-column


Et quand tu parle de Safari c'est sur quel terminal ? Un mac ? Un ipad ? Un PC Windows ?


C’est sur un iMac 27 sous chrome et safari mais aussi nouveau Mac book pro safari.
Hello,

Un petit topo de mon avancement. Merci milles fois pour les srcset car ça fonctionne à merveille ! Je viens de diviser mon temps par je ne sais combien sur mobile en 4G !

En revanche pour mon histoire de vignettes instagram en bas de page c'est toujours compliqué Smiley decu

Je n'arrive pas à trouver de solution que ce soit sur Firefox (Mac version) ou safari sur imac 27" ou macbook pro 15" c'est toujours le bazar Smiley decu
L'image de fond est vraiment lente à charger et je suis à moins d'un kilomètre d'un central téléphonique.
Elle pèse actuellement 1 Mo pour une taille de 1440x955px. C'est vraiment beaucoup.
En la compressant à 80% avec Gimp, en virant les données Exif et XMP, le poids du fichier 246Ko sans qu'il y est une différence notable de qualité.
1440x955px est une taille bancale, AMHA.
Un écran normal a une taille de 1920x1080px
un ordinateur portable de 15" a une taille d'écran de 1366 x 768px
un mac-pro 27" a une taille d'écran de 5120 x 2880px. Mais cela coûte un bras

Pour les vignettes, la soirée est chargée aujourd'hui Smiley lol
Merci pour ce retour bazooka. Je vois qu’il est encore largement possible d’optimiser tout ça ????.

Les tailles des photos sont celles fournies par ma cliente photographe et bien entendu elle ne souhaite retoucher à l’image autant de fois que nécessaire. Ce sera donc à moi de resize l’image lors de l’upload (avec gd car je ne sais utiliser que cette bibliothèque pour le moment).

Ce que je crains c’est qu’en forçant la taille tant en largeur qu’en hauteur cela modifie complètement le visuel de l’image ?

Désolé je suis loin de maîtriser toutes ces choses encore Smiley decu .

Concernant mes vignettes Instagram si je dois passer par une solution autre que grid cela ne me gêne absolument pas. C’est grâce à Raphaël que j’avais déjà réussi à réaliser ce format.

Pour info j’utilise bootstrap pour les grilles (si jamais ...). J’ai passé l’après midi dessus encore mais rien n’y fait soit mon image se déforme soit elle ne se resize pas en gardant un format carré.

Ça me rend dingue !

En tout cas je te remercie du temps que tu as pris pour m’aider.
bonjour,

je viens un peut tard sur le sujet, mais j'ai le même problème.

je me suis mis à Grid Layout dans le cadre d'une formation de développeur web.
mes formateurs ne sachant pas l'utiliser j'ai acheté le livre de Raphaël Goetter (j'avais déjà commencé par son livre sur Flexbox.

mais voila j'ai le même problème, impossible d'avoir une mise en page ok sur IE et Safari (sous windows, pas vue sur apple).

j'ai utilisé un préfixer automatique sur internet pour préfixer tout mon css.

pour info j'utilise le préprocesseur SASS pour travailler mon css

mes pages en cours (1 de faite au moment de se message)

http://cda12.2isa.org/

je suis ouvert à toutes aides qui me permettra de ne plus m'arracher les cheveux.

fonctionne bien sous : (ok se sont les dernières versions)
Opera Version :62.0.3331.99
chrome Version 75.0.3770.142
Microsoft Edge 44.18362.267.0
Firefox version : 69.0b9
merci bacasable

je voulais pas ouvrir une autre ligne, je pensais que celle là permettrais de rassembler les infos.

merci beaucoup pour l'info sur Safari

et oui je me sers de caniuse pour travailler et grid normalement est compatible avec ces navigateur, même, dixit Raphaël Goetter qui dit dans son livre page 5 que cela n'est pas implémenté par defaut dans Safari.

par contre IE10 devrais le prendre.

maintenant est ce mon code qui n'est pas bon, mais je m'y suis repris plusieurs fois et "je pense" être bon là.

mon code html:

<!doctype html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Acceuil</title>

    <link rel="stylesheet" href="./css/style.css" type="text/css">

</head>
<body>
<!-- colonne 1 -->
<header id="header">

    <img src="./img/site/logoFPD2019.png" alt="logo"/>

</header>
<!-- colonne 2 -->
<div id="menuHeader">
    <ul>
        <li><a href="#">Votre compte</a></li>
        <li><a href="#">Panier</a></li>
    </ul>
</div>
<!-- colonne 3 -->
<nav id="navPrincipal">
    <ul>
        <li><a href="#">Accueil</a></li>
        <li><a href="./pages/films.html">Films</a></li>
        <li><a href="./pages/realisation.html">Production</a></li>
        <li><a href="./pages/association.html">Association</a></li>
    </ul>
</nav>

<!-- colonne 4 -->
<main id="main">

    <aside id="aside"></aside>

    <div id="blocArticle">

        <img id="jacquetteAccueil" src="./img/jaquettes/5.jpg" alt="jaquette"/>

        <article id="article">
        <h2>Résumé</h2>
        <p>

            Lorsque l’enfant est opposant, lorsque l’adulte souhaite faire preuve d’autorité, lorsque parfois l’adulte est débordé par ses propres pulsions de colère, il n’est pas toujours aisé de trouver le juste ton, la juste place face à l’enfant. Parents, éducateurs, professeurs, nous sommes tous confrontés à cette réalité qui est notre aptitude à gérer les relations conflictuelles avec un enfant. Reliée à notre propre histoire, reliée à un contexte de situation mais également à une pression sociale, cette aptitude va être différente pour chacun et va générer des relations différentes à l’enfant. Pour illustrer les propos d’intervenants professionnels ou de témoignages de parents, une compagnie de théatre a travaillé pendant 6 mois avec des jeunes de 6 à 19 ans, sur des saynètes recréant des conflits adultes/enfants. Dans le but d’accompagner et non pas de culpabiliser, le film alternera les saynètes aux propos des adultes et proposera ainsi des pistes de réflexion autour de ce thème essentiel, structurant pour l’enfant mais souvent tabou…</p>

        </article>

    </div>

</main>


<!-- colonne 5 -->
<footer id="footer">

    <!--debut de la liste des partenaires-->
    <div id="partenaires">
        <ul id="listePartenaire">
            <li class="titreListe">Partenaire</li>
            <li>
                <ul>
                    <li class="logoPartenaire">
                        <a href="http://www.caf.fr/allocataires/caf-du-finistere/accueil"
                           target="_blank">
                            <img
                                    src="img/site/caf-finistere.png"
                                    alt="Logo lien de la CAF du Finistére"
                                    title="Lien vers la CAF du Finistére"
                                    class="logoPartenaire"/>
                        </a>
                        <hr/>
                    </li>
                    <li class="logoPartenaire">
                        <a href="http://galipette-asso.fr/index.php/l-association"
                           target="_blank">
                            <img
                                    src="img/site/galipette.png"
                                    alt="Logo lien vers le site de l'association Galipette, association pour enfants"
                                    title="Lien vers le site de l'association Galipette"
                                    class="logoPartenaire"/>
                        </a>
                        <hr/>
                    </li>
                    <li class="logoPartenaire">
                        <a href="http://www.poher.bzh/accueil_poher" target="_blank">
                            <img
                                    src="img/site/logo-poher.png"
                                    alt="Logo lien vers Poher-Communauté"
                                    title="Lien vers le site du Poher-Communauté"
                                    class="logoPartenaire"/>
                        </a>
                        <hr/>
                    </li>
                    <li class="logoPartenaire">
                        <a href="https://www.finistere.fr/" target="_blank">
                            <img
                                    src="img/site/logo-Finistere-1.png"
                                    alt="Logo lien vers le site régional du Finistére"
                                    title="Lien vers le site régional du Finistére"
                                    class="logoPartenaire"/>
                        </a>
                        <hr/>
                    </li>
                    <li class="logoPartenaire">
                        <a href="http://www.infoparent29.fr/spip.php?rubrique48" target="_blank">
                            <img
                                    src="img/site/reapp-finistere.png"
                                    alt="Logo lien vers l'association REAPP du Finistére"
                                    title="Lien vers l'association REAPP du Finistére"
                                    class="logoPartenaire"/>
                        </a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
    <!--fin de la liste des partenaires-->

    <!--debut adresse de contact-->
    <div id="blocAdresse">

        <ul id="contact">
            <li class="titreListe">Contact</li>
            <li>
                <ul>
                    <li class="adresse">Maison de l'enfance</li>
                    <li class="adresse">7 route de Kerniguez</li>
                    <li class="adresse">29270 Carhaix-Plouguer</li>
                    <li class="adresse">tél: 06 76 69 18 93</li>
                </ul>
            </li>
        </ul>
    </div>
    <!--fin adresse de contact-->

    <!--debut information connexes-->
    <div id="asideInfo">

        <ul id="infoAnnexe">
            <li class="titreListeInfo">Condition général de ventes</li>
            <li class="titreListeInfo">Mentions légales</li>
            <li>
                <ul id="iconeResauxSociaux">

                    <li class="reseauxSociaux">
                        <a href="https://fr-fr.facebook.com/preparonsdemain" target="_blank">
                            <img
                                    src="img/site/facebook.png"
                                    alt="Icone lien vers le site Facebook de l'association Films Preparons Demain"
                                    title="Site Facebook de Films Preparon Demain" class="logoReseaux"/>
                        </a>
                    </li>
                    <li class="reseauxSociaux">
                        <a href="https://www.youtube.com/user/PreparonsDemain" target="_blank">
                            <img
                                    src="img/site/youtube.png"
                                    alt="Icone lien vers la chaine YouTube de l'association Films Préparons Demain"
                                    title="Chaine YouTube de l'association Films Préparon Demain" class="logoReseaux"/>
                        </a>
                    </li>
                    <li class="reseauxSociaux">
                        <a href="mailto:filmspreparonsdemain@gmail.com" target="_blank">
                            <img
                                    src="img/site/courrier.png"
                                    alt="Icone lien pour envoyer un courrier via votre messagerie par défaut"
                                    title="Nous écrire"
                                    class="logoReseaux"/>
                        </a>
                    </li>

                </ul>
            </li>
        </ul>

    </div>
    <!--fin informations connexes-->
</footer>

</body>
</html>


mon code css une fois passé à la moulinette de SASS

#blocArticle {
display: -ms-grid;
display: grid;
-ms-grid-columns: 40% 60%;
grid-template-columns: 40% 60%;
-ms-grid-rows: 5% 85% 5% 5%;
grid-template-rows: 5% 85% 5% 5%
}

#blocArticle #jacquetteAccueil {
-ms-grid-column: 1;
-ms-grid-column-span: 1;
grid-column: 1 / 2;
-ms-grid-row: 2;
-ms-grid-row-span: 1;
grid-row: 2 / 3;
max-width: 100%;
max-height: 100%;
-ms-grid-column-align: center;
justify-self: center
}

#blocArticle #article {
grid-column: 2 / -1;
-ms-grid-row: 2;
-ms-grid-row-span: 1;
grid-row: 2 / 3
}

#blocArticle #article h2 {
padding: 0 0 15px 0
}

#blocArticle #article p {
padding: 0 50px 50px 50px;
max-width: 100%;
max-height: 100%
}

#blocArticle>*:nth-child(1) {
-ms-grid-row: 1;
-ms-grid-column: 1
}

#blocArticle>*:nth-child(2) {
-ms-grid-row: 1;
-ms-grid-column: 2
}

#blocArticle>*:nth-child(3) {
-ms-grid-row: 2;
-ms-grid-column: 1
}

#blocArticle>*:nth-child(4) {
-ms-grid-row: 2;
-ms-grid-column: 2
}

#blocArticle>*:nth-child(5) {
-ms-grid-row: 3;
-ms-grid-column: 1
}

#blocArticle>*:nth-child(6) {
-ms-grid-row: 3;
-ms-grid-column: 2
}

#blocArticle>*:nth-child(7) {
-ms-grid-row: 4;
-ms-grid-column: 1
}

#blocArticle>*:nth-child(8) {
-ms-grid-row: 4;
-ms-grid-column: 2
}

#footer {
background-color: rgba(55, 55, 56, 0.34);
display: grid;
grid-template-columns: repeat(12, 1fr);
padding: 0 150px 50px 150px;
margin: 5px;
border-top: cadetblue 1px solid
}

#footer #partenaires {
margin-top: 25px;
grid-column: span 3
}

#footer #partenaires .logoPartenaire {
padding: 0 0 5px 20px
}

#footer #blocAdresse {
margin-top: 25px;
grid-column: 6 / span 4
}

#footer #blocAdresse .adresse {
padding: 0 0 0 20px
}

#footer #asideInfo {
margin-top: 25px;
grid-column: span 3;
justify-items: end
}

#footer .titreListe {
margin: 10px 0 20px 0;
font-weight: bold
}

#footer .titreListeInfo {
font-weight: bold
}

#footer .reseauxSociaux {
display: inline-flex;
margin: 20px 10px 0 20px
}

#header {
padding: 30px 0 0 80px;
margin-top: 50px
}

#main {
display: -ms-grid;
display: grid;
-ms-grid-columns: 27% 73%;
grid-template-columns: 27% 73%;
-ms-grid-rows: 1fr;
grid-template-rows: 1fr;
padding: 25px
}

#menuHeader {
justify-self: end;
padding: 10px 250px 0 0
}

#menuHeader ul li {
display: inline-flex
}

#menuHeader ul li a {
padding: 20px
}

#navPrincipal {
-ms-grid-column-align: end;
justify-self: end;
line-height: 180%;
font-size: 1.6em
}

#navPrincipal ul {
margin: 100px 0 0 0
}

#asideFilm {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr;
grid-template-columns: 1fr;
-ms-grid-rows: 25% 75%;
grid-template-rows: 25% 75%
}

#asideFilm h1 {
margin: 50px 0 50px 50px;
font-weight: bold;
line-height: 150%
}

#asideFilm h1 #titreFilm {
font-style: oblique
}

#asideFilm img {
grid-row: 2;
justify-self: center;
max-width: 80%;
max-height: 80%
}

#blocArticleFilm {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr;
grid-template-columns: 1fr;
-ms-grid-rows: 75% 25%;
grid-template-rows: 75% 25%
}

#blocArticleFilm #articleFilm {
grid-column: 2;
grid-row: 1;
margin-top: 100px
}

#blocArticleFilm #articleFilm p {
margin: 0 75px 0 50px
}

#blocArticleFilm #formulaireQuantiteCommande {
grid-column: 2;
grid-row: 2;
justify-self: end;
padding: 0 50px 0 0
}

#blocArticleFilm #formulaireQuantiteCommande ul li {
display: inline-flex;
padding-right: 20px
}

* {
padding: 0;
margin: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box
}

body {
background: linear-gradient(to top, #f3f3f3, #e9e9e9, #d1cac6);
font-size: 1.2em;
font-family: Garamond, sans-serif;
line-height: 120%;
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr [12];
grid-template-columns: repeat(12, 1fr);
-ms-grid-rows: auto [3];
grid-template-rows: repeat(3, auto)
}

body #header {
-ms-grid-column-span: 8;
grid-column: span 8
}

body #menuHeader {
-ms-grid-column-span: 4;
grid-column: span 4
}

body #navPrincipal {
-ms-grid-column-span: 3;
grid-column: span 3
}

body #main {
-ms-grid-column-span: 9;
grid-column: span 9
}

body #footer {
grid-column: 1 / -1
}

body>*:nth-child(1) {
-ms-grid-row: 1;
-ms-grid-column: 1
}

body>*:nth-child(2) {
-ms-grid-row: 1;
-ms-grid-column: 2
}

body>*:nth-child(3) {
-ms-grid-row: 1;
-ms-grid-column: 3
}

body>*:nth-child(4) {
-ms-grid-row: 1;
-ms-grid-column: 4
}

body>*:nth-child(5) {
-ms-grid-row: 1;
-ms-grid-column: 5
}

body>*:nth-child(6) {
-ms-grid-row: 1;
-ms-grid-column: 6
}

body>*:nth-child(7) {
-ms-grid-row: 1;
-ms-grid-column: 7
}

body>*:nth-child(8) {
-ms-grid-row: 1;
-ms-grid-column: 8
}

body>*:nth-child(9) {
-ms-grid-row: 1;
-ms-grid-column: 9
}

body>*:nth-child(10) {
-ms-grid-row: 1;
-ms-grid-column: 10
}

body>*:nth-child(11) {
-ms-grid-row: 1;
-ms-grid-column: 11
}

body>*:nth-child(12) {
-ms-grid-row: 1;
-ms-grid-column: 12
}

body>*:nth-child(13) {
-ms-grid-row: 2;
-ms-grid-column: 1
}

body>*:nth-child(14) {
-ms-grid-row: 2;
-ms-grid-column: 2
}

body>*:nth-child(15) {
-ms-grid-row: 2;
-ms-grid-column: 3
}

body>*:nth-child(16) {
-ms-grid-row: 2;
-ms-grid-column: 4
}

body>*:nth-child(17) {
-ms-grid-row: 2;
-ms-grid-column: 5
}

body>*:nth-child(18) {
-ms-grid-row: 2;
-ms-grid-column: 6
}

body>*:nth-child(19) {
-ms-grid-row: 2;
-ms-grid-column: 7
}

body>*:nth-child(20) {
-ms-grid-row: 2;
-ms-grid-column: 8
}

body>*:nth-child(21) {
-ms-grid-row: 2;
-ms-grid-column: 9
}

body>*:nth-child(22) {
-ms-grid-row: 2;
-ms-grid-column: 10
}

body>*:nth-child(23) {
-ms-grid-row: 2;
-ms-grid-column: 11
}

body>*:nth-child(24) {
-ms-grid-row: 2;
-ms-grid-column: 12
}

body>*:nth-child(25) {
-ms-grid-row: 3;
-ms-grid-column: 1
}

body>*:nth-child(26) {
-ms-grid-row: 3;
-ms-grid-column: 2
}

body>*:nth-child(27) {
-ms-grid-row: 3;
-ms-grid-column: 3
}

body>*:nth-child(28) {
-ms-grid-row: 3;
-ms-grid-column: 4
}

body>*:nth-child(29) {
-ms-grid-row: 3;
-ms-grid-column: 5
}

body>*:nth-child(30) {
-ms-grid-row: 3;
-ms-grid-column: 6
}

body>*:nth-child(31) {
-ms-grid-row: 3;
-ms-grid-column: 7
}

body>*:nth-child(32) {
-ms-grid-row: 3;
-ms-grid-column: 8
}

body>*:nth-child(33) {
-ms-grid-row: 3;
-ms-grid-column: 9
}

body>*:nth-child(34) {
-ms-grid-row: 3;
-ms-grid-column: 10
}

body>*:nth-child(35) {
-ms-grid-row: 3;
-ms-grid-column: 11
}

body>*:nth-child(36) {
-ms-grid-row: 3;
-ms-grid-column: 12
}

li {
list-style-type: none
}

a {
text-decoration: none;
color: #000;
cursor: pointer
}
De ce que je lis sur caniuse c'est supporté sur IE10 mais la syntaxe est différente ce qui est pas très pratique. Smiley cligne

Je pourrai pas te dire plus sur les différences car j'ai jamais testé grid plus que ça.