我正在尝试设置一个以div为中心的图标。左侧和/或右侧是可变数量的文本。例如:
<div class="container">
<div class="left-text">This text is on the left</div>
<div class="icon-cell"><div class="icon smiley-face"></div></div>
<div class="right-text">And more text is over here...</div>
</div>
我的目标是让图标单元格始终水平居中,假设.container
的{{1}}为100%。
我正在使用桌子一段时间,但是不可能这样做:
width
关于如何在不使用Javascript的情况下执行此操作的任何想法?
答案 0 :(得分:2)
您可以将display: inline-block
与text-align: center
一起用于div:
.container {
width: 100%;
background: #eee;
text-align: center;
}
.container > div {
display: inline-block;
}
.container > .icon-cell {
width: 50px;
}
的 Example 强>
插入更多文本时会出现问题。然后你需要修复容器元素的宽度并消除内联块之间的空白区域(我使用font-size: 0
)。这是另一个例子:
的 More Text 强>
答案 1 :(得分:1)
这为您提供了一个干净的报纸样式......
.container {
width: 100%;
height: 300px;
}
.left-text {
position:absolute;
background: rgba(0, 255, 0, .2);
margin-left:0px;
top:0px;
padding-right:350px;
text-align:justify;
text-justify:auto;
}
.right-text {
position:absolute;
background: rgba(0, 0, 255, .2);
margin-right:0px;
top:0px;
padding-left:350px;
text-align:justify;
text-justify:auto;
}
.icon.smiley-face {
background: url(//placehold.it/48/48/00ff00);
height: 48px;
width: 48px;
margin:0px auto;
}
答案 2 :(得分:0)
这个技巧可能会起作用
.icon{
width:100px;
margin:0 auto;
}
答案 3 :(得分:0)
使用css float和align。 CSS: .left-text {float:left; } .right-text {float:right; } .icon-cell {text-align:center; } .container {display:inline-block; }
答案 4 :(得分:0)
你可以使用边距并显示:inline-block;在css
答案 5 :(得分:0)
我想我参加聚会有点晚了,但这也可以使用display: table-cell;
来完成。大量文本应该换行而不是按下图标,如果你想要填充“单元格”,你就不需要补偿居中图标的宽度。
.container {
background: #eee;
display: table-row;
}
.container > div {
display: table-cell;
vertical-align: top;
width: 50%;
}
.container > .icon-cell {
min-width: 50px;
width: 50px;
}
.container > .icon-cell img {
width: 100%;
height: auto;
}