我有三个<span>
元素要一个接一个地水平放置。我还需要中间元素位于页面的中心(水平方向),但margin:auto; width: 100px
由于它是<span>
. 如果我成功了<div>
,就会有换行符。
我该如何解决这个问题?
我会使用三个相同span
的 100px 宽度的元素,display: inline-block
嵌套在一个div
设置text-align
为中心的元素中:http: //jsfiddle.net/e9sru/
HTML:
<div id="container">
<span class="inner">
<div class="overflow">Lorem ipsum dolor est mori. I am overflowing but still to the left of number two</div>
</span>
<span class="inner">Two</span>
<span class="inner">Three</span>
</div>
CSS:
#container {
text-align: center;
}
.inner {
display: inline-block;
position: relative;
}
.overflow {
float: right;
}
如果您创建一个 div 并将其设置为 100% 的宽度。在这个潜水中,您创建了另外 3 个 div;每个元素一个。如果您将每个元素的宽度设置为 33.3%,那么它将相应地居中中间的一个和另一个 2。同样,您可以添加边距以减少 33.3%。例如,margin: 0 3% 0 3% on center div 会给它左右 3% 的边距。从 div 宽度的大小减去 6%,因为它的总和必须始终为 100%
span
是一个内联元素,所以它的行为不像div
是一个块元素。
我建议混合使用浮动和对齐中心。
例子:
HTML
<span class="block element3">ELEMENT3</span>
<span class="block element1">ELEMENT1</span>
<span class="block element2">ELEMENT2</span>
CSS
.block {
display: block;
width: 100px;
}
.element3 {
float: right;
background-color: red;
}
.element2 {
float: left;
background-color: green;
}
.element1 {
text-align: center;
background-color: blue;
width: auto;
}
更新: