如何在 Div 内居中卡片,同时保持左对齐
How to Center Cards within Div While Maintaining a Left-Align
我目前正在构建一个使用卡片的应用程序。我希望卡片在容器内水平居中,但最后一行应左对齐。 Yummly (http://www.yummly.com/) 等网站在您调整页面大小时实现了这一点。
这是我目前所拥有的,除了我希望蓝色方块在橙色容器内居中对齐,同时保持完全相同的配置:http://jsfiddle.net/s8mfbeyt/13/
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
谢谢!!
有一个相对较新的属性(仍然是部分实验性的)text-align-last
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
text-align: center;
-ms-text-align-last: left;
-webkit-text-align-last: left;
-moz-text-align-last: left;
text-align-last: left;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
适用于 FF 和 IE(但基于 WebKit 的浏览器目前存在漏洞)
你可以通过设置一些 li 填充来得到这个效果。
它们占用宽度,所以最后一个 true li 会被推到左边,但它们的高度为 0,所以视觉上一切正常。
您需要的列数与您的设计所能获得的最大列数一样多,减去 1。
我讨厌设置伪造的 DOM 元素,但它确实有效...
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
text-align: center;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
.dummy {
height: 0px;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="dummy"></li>
<li class="dummy"></li>
</ul>
</div>
我目前正在构建一个使用卡片的应用程序。我希望卡片在容器内水平居中,但最后一行应左对齐。 Yummly (http://www.yummly.com/) 等网站在您调整页面大小时实现了这一点。
这是我目前所拥有的,除了我希望蓝色方块在橙色容器内居中对齐,同时保持完全相同的配置:http://jsfiddle.net/s8mfbeyt/13/
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
谢谢!!
有一个相对较新的属性(仍然是部分实验性的)text-align-last
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
text-align: center;
-ms-text-align-last: left;
-webkit-text-align-last: left;
-moz-text-align-last: left;
text-align-last: left;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
适用于 FF 和 IE(但基于 WebKit 的浏览器目前存在漏洞)
你可以通过设置一些 li 填充来得到这个效果。
它们占用宽度,所以最后一个 true li 会被推到左边,但它们的高度为 0,所以视觉上一切正常。
您需要的列数与您的设计所能获得的最大列数一样多,减去 1。
我讨厌设置伪造的 DOM 元素,但它确实有效...
.container {
width: 350px;
height: 100%;
background-color: red;
}
ul {
list-style-type: none;
padding: 0px;
text-align: center;
}
li {
height: 100px;
width: 100px;
background-color: blue;
display: inline-block;
}
.dummy {
height: 0px;
}
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="dummy"></li>
<li class="dummy"></li>
</ul>
</div>