尝试水平居中并裁剪(如果需要)另一个div内的div。
使用背景图像可以达到同样的效果,但在这种情况下,我的内容不是单个图像。
小提琴:http://jsfiddle.net/7aMhY/1/
HTML:
<div class="poster_container">
<div class="poster_row">
<div class="poster" style="width: 210px;">1</div>
<div class="poster" style="width: 210px;">2</div>
<div class="poster" style="width: 210px;">3</div>
<div class="poster" style="width: 210px;">4</div>
<div class="poster" style="width: 210px;">5</div>
</div>
</div>
CSS:
.poster_container {
text-align: center;
border: dotted;
border-color: red;
background-color: #0ff;
margin: auto;
overflow:hidden;
}
.poster_row {
text-align: center;
margin: auto;
display: inline-block;
white-space:nowrap;
oveterflow:hidden;
border: dotted;
border-color: blue;
max-width: 100%;
}
.poster {
border: dotted;
display: inline-block;
border-color: green;
background-color: green;
height: 315px;
font-size:280px;
color: white;
}
只要poster_container div比poster_row div宽,内容就会居中。但是,一旦poster_row更宽,它就会裁剪,但其内容是齐平的,只在右侧裁剪。
我正在尝试使用内部poster_row div中心并从两侧均匀地裁剪。外部div将是视口的100%,因此其宽度是任意的。理想情况下,我希望内部div也具有任意宽度,因此我可以在不更改CSS的情况下轻松换出内容。
答案 0 :(得分:2)
我想我明白了:
我允许您添加前缀并删除最大宽度值
.poster_row {
margin: auto;
text-align: center;
display: inline-block;
white-space:nowrap;
overflow:hidden;
border: dotted;
border-color: blue;
position: absolute;
left: 50%;
transform:translate(-50%,0);
}
答案 1 :(得分:1)
如果你的poster_row的宽度不会改变,请添加:
.poster_row {
text-align: center;
margin: auto;
display: inline-block;
white-space:nowrap;
overflow:hidden;
border: dotted;
border-color: blue;
position:absolute;
left: 50%;
margin-left: -525px;
width: 1050px;
}
否则你必须用Js
计算宽度和左边距