如何使用float left属性居中所有子元素

时间:2016-11-29 07:16:11

标签: css css3

我无法找到解决问题的方法。我不希望子元素之间有任何空格,所以我添加了float:left to child elements。但是当元素分成两行时,它会导致问题。Issue

http://jsfiddle.net/cmrunhow/5/

HTML:

<span class="section-title">
    <span class="yellow">This</span>
    <span class="red">is</span>
    <span class="brown">test</span>
    <span class="">content</span>
</span>

CSS:

.section-title {text-align:center;}
.section-title span {float: left; display:inline-block;}

2 个答案:

答案 0 :(得分:1)

要删除不需要的空间,请不要float: left;,而是在父元素上设置font-size: 0;,将子设备重新设置为您想要的font-size

此外,您使用span作为容器,默认情况下为display: inline;。在这里,您需要一个具有display: block;的元素。使用display: inline;时,文本居中无法正常工作。

所以 设置display: block; 上的span使用div而不是span。默认情况下,divdisplay: block;。我推荐后者,但我不确定你是否可以控制HTML,所以我没有改变它。

&#13;
&#13;
.section-title {
  text-align: center;
  font-size: 0;
  display: block;
}
.section-title span {
  font-size: 36px;
  display: inline-block;
  text-transform: uppercase;
}
.yellow {
  color: yellow;
}
.red {
  color: red;
}
.brown {
  color: brown;
}
&#13;
<span class="section-title">
  <span class="yellow">This</span>
  <span class="red">is</span>
  <span class="brown">test</span>
  <span>content</span>
</span>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

请尝试以下代码:

.section-title {
   text-align: center;
   display: block;
 }

 .section-title span {
     font-size: 36px;
     display: inline-block;
     text-transform: uppercase;
  }