这是我的问题。我在另一个div中有内联块div。
.timeEvents {
width: 100%;
overflow: hidden;
text-align: center;
}
.timeline {
border: 1px solid;
}
.events1, .events2 {
border: 1px solid;
}
.ev1, .ev3 {
border: 1px solid red;
}
.ev2 {
margin: 0 auto;
border: 1px solid red;
display: inline-block;
}
.mDiv {
display: inline-block;
padding-left: 12px;
padding-right: 12px;
border: 1px solid blue;
}
<div class="timeEvents">
<div class="events1">
<div class="ev1">Data Field 1</div>
</div>
<div class="timeline">
<div class="ev2">
<div class="mDiv">5</div>
<div class="mDiv">10</div>
<div class="mDiv">15</div>
<div class="mDiv">20</div>
<div class="mDiv">25</div>
</div>
</div>
<div class="events2">
<div class="ev3">Data Field 2</div>
</div>
</div>
我希望将.ev2
包裹在内联的子节点周围。然后,位于上方和下方的两个数据字段.ev1
和.ev3
应与.ev2
具有相同的宽度。这意味着所有带有红色边框的div(在我的JSFiddle中)应该具有相同的宽度(动态,我不知道),并且宽度不应该是100%,因为它在jsFiddle示例中:https://jsfiddle.net/mzjqw2wx/17/。
答案 0 :(得分:1)
您还需要为公共包装器设置display: inline-block;
(并将text-align: center
提供给其父级)
body { text-align: center; }
.timeEvents {
display: inline-block;
margin: 0 auto;
}
结果:
答案 1 :(得分:0)
使用Flexbox很容易实现。
只需将display: flex;
分配给.ev2
,将flex-grow: 1;
分配给.myDiv
类。
您可以在以下代码中看到它:
.timeEvents {
width: 100%;
overflow: hidden;
text-align: center;
}
.timeline {
border: 1px solid;
}
.events1, .events2 {
border: 1px solid;
}
.ev1, .ev3 {
border: 1px solid red;
}
.ev2 {
margin: 0 auto;
border: 1px solid red;
display: flex;
}
.mDiv {
display: inline-block;
padding-left: 12px;
padding-right: 12px;
border: 1px solid blue;
flex-grow: 1;
}
<div class="timeEvents">
<div class="events1">
<div class="ev1">Data Field 1</div>
</div>
<div class="timeline">
<div class="ev2">
<div class="mDiv">5</div>
<div class="mDiv">10</div>
<div class="mDiv">15</div>
<div class="mDiv">20</div>
<div class="mDiv">25</div>
</div>
</div>
<div class="events2">
<div class="ev3">Data Field 2</div>
</div>
</div>
答案 2 :(得分:0)
将display:table
用于timeEvents
,然后移除width:100%
将根据您的预期进行制作。
.timeEvents {
display: table;
overflow: hidden;
text-align: center;
}
<强> Fiddle 强>