我想从右到左对齐div。默认对齐方式是从左到右
#row {
white-space: nowrap; /* important */
overflow: auto;
}
.items {
display: inline-block;
}
<div id="row">
<div class="items">
<img src="//placehold.it/200/100" alt="item 1" />
</div>
<div class="items">
<img src="//placehold.it/200/100" alt="item 2" />
</div>
</div>
如果我在float:right
课程中设置float:left
或.items
,则不会显示水平滚动,并且项目会溢出到底部(当我在行中添加更多项目时)。
答案 0 :(得分:3)
只需将direction r ight t o l eft添加到#row
#row {
white-space: nowrap; /* important */
overflow: auto;
direction: rtl;
}
.items {
display: inline-block;
}
<div id="row">
<div class="items">
<img src="//placehold.it/200/100" alt="item 1" />
</div>
<div class="items">
<img src="//placehold.it/200/100" alt="item 2" />
</div>
</div>
如果您使用#row
更多.items
容器溢出,您将看到一个水平滚动条。
显然,text-align: right
也做同样的工作,但事实并非如此。
考虑以下标记:
<div id="row">
<div class="items">itemA</div>
<div class="items">itemB</div>
<div class="items">itemC</div>
</div>
使用direction: rtl;
即可获得
+-------------------------------------------+
| | itemC | itemB | itemA |
+-------------------------------------------+
使用text-align:right;
即可获得
+-------------------------------------------+
| | itemA | itemB | itemC |
+-------------------------------------------+
答案 1 :(得分:0)
您可以在.items上使用内联块的显示,只需将text-align添加到父元素,在这种情况下,div元素为div。
#row {
white-space: nowrap; /* important */
overflow: auto;
text-align: right;/* added line */
}
.items {
display: inline-block;
}
<div id="row">
<div class="items">
<img src="//placehold.it/200/100" alt="item 1" />
</div>
<div class="items">
<img src="//placehold.it/200/100" alt="item 2" />
</div>
</div>
答案 2 :(得分:0)
从右边对齐的另一个选项是text-align:right;
到#row
#row {
white-space: nowrap; /* important */
overflow: auto;
text-align:right;
}
.items {
display: inline-block;
}
<div id="row">
<div class="items">
<img src="//placehold.it/200/100" alt="item 1" />
</div>
<div class="items">
<img src="//placehold.it/200/100" alt="item 2" />
</div>
</div>