float:right 以正确的顺序出现在 HTML 代码中
float:right in the correct order it appears in HTML code
我有一个容器 div 和两个 child div 都带有 float: right
属性.
我的代码如下:
<div class="container"> .container {width: 50%}
<div class="a"></div> .a, .b { float: right }
<div class="b"></div>
</div>
语义上,我应该在我的页面上看到 [ [A][B]]
,但它显示为
[ [B][A]]
我知道我可以重新排序我的 HTML,如果我想先看到 A,则将 B 放在第一位,但这在语义上并不正确。执行此操作的正确方法是什么?
你可以使用 flexbox 和 justify-content: flex-end;
.container {
background: #eee;
width: 50%;
display: flex;
justify-content: flex-end;
}
<div class="container">
<div class="a">a</div>
<div class="b">b</div>
</div>
或者将子div设置为display: inline-block;
并在容器上使用text-align
来右对齐
.container {
background: #eee;
width: 50%;
text-align: right;
}
.container > div {
display: inline-block;
}
<div class="container">
<div class="a">a</div><div class="b">b</div>
</div>
另一种解决方案是引入一个新元素来包裹子元素,将新元素向右浮动,然后将子元素向左浮动。
.container {
background: #eee;
width: 50%;
text-align: right;
overflow: auto;
}
.inner {
float: right;
}
.inner > div {
float: left;
}
<div class="container">
<div class="inner">
<div class="a">a</div>
<div class="b">b</div>
</div>
</div>
向右浮动您的元素将使最后的 div 排在最前面。尝试将它们都向左浮动。
.a, .b
{
float: left;
}
.container {
width: 100%;
}
.container div {
float:right;
width: 50%;
}
另一种解决方案是将子元素包装在一个标签中,然后将其浮动 :),但这需要添加一个包装元素,并将您的子 div 标签转换为内联块。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Test</title>
<style>
.container {
width: 30%;
}
.c {
float: right;
}
.a, .b {
display: inline;
}
</style>
</head>
<body>
<div style="margin-left:20px;">
<div class="container">
<div class="c">
<div class="a">a</div>
<div class="b">b</div>
</div>
</div>
</div>
</body>
</html>
我有一个容器 div 和两个 child div 都带有 float: right
属性.
我的代码如下:
<div class="container"> .container {width: 50%}
<div class="a"></div> .a, .b { float: right }
<div class="b"></div>
</div>
语义上,我应该在我的页面上看到 [ [A][B]]
,但它显示为
[ [B][A]]
我知道我可以重新排序我的 HTML,如果我想先看到 A,则将 B 放在第一位,但这在语义上并不正确。执行此操作的正确方法是什么?
你可以使用 flexbox 和 justify-content: flex-end;
.container {
background: #eee;
width: 50%;
display: flex;
justify-content: flex-end;
}
<div class="container">
<div class="a">a</div>
<div class="b">b</div>
</div>
或者将子div设置为display: inline-block;
并在容器上使用text-align
来右对齐
.container {
background: #eee;
width: 50%;
text-align: right;
}
.container > div {
display: inline-block;
}
<div class="container">
<div class="a">a</div><div class="b">b</div>
</div>
另一种解决方案是引入一个新元素来包裹子元素,将新元素向右浮动,然后将子元素向左浮动。
.container {
background: #eee;
width: 50%;
text-align: right;
overflow: auto;
}
.inner {
float: right;
}
.inner > div {
float: left;
}
<div class="container">
<div class="inner">
<div class="a">a</div>
<div class="b">b</div>
</div>
</div>
向右浮动您的元素将使最后的 div 排在最前面。尝试将它们都向左浮动。
.a, .b
{
float: left;
}
.container {
width: 100%;
}
.container div {
float:right;
width: 50%;
}
另一种解决方案是将子元素包装在一个标签中,然后将其浮动 :),但这需要添加一个包装元素,并将您的子 div 标签转换为内联块。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Test</title>
<style>
.container {
width: 30%;
}
.c {
float: right;
}
.a, .b {
display: inline;
}
</style>
</head>
<body>
<div style="margin-left:20px;">
<div class="container">
<div class="c">
<div class="a">a</div>
<div class="b">b</div>
</div>
</div>
</div>
</body>
</html>