我有HTML:
<div>
<span class="label"><a href="/index/1">Bookmix Offline</a></span>
<span class="button"><a href="/settings/">Settings</a></span>
<span class="button"><a href="/export_all/">Export</a></span>
<span class="button"><a href="/import/">Import</a></span>
</div>
和CSS:
span.button {
float:right;
}
span.label {
margin-left: 30px;
}
在浏览器中,跨度以相反的顺序显示:导入导出设置。 我可以通过仅更改CSS文件并保持HTML原样来更改顺序吗?
答案 0 :(得分:72)
这个问题的一般解决方案是要么颠倒HTML中右浮动元素的顺序,要么将它们包装在包含元素中,然后将其浮动到右边。
答案 1 :(得分:30)
如果您想使列表项目正确对齐而不撤消订单不要浮动您的列表项目。将它们设为内嵌。 text-align:对你的 span
div {
text-align:right;
}
span {
display:inline;
}
答案 2 :(得分:9)
是的,这可以通过您的确切标记来完成。
诀窍是使用direction: rtl;
<div>
<span class="label"><a href="/index/1">Bookmix Offline</a></span>
<span class="button"><a href="/settings/">Settings</a></span>
<span class="button"><a href="/export_all/">Export</a></span>
<span class="button"><a href="/import/">Import</a></span>
</div>
div
{
direction: rtl;
}
span.label {
float: left;
margin-left: 30px;
}
<强> FIDDLE 强>
答案 3 :(得分:3)
div.outerclass {
text-align: right;
}
div.outerclass .label {
float: left;
text-align: left;
}
答案 4 :(得分:3)
div.outerclass {
float: right;
}
div.innerclass {
float: left;
}
答案 5 :(得分:3)
div{
display:flex;
flex-flow: column;
}
span:nth-child(1){
order:4;
}
span:nth-child(2){
order:3;
}
span:nth-child(3){
order:2;
}
span:nth-child(4){
order:1;
}
或者,反转Y比例:
div {
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
span {
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
display:inline-block;
width:100%;
}
答案 6 :(得分:2)
将div浮动而不是span元素?
答案 7 :(得分:1)
只需使用display:inline-block和text-align:right而不是float:right:
div { text-align:right }
span { display:inline-block }
答案 8 :(得分:1)
或者您可以使用柔性显示屏
div {
display: flex;
justify-content: flex-end;
}
<div>
<span class="label"><a href="/index/1">Bookmix Offline</a></span>
<span class="button"><a href="/settings/">Settings</a></span>
<span class="button"><a href="/export_all/">Export</a></span>
<span class="button"><a href="/import/">Import</a></span>
</div>
答案 9 :(得分:0)
回答您更新的问题:
path to div {
text-align: right;
}
path to div span.label {
float: left;
}
我之前说“div to path”因为你需要充分地定位这个div,而不是(根据你引用的代码)它有自己的类或ID。如果我们能用结构来做这件事,那不是问题。
例如,如果div
是容器中唯一具有id(例如)“navigation”的div,则可能是:
#navigation div {
text-align: right;
}
#navigation div span.label {
float: left;
}
或者如果容器中还有其他div,但这是唯一的div 导航容器的直接子,您可以使用子选择器而不是后代选择器:
#navigation > div {
text-align: right;
}
#navigation > div span.label {
float: left;
}
答案 10 :(得分:0)
这可以在不重新排列html的情况下工作,非常简单。下面是一个有效的例子:http://jsfiddle.net/dzk7c/2/
HTML:
<div>
<span class="label"><a href="/index/1">Bookmix Offline</a></span>
<span class="button"><a href="/settings/">Settings</a></span>
<span class="button"><a href="/export_all/">Export</a></span>
<span class="button"><a href="/import/">Import</a></span>
</div>
和css:
div {
float:right;
}
span {
display: inline-block;
}
答案 11 :(得分:0)
只有横向,可能是使用:rtl / ltr表 应该适用于所有支持table-cell css的浏览器
正常:
<div class="container">
<section>1</section>
<article>2</article>
<aside> <span>א</span><span>.</span> </aside>
</div>
<style>
.container { display: table;
direction:ltr; /*ltr here is not required*/
}
.container>* {
display: table-cell; /*only works with table-cell*/
direction:ltr; /*ltr here is not required*/
}
</style>
反向:
<div class="reverse">
<div class="container">
<section>1</section>
<article>2</article>
<aside> <span>א</span><span>.</span> </aside>
</div>
</div>
<style>
.reverse .container { display: table; direction:rtl } /*change the outside direction to rtl*/
.reverse .container>* {
display: table-cell;
direction:ltr /*inside switch back to ltr if needed*/
}
</style>
答案 12 :(得分:0)
可以使用弹性边距定位来实现。请注意,这仅适用于IE10 +
div
{
display: flex;
}
span.label {
margin: auto;
margin-left: 0;
}
span.button {
margin-right: 5px;
}
答案 13 :(得分:0)
我也坚持这个......所以这是我的解决方案
HTML看起来像这样
<ul class="visible-xs restaurant-thumbnail__tags list-inline">
@foreach($restaurant->categories as $category)
<li>{{ $category->title }}</li>
@endforeach
@foreach($restaurant->labels as $label)
<li>{{ $label->title }}</li>
@endforeach
</ul>
CSS看起来像这样
.restaurant-thumbnail__tags {
direction: rtl;
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
.restaurant-thumbnail__tags li {
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
答案 14 :(得分:0)
html
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
css
div{
width:300px;
border:1px solid #000;
overflow:hidden;
}
ul{
padding:0;
margin:0;
float:right;
}
li{
border:1px solid #000;
text-align:center;
float:left;
margin:20px 5px;
padding:5px;
width:25px;
list-style:none;
}
答案 15 :(得分:-1)
你需要向左浮动空间,然后向右浮动父容器。
这取决于您尝试实现的布局类型。
这是预期的行为,为了我想象的屏幕阅读器等的好处。另一种选择是调整加价,但正如你所说,这可能并不合适。