css相对位置保持在容器内

时间:2015-04-27 23:40:47

标签: javascript html css

此代码以元素为中心,但如果内容高于容器,则元素顶部的一部分将保留在容器顶部之上。有没有一种方法可以强制元素留在容器内?虽然我确信它可以使用javascript,但它可能会非常难看。我宁愿选择CSS。请指出我正确的方向。

编辑:

我不想"隐藏"溢出,我想要相反。访问jsfiddle调整小于元素的预览面板,你会看到我的意思

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%);
}

3 个答案:

答案 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)

使用

position: fixed;

表示容器和myclass。

jsfiddle

答案 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>