如何实现浮动:保持内联块显示的正确效果?

mar*_*ark 28 html css

考虑下面的jsfiddle:http://jsfiddle.net/mark69_fnd/yqdJG/1/

HTML:

<div id="container">
    <div class="char">
        AAA
    </div>
    <div class="char stickToRight">
        BBB
    </div>
</div>?
Run Code Online (Sandbox Code Playgroud)

CSS:

#container {
    border:solid 2px green
}
.char { 
    display: inline-block;
    border: solid 2px red;
}
.stickToRight {
    float: right
}?
Run Code Online (Sandbox Code Playgroud)

有没有另一种方法.stickToRight可以正确对齐,而不是浮动它?

我需要保持它,display:inline-block以便我可以使其垂直对齐与其他.char元素一致.

如何float:right在保持元素的同时实现右对齐效果display:inline-block?(注意,我不知道容器元素的宽度.)

我想要纯粹的CSS解决方案,如果有的话.

Mar*_*ira 17

我遇到了同样的问题,发现direction: rtl;在容器上使用是最好的解决方案.https://css-tricks.com/almanac/properties/d/direction/

  • 这是最好的解决方案 - 来这里说.下面是一个快速举例说明我使用过类似的东西.与这个例子完全不符,但你明白了.这允许我在两种情况下保持结构相同,以便在移动设备上(当我将显示上面的图像时)两个示例看起来都是相同的.http://jsfiddle.net/uku099g8/ (4认同)

Pau*_*ite 15

元素不能同时inline-block浮动.

当元素设置inline-block为时,它与display:inline元素的不同之处在于它可以指定宽度和高度.但是,它仍然是内联布局流程的一部分 - 其水平位置由其源顺序和text-align其块级父级的属性决定,其与行的垂直位置由vertical-align属性确定.

当元素浮动时,它不再是内联布局流程的一部分.它的水平位置是无论是浮动的决定leftright,以及是否有收到其他浮动元素,它的垂直位置由相当复杂的一套规则,埃里克迈耶描述真的很好在确定CSS:权威指南,但基本上归结为"内嵌盒的顶部,如果没有浮动它将出现在其中".

当你说你希望元素浮动inline-block同时,我仍然不太确定你想象的视觉效果,但浮动inline-block布局在水平和垂直位置方面与布局不同,并且没有任何方式来组合它们.

  • 我没有说我希望他们漂浮.我希望它们与右边对齐.如何实现并不重要. (2认同)

Dua*_*nnx 9

由于inline元素不能float,我们不能构建一些复杂的布局。然后flexbox被引入,现在我们有一个强大的技术可以解决大多数布局问题。要达到您的预期结果,只需这样做:

#container {
  border: solid 2px green;
  display: flex;
}

.char {
  border: solid 2px red;
  ;
}

.float-right {
  margin-left: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container">
  <div class="char ">
    AAA
  </div>
  <div class="char float-right">
    BBB
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


小智 6

应用于text-align: right父div