我试图了解 CSS 和响应式设计是如何工作的。我在这里做了一个小例子。
这是一个简单的平铺模板。
我希望能够在 2、3、4 或更多列上显示我的图块。在此示例中,您只需更改 div“包装器”类c2, c3, c4
即可修改列数。
这是有效的,因为我的瓷砖向左浮动,这些c2, c3, c4
修改了我的包装器的宽度。请参阅 HTML 和 CSS 文件或继续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}
}
我不喜欢这个 CSS,因为我不喜欢使用固定的 tile 和 wrapper 大小。这将创建一个左右(自动)边距。这对于大屏幕来说不是问题,但在手机或平板电脑屏幕上却毫无用处。
我应该怎么做才能创建一个带有列的瓦片系统而不必固定包装宽度?有没有更好的方法来生成这种瓷砖?