J'essaie de comprendre comment CSS et responsive design fonctionnent. J'ai fait un petit exemple here.Comment créer une mosaïque responsive HTML/CSS?
Ceci est un modèle de tuile simple.
Je voudrais être en mesure de montrer ma tuile sur 2, 3, 4 colonnes ou plus. Dans cet exemple, vous avez juste besoin de changer la classe div "wrapper" c2, c3, c4
pour modifier le nombre de colonnes.
Cela fonctionne parce que mes tuiles sont flottantes à gauche et ces c2, c3, c4
modifient la largeur de mon emballage. Voir le fichier HTML et CSS ou allez sur JSFiddle.
HTML
<div class="wrapper c2"> <!-- try with c3, c4-->
<div class="scrollable">
<div class="webbutiles">
<a href='?page_id=77' class='tile TBlue iconmain '><div class='boxContent'><i class='icon-group'></i></div><div class='tilename '><div class='name'>Tile 1</div></div></a>
<a href='?page_id=85' class='tile TDarkGreen iconmain '><div class='boxContent'><i class='icon-comments-alt'></i></div><div class='tilename '><div class='name'>Tile 2</div></div></a>
<a href='?page_id=89' class='tile TDarkPurple iconmain '><div class='boxContent'><i class='icon-cogs'></i></div><div class='tilename '><div class='name'>Tile 3</div></div></a>
<a href='?page_id=91' class='tile TDarkBlue iconmain '><div class='boxContent'><i class='icon-table'></i></div><div class='tilename '><div class='name'>Tile 4</div></div></a>
<a href='?page_id=93' class='tile TDarkRed iconmain '><div class='boxContent'><i class='icon-heart'></i></div><div class='tilename '><div class='name'>Tile 5</div></div></a>
<a href='?page_id=95' class='tile TTwitterBlue iconmain '><div class='boxContent'><i class='icon-twitter'></i></div><div class='tilename '><div class='name'>Tile 6</div></div></a>
<a href='?page_id=97' class='tile TGreen iconmain '><div class='boxContent'><i class='icon-columns'></i></div><div class='tilename '><div class='name'>Tile 7</div></div></a>
<a href='?page_id=87' class='tile TOrange t2x iconmain '><div class='boxContent'><i class='icon-reorder'></i></div><div class='tilename '><div class='name'>Tile Large</div></div></a>
</div>
</div>
</div>
CSS
/* General tile settings */
.tile{ display:block; float:left; background-color:#525252; width:150px; height:150px; cursor:pointer; text-decoration:none; color:#fff; overflow:hidden; position:relative; font-weight:300; font-size:11pt; letter-spacing:0.02em; line-height:20px; margin:0 10px 10px 0; overflow:hidden}
.tile:hover{ outline:3px #3a3a3a solid}
/* Tile responsive setting. */
@media (min-width:1025px){
.wrapper{width:1024px}
}
.wrapper{margin-left:auto; margin-right:auto}
.wrapper.c2{width:400px}
.wrapper.c3{width:600px}
.wrapper.c4{width:800px}
.wrapper.c5{width:1000px}
.resimgicon {max-width:62px;height:auto;}
.tile .boxContent .resimgicon{ margin-left: 3em; margin-top: 2.7em;}
.tile{ width:157px; height:157px}
.tile.t2x{ width:324px}
.tile.t2x .boxContent{ width:324px}
@media (max-width:640px){
.wrapper{margin-left:auto; margin-right:auto}
.wrapper.c2{width:324px}
.wrapper.c3{width:491px}
.wrapper.c4{width:658px}
.wrapper.c5{width:785px}
.resimgicon {max-width:64px;height:auto;}
.tile .boxContent .resimgicon{ margin-left: 2.7em; margin-top: 2.8em;}
.tile{ width:147px; height:147px}
.tile.t2x{ width:304px}
.tile.t2x .boxContent{ width:304px}
}
@media (max-width:360px){
.wrapper{margin-left:auto; margin-right:auto}
.wrapper.c2{width:184px}
.wrapper.c3{width:281px}
.wrapper.c4{width:378px}
.wrapper.c5{width:435px}
.resimgicon {max-width:38px;height:auto;}
.tile .boxContent .resimgicon{ margin-left: .74em; margin-top: .68em;}
.tile{ width:77px; height:77px}
.tile.t2x{ width:164px}
.tile.t2x .boxContent{ width:164px}
}
Je n'aime pas ce CSS parce que je ne veux pas travailler avec une tuile fixe et la taille emballage. Cela crée une marge gauche et droite (auto). Ce n'est pas un problème pour un grand écran, mais c'est inutile sur un téléphone ou une tablette.
Que dois-je faire pour créer un système de carreaux avec une colonne sans avoir une largeur fixe? Y a-t-il une meilleure façon de générer ce type de tuile?
Travailler avec '%' au lieu d'une quantité fixe de 'px' – DiederikEEn
Si vous voulez être totalement réactif, et réduire le code, adoptez des largeurs de pourcentage. – Michael