html - 填充技巧纵横比元素 - 垂直居中

标签 html css web flexbox

我试图将一个元素垂直居中,该元素使用 padding-bottom 创建所需的宽高比(对于视频)。我想要有顶部和底部黑色边框,就像电影以比拍摄时更高的宽高比显示时一样:

body{
    padding:0;
    margin:0;
    position:relative;
    display:block;
}
main{
    background: url(http://placekitten.com/1280) no-repeat center center;
    background-size: cover;
    width:100%;
    padding-top:56.25%;
    width:100%;
}

http://jsfiddle.net/y4tcufo5/ - 测试用例

我已经尝试过top:50%;变换:平移Y(-50%);元素上的技巧,但似乎没有任何效果!我知道这与使用填充而不是宽度和高度有关,但我似乎无法以任何其他方式将元素装配到设计中。

是否可以通过以下任一方法解决此问题:

  • 使用填充技巧和另一种垂直居中元素的方法
  • 放弃内边距并通过其他方式实现宽高比
  • 使用 flexbox 或其他东西

非常感谢任何帮助!

最佳答案

使用这四行代码将任何内容垂直居中

position: relative;
top: 50%;
transform: translateY(-50%);
max-height: 100%;

将其应用于要垂直居中的元素的包装

( Demo )

HTML

<div class="wrap">
    <main></main>
</div>

CSS

html, body {
    padding:0;
    margin:0;
    height: 100%;
}
main{
    background: url(http://placekitten.com/1280) no-repeat center center;
    background-size: cover;
    width:100%;
    padding-top:56.25%;
}
.wrap {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    max-height: 100%;
}

关于html - 填充技巧纵横比元素 - 垂直居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29951988/

相关文章:

css - 部分页面未正确呈现 css 类

javascript - WebAudio 停止后不播放(0)

javascript - 意外的隐藏 div 出现在 html 文件中

html - css 单选按钮切换背景

javascript - jQuery "bounce"对中心对齐 block 元素的影响使它们在 Firefox 和 IE8 中左对齐

javascript - 动画字母很容易?

javascript - 为什么 fbevents.js 加载到我的页面上?

jQuery 在每个嵌入脚本上发送查询字符串

jquery - 单击链接后隐藏响应式导航

java - 网站不加载资源