此代码以元素为中心,但如果内容高于容器,则元素顶部的一部分将保留在容器顶部之上。有没有一种方法可以强制元素留在容器内?虽然我确信它可以使用javascript,但它可能会非常难看。我宁愿选择CSS。请指出我正确的方向。
编辑:
我不想"隐藏"溢出,我想要相反。访问jsfiddle调整小于元素的预览面板,你会看到我的意思
HTML
<div class="fill">
<div class="myClass">
hello world!
</div>
</div>
CSS
.fill {
height:100%;
width: 100%;
}
.myClass {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
答案 0 :(得分:1)
将其包裹在inline-block
容器max-height: 100%
和max-width: 100%
中,然后将定位应用于容器。将大小和样式应用于容器内的元素
(Demo)
HTML
<div class="fill">
<div class="wrap">
<div class="myClass">
hello world!
</div>
</div>
</div>
CSS
.wrap {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
max-height: 100%;
max-width: 100%;
display: inline-block;
}
.myClass {
width: 300px;
height: 200px;
}
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您希望文本垂直居中,请选中此项。你的行高很大,这就是它隐藏其余内容的原因。
html, body {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
.fill {
width: 100%;
height: 100%;
}
.myClass {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.myClass {
width: 300px;
line-height:200px;
background: rgb(50,150,250);
text-align: center;
color: #fff;
font-weight: bold;
font-family: sans;
font-size: 2rem;
border-radius: 2px;
display: -ms-flexbox!important;
display: -webkit-flex!important;
display: flex!important;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
line-height: normal;
padding-top: 15px;
padding-bottom: 15px;
max-height: 100%;
}
<div class="fill">
<div class="myClass">
hello world!
Long text here!
Blah Blah blah!
Chewie!
</div>
</div>