我有一个div
元素(1200px
宽度),其中包含3个内部divs
。
第一个和最后一个具有静态大小(150px
和200px
)。我希望第二个在徽标和按钮之间居中。问题是我不知道如何集中这个div
......
.container {
width: 1200px;
height: 100px;
position: absolute;
margin: 0 auto;
background-color: grey;
}
.logo {
width: 150px;
height: 50px;
float: left;
background-color: darkred;
}
.text {
width: auto;
float: left;
}
.buttons {
width: 200px;
height: 70px;
float: right;
background-color: darkgreen;
}

<div class="container">
<div class="logo"></div>
<div class="text">SOME CENTERED TEXT HERE</div>
<div class="buttons"></div>
</div>
&#13;
答案 0 :(得分:6)
一种方法是将display
元素的.text
设置为inline-block
(并删除float: left
),然后将text-align: center
添加到父元素为了使它居中。由于其他元素是浮动的,text-align
不会影响它们,并且它只会使内联.text
元素居中。
.container {
width: 1200px;
height: 100px;
position: absolute;
margin: 0 auto;
background-color: grey;
text-align: center;
}
.logo {
width: 150px;
height: 50px;
float: left;
background-color: darkred;
}
.text {
display: inline-block;
}
.buttons {
width: 200px;
height: 70px;
float: right;
background-color: darkgreen;
}
<div class="container">
<div class="logo"></div>
<div class="text">SOME CENTERED TEXT HERE</div>
<div class="buttons"></div>
</div>
或者,您也可以将margin: auto
添加到.text
元素,然后在父元素上设置display: flex
。这样,.text
元素将水平居中,每侧的空间相等。在这样做时,您不需要浮动元素(因为它们是flexbox项目)。
.container {
width: 1200px;
height: 100px;
position: absolute;
margin: 0 auto;
background-color: grey;
display: flex;
}
.logo {
width: 150px;
height: 50px;
background-color: darkred;
}
.text {
margin: auto;
}
.buttons {
width: 200px;
height: 70px;
background-color: darkgreen;
}
<div class="container">
<div class="logo"></div>
<div class="text">SOME CENTERED TEXT HERE</div>
<div class="buttons"></div>
</div>
答案 1 :(得分:4)
问题是您要浮动中心列。唐&#39;吨
。
做你正在做的事情的正确方法是先将左列和右列放在一起,然后中间列不必浮动,你只需使用text-align
。
.container {
width: 1200px;
height: 100px;
position: absolute;
margin: 0 auto;
background-color: grey;
}
.logo {
width: 150px;
height: 50px;
float: left;
background-color: darkred;
}
.text {
text-align:center;
}
.buttons {
width: 200px;
height: 70px;
float: right;
background-color: darkgreen;
}
&#13;
<div class="container">
<div class="logo"></div>
<div class="buttons"></div>
<div class="text">SOME CENTERED TEXT HERE</div>
</div>
&#13;
答案 2 :(得分:0)
尝试
.text {
width: auto;
float: left;
text-align: center;
}
答案 3 :(得分:0)
Flexbox琐碎:
.container {
width: 1200px;
height: 100px;
position: absolute;
margin: 0 auto;
background-color: grey;
display:flex;
justify-content:space-between;
}
.logo {
width: 150px;
height: 50px;
float: left;
background-color: darkred;
}
.text {
background:#c0ffee
}
.buttons {
width: 200px;
height: 70px;
float: right;
background-color: darkgreen;
}
&#13;
<div class="container">
<div class="logo"></div>
<div class="text">SOME CENTERED TEXT HERE</div>
<div class="buttons"></div>
</div>
&#13;
答案 4 :(得分:0)
这是一个(我认为)更合适的解决方案使整个 div
和不仅仅是文本,使用{{1} }
https://jsfiddle.net/tyvfcbre/1/
width:calc(100% - 350px);
背景是为了展示.text {
display:inline-block;
width:calc(100% - 350px);
background:lightgrey;
}
位置。