html - 在不更改父 div 的情况下,在 div 中居中对齐图像

标签 html css

我正在尝试将 div 中的图像居中对齐。水平对齐不是问题,但无论我尝试什么,我都无法让图像垂直居中对齐。 请记住,我仅限于更改图像元素的 css,理想情况下不需要对父/包含 div 进行任何更改,因为父/包含 div 也将用于其他元素。 任何建议都会很棒。

Screenshot

.container {
    border: 1px solid red;
}

img {
    background: #3A6F9A;
    display: block;
    margin: auto;
    max-width:100%;
    max-height:100%;
}
<div class=container style="left: 2ch; top: 3em; width: 15ch; height: 5em;">
   <img src="http://jsfiddle.net/img/logo.png" />
</div>

最佳答案

一种选择是将 display:table-cell;vertical-align:middle; 添加到容器 div,

.container {
    border: 1px solid red;
    display:table-cell;
    vertical-align:middle;
}

img {
    background: #3A6F9A;
    display: block;
    margin: auto;
    max-width:100%;
    max-height:100%;
}
<div class=container style="left: 2ch; top: 3em; width: 15ch; height: 5em;">
   <img src="http://jsfiddle.net/img/logo.png" />
</div>

第二种选择是更改图像的 CSS 并使用:

.container {
    border: 1px solid red;
}

img {
    background: #3A6F9A;
    display: block;
    margin: auto;
    max-width:100%;
    max-height:100%;
    top: 50%;
    position:relative;
    transform: translateY(-50%);
}
<div class=container style="left: 2ch; top: 3em; width: 15ch; height: 5em;">
   <img src="http://jsfiddle.net/img/logo.png" />
</div>

关于html - 在不更改父 div 的情况下,在 div 中居中对齐图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553019/

相关文章:

javascript - 如何从 jQuery 访问框架(非 iframe)内容

javascript - 为什么我的angerlySetInnerHTML渲染的内容被修改了?

javascript - 我怎样才能水平对齐 div 并且仍然响应

javascript - 尝试使用 CSS flex 使大 Canvas 溢出滚动条

html - 在 HTML 和 CSS 中实现完全对齐 : works in limited-quirks mode but no-quirks mode messes up the height

html - 表列的 CSS 选择器

html - 由于图像相对定位而导致不需要的空白

javascript - 如何从对象标签中获取 html 元素?

javascript - 如何在文本区域为空时删除元素?

html - 控制水平子导航的高度