Html 防止右浮动元素交换

Html 防止右浮动元素交换,html,css,css-float,Html,Css,Css Float,似乎每次我向右浮动两个元素时,它们都会被交换。左浮动元素不会出现这种情况,而且似乎在每个浏览器中都会出现这种情况 下面是一个例子: 代码: 这并不是什么大问题,但在与同事交换代码时确实会造成混乱。有没有办法防止这种情况发生 与左浮动元素一样,左浮动元素在碰到另一个左浮动元素之前会尽量向左浮动,而右浮动元素在碰到另一个右浮动元素之前会尽量向右浮动。这实际上是好的、一致的行为,乍一看可能令人困惑 如果你真的觉得很疯狂,你可能会尝试在事后用Javascript交换元素……但这会给你的非JS用户带来巨大

似乎每次我向右浮动两个元素时,它们都会被交换。左浮动元素不会出现这种情况,而且似乎在每个浏览器中都会出现这种情况

下面是一个例子:

代码:


这并不是什么大问题,但在与同事交换代码时确实会造成混乱。有没有办法防止这种情况发生

与左浮动元素一样,左浮动元素在碰到另一个左浮动元素之前会尽量向左浮动,而右浮动元素在碰到另一个右浮动元素之前会尽量向右浮动。这实际上是好的、一致的行为,乍一看可能令人困惑


如果你真的觉得很疯狂,你可能会尝试在事后用Javascript交换元素……但这会给你的非JS用户带来巨大的破坏,最终会让那些知道正确浮动应该如何运行的开发人员更加困惑。交换HTML顺序真的是一种方法,抱歉://

另一种可能的选择是,不向右浮动,而只是
文本对齐:向右。然后,将每个DIV标记为
display:inline块而不是
。根据您的具体情况,这可能会导致问题,但在许多其他情况下,它会很好地工作


如果出现问题,可以将这两个div粘贴到包装器中,并将其向右浮动,然后使用我的解决方案。然而,这是一个语义少了一点,但我想它最终没有那么重要。这取决于你

除了交换它们,没有别的解决办法。这不是交换。完全正确。想象一下,您的DIV ONE位于右边的第一个位置,DIV TWO位于下面的右边:DRight,但是相对于HTML,它似乎被交换了。我知道这就是CSS应该做的,但是对于任何一个只看HTML的人来说都有点困惑。交换你的div就像div twodivonet,这就是我想的。我会等一段时间,看看是否有其他人有解决办法,如果没有,我会接受你的。这回答了问题核心的实际问题:D+1
<style type="text/css">
    .right {
        float: right;
    }
</style>
<div class="right">DIV ONE</div>
<div class="right">DIV TWO</div>
DIV TWO DIV ONE