Les "sprites responsives"
Résolu
kitchi76
Messages postés
199
Date d'inscription
Statut
Membre
Dernière intervention
-
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
Bonjour ou bonsoir à tous,
Ça fait 2 jours que je me creuse la tête sur ce problème et je ne trouve malheureusement pas de réponse.
Bien alors je suis en train de créer un site web responsive et je n'ai pas trop de problème avec ça mais en construisant mon menu qui contiendra une image avec sa description en dessous en forme de lien,je me suis retrouvé coincé.
Pour le positionnement,aucun problème,je retrouve bien mon bouton de menu (qui contiendra une image) et le nom au dessous et je peux naviguer sur mon site sans problème en cliquant sur le bouton.Voici le code html:
<nav>
<a href="#"><figure class="lien 1"></figure>lien 1</a>
<a href="#"><figure class="lien 2"></figure>lien 2</a>
<a href="#"><figure class="lien 3"></figure>lien 3</a>
<a href="#"><figure class="lien 4"></figure>lien 4</a>
<a href="#"><figure class="lien 5"></figure>lien 5</a>
</nav>
Et voici le css:
nav{
width: 72.91666666666667%;
height:110px;
margin-left: auto;
margin-right: auto;
background-color: #924849;
text-align:center;
}
nav a{
width: 11.42857142857143%;
height: 90.90909090909091%;
margin-left: 7.142857142857143%;
display: block;
background-color: #E0FF00;
float: left;
}
nav figure{
width: 100%;
height: 80%;
margin: 0;
background-image: url(../img/image_nav.jpg);
background-repeat: no-repeat;
background-position: left top;
}
Sur Photoshop,je me suis créer un sprite pour alléger un maximum mon code html et je me sers de ce sprite pour définir l'image qui sera sur mes boutons en les positionnant selon les classes que je leur ai donné.Voici ce code:
nav .lien_2{
background-position: -80px top;
}
nav .lien_3{
background-position: -160px top;
}
nav .lien_4{
background-position: -240px top;
}
nav .lien_5{
background-position: -320px top;
}
Je n'ai pas mis de background-size puisque mon sprite fait 400*240px et que mes boutons font 80*80px et en sachant aussi que j'ai un code pour l'hover et pour l'active qui automatiquement,font la même chose.
J'en viens enfin à mon problème.
Quand je lance mon site dans mon navigateur et en plein écran,pas de problème,mes images sont bien là à leur place mais quand je diminue la largeur de mon navigateur,les images ne suivent pas et restent figées.Ce qui fait que même si je réduit le navigateur de quelques pixels,les images se retrouvent coupées car mes bloc suivent la diminution mais pas l'image.
Je ne sais pas si j'ai été assez clair mais si je ne le suis pas,dîtes le moi et je serais plus précis car c'est important pour moi.
Merci d'avance pour votre aide.
Ça fait 2 jours que je me creuse la tête sur ce problème et je ne trouve malheureusement pas de réponse.
Bien alors je suis en train de créer un site web responsive et je n'ai pas trop de problème avec ça mais en construisant mon menu qui contiendra une image avec sa description en dessous en forme de lien,je me suis retrouvé coincé.
Pour le positionnement,aucun problème,je retrouve bien mon bouton de menu (qui contiendra une image) et le nom au dessous et je peux naviguer sur mon site sans problème en cliquant sur le bouton.Voici le code html:
<nav>
<a href="#"><figure class="lien 1"></figure>lien 1</a>
<a href="#"><figure class="lien 2"></figure>lien 2</a>
<a href="#"><figure class="lien 3"></figure>lien 3</a>
<a href="#"><figure class="lien 4"></figure>lien 4</a>
<a href="#"><figure class="lien 5"></figure>lien 5</a>
</nav>
Et voici le css:
nav{
width: 72.91666666666667%;
height:110px;
margin-left: auto;
margin-right: auto;
background-color: #924849;
text-align:center;
}
nav a{
width: 11.42857142857143%;
height: 90.90909090909091%;
margin-left: 7.142857142857143%;
display: block;
background-color: #E0FF00;
float: left;
}
nav figure{
width: 100%;
height: 80%;
margin: 0;
background-image: url(../img/image_nav.jpg);
background-repeat: no-repeat;
background-position: left top;
}
Sur Photoshop,je me suis créer un sprite pour alléger un maximum mon code html et je me sers de ce sprite pour définir l'image qui sera sur mes boutons en les positionnant selon les classes que je leur ai donné.Voici ce code:
nav .lien_2{
background-position: -80px top;
}
nav .lien_3{
background-position: -160px top;
}
nav .lien_4{
background-position: -240px top;
}
nav .lien_5{
background-position: -320px top;
}
Je n'ai pas mis de background-size puisque mon sprite fait 400*240px et que mes boutons font 80*80px et en sachant aussi que j'ai un code pour l'hover et pour l'active qui automatiquement,font la même chose.
J'en viens enfin à mon problème.
Quand je lance mon site dans mon navigateur et en plein écran,pas de problème,mes images sont bien là à leur place mais quand je diminue la largeur de mon navigateur,les images ne suivent pas et restent figées.Ce qui fait que même si je réduit le navigateur de quelques pixels,les images se retrouvent coupées car mes bloc suivent la diminution mais pas l'image.
Je ne sais pas si j'ai été assez clair mais si je ne le suis pas,dîtes le moi et je serais plus précis car c'est important pour moi.
Merci d'avance pour votre aide.
A voir également:
- Le fichier à télécharger contient une liste de chats. triez-la comme dans le tableau ci-dessous (attention, on ne voit que le début…). quel est le mot formé par les 8 dernières lettres de la colonne code ? liste de chats triée nom âge race poids kaze 5 birman 4,6 sid 5 birman 4,3 shrek 5 birman 4,0 nuts 5 birman 3,9 spy 5 birman 3,8 lys 5 birman 3,7 batman 5 birman 3,5 leaf 5 birman 3,4 po 5 birman 3,3 kik 5 birman 2,7 scratch 5 birman 2,4 sprite 4 birman 4,6 nash 4 birman 4,5 ploum 4 birman 4,2 minz 4 birman 4,1 loup 4 birman 4,0 fritz 4 birman 3,9 miog 4 birman 3,7 nice 4 birman 3,5 spoon 4 birman 3,5 mint 4 birman 3,3 flop 4 birman 2,8 serge 4 birman 2,6
- Code gta 4 ps4 - Guide
- Mot de passe livebox 5 - Guide
- Liste déroulante excel - Guide
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif ci-dessous. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. il manque 5 valeurs dans le tableau ci-dessous. retrouvez-les dans votre tableau, puis reportez-les arrondies à l’entier le plus proche. - Guide
- Le fichier à télécharger contient un mot caché. quel est le format du fichier ? quel est le mot caché ? - Forum Téléchargement
Ensuite,est-ce qu'il faut que je calcule le pourcentage par rapport à la taille de mon sprite ou par rapport à mon figure?Ou autre chose encore car je t'avoue que je ne sais pas là.
[edit]Ok,je viens d'essayer (c'est le pourcentage du sprite) et c'est mieux en effet mais la taille ne bouge pas en vertical même en ayant mis mes mesures en pourcentage.
pense aussi que background size peut prendre 2 valeurs mais après ca risque de déformer l'image de background
Merci encore en tout cas.
Donner un height en % causerait plusieurs problèmes de déformation suivant le ratio hauteur largeur de l'ecran et de l'orientation (landscape)
En responsive design on travaille sur le width mais pratiquement pas sur le height (en fait plus l'ecran est petit plus les contenus sont au dessus les uns de autres comme les étages d'un building)
Je serais toi je changerais de méthode
nav : width en pourcentage height en auto et text-align center si tu veux que ce soit centré
les liens dans une liste ul li
la liste li en display inline-block
un width / height des liens li et a en fixe (px) comme ca les sprites pourront s'afficher
le margin entre les liens en %
quand ca se reduit les liens restent visibles ( et pas réduit a une patte de mouche sur un mobile par exemple) le menu passe sur 2 lignes ou 3 lignes (étage) etc quand le screen se réduit
de plus je ne pense pas que <figure> soit approprié car figure de manière semantique appelle une image inpage alors que la c'est une image de background (donc pas dans le code)
<a href avec une class pour tes sprites reste le plus appoprié
voila