Firefox 和 Chrome 之间的 CSS 图像对齐差异

标签 css image alignment vertical-alignment

我无法让我的图像在所有浏览器之间正确对齐:

enter image description here

我想知道这是否是边界问题?

问题:解决此问题的最佳方法是创建媒体查询吗?现在我有点试图找到一个好的中间立场,但是当在 safari 移动应用程序上查看时,这几个像素会产生很大的不同。或者是否有更好的方法在 .mnhouse、.mnsenate、.ushouse、.ussenate1、.ussenate2 div 之间包含图像?

这是我的相关 HTML:

<div id="officials">                 
            <div class='mnhouse'>                       
                    <div class="membersublist">
                         <div class="memberLink"><span id="mnhouselink">Show District <i class="fa fa-external-link-square"></i></span></div>       
                        <div id='housemember' class='lcc_gis_member'></div>
                        <div id='housedistrict' class='lcc_gis_memberdistrict'></div>
                    </div>
                    <img id='housephoto' class='mnhouse_img' src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" width="0" height="0" alt=""/>

            </div>
            <div class='mnsenate'>                      
                    <div class="membersublist">
                        <div class="memberLink"><span id="mnsenlink">Show District <i class="fa fa-external-link-square"></i></span></div>
                        <div id='senatemember' class='lcc_gis_member'></div>
                        <div id='senatedistrict' class='lcc_gis_memberdistrict'></div>
                    </div>
                    <img id='senatephoto' class='mnsenate_img' src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" width="0" height="0" alt=""/>                   
            </div>
</div>

这是我的相关 CSS:

#officials img {
    height: 100%;
    min-height: 87px;
    max-width: 65%;
    position: relative;
    top: -56px;
    border:none;
}

.membersublist{
    margin-top:15px;
}
.mnhouse, .mnsenate, .ushouse, .ussenate1, .ussenate2 {
    height:87px;
    background-color: #e6e6e6;
    border-top: 1px solid #a7a5a6;
    border-right: 1px solid #a7a5a6;
    border-bottom: 1px solid #a7a5a6;
    border-left: 3px solid #a7a5a6;
}

这是 demo ,以防我遗漏任何相关代码(您需要在 map 上选择一个点才能打开结果)。

最佳答案

问题是您使用负相对定位来尝试对齐。

#officials img {
    ...
    position: relative;
    top: -56px;
    ...
}

基本上,您是相对于文本创建的偏移量定位它的,永远不能指望它在浏览器中保持 100% 一致。

相反,考虑将定位添加到 .mnhouse 包装器,然后使用绝对定位来定位图像。

.mnhouse {
    position: relative;
}

#officials img {
    height: 100%;
    min-height: 87px;
    max-width: 65%;
    position: absolute;
    top: 0;
    border:none;
}

关于Firefox 和 Chrome 之间的 CSS 图像对齐差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38383509/

相关文章:

c# - 如何对齐由 MVC3 Html Helper 方法生成的表单?

html - 我如何响应地处理包装图像和文本的 div?

css - SCSS 祖先敏感选择器

javascript - img.onload 在 IE 中给出无效参数

php - 将图像放入 SQLite 数据库

css - 如何在文本区域内默认包含图标

CSS 垂直对齐标题中的文本

html - 样式化 <hr> 标签

html:如何将行号添加到源代码块

css - wordpress主题中的中心 Logo 文本(greenchilli)