【问题标题】:How to center images while keeping them responsive?如何在保持图像响应的同时居中图像?
【发布时间】:2013-06-04 22:37:41
【问题描述】:

您好,请查看我的网站,下面是有问题的代码 sn-p,我必须将图像居中,因为我从来没有使用 css-html 方法。问题是因为它设置为等待 document.ready() 有时它会将我所有的图像放在右边。我试过 window.load() 但图像以较小的窗口大小在屏幕外居中。也有人建议我试试

<div style="
  background: url('Assets/image.png') center center no-repeat;
  width: 100%;
  height: 500px;
 ">
 </div>

但这会导致它失去响应能力。我四处搜索,但找不到解决方案,我只需要我的图像(和一个表格)保持居中,并让图像随窗口大小缩小。

网站:http://bit.ly/11nAQJK

<script type="text/javascript"> //Centering Script


$(document).ready(function () {
    updateContainer();
    $(window).resize(function() {
        updateContainer();
    });
});


function updateContainer() {


(function ($) {
$.fn.vAlign = function() {
    return this.each(function(i){
    var h = $(this).height();
    var oh = $(this).outerHeight();
    var mt = (h + (oh - h)) / 2;    
    $(this).css("margin-top", "-" + mt + "px"); 
    $(this).css("top", "50%");
    $(this).css("position", "absolute");    
    }); 
};
})(jQuery);

(function ($) {
$.fn.hAlign = function() {
    return this.each(function(i){
    var w = $(this).width();
    var ow = $(this).outerWidth();  
    var ml = (w + (ow - w)) / 2;    
    $(this).css("margin-left", "-" + ml + "px");
    $(this).css("left", "50%");
    $(this).css("position", "absolute");
    });
};
})(jQuery);

【问题讨论】:

    标签: javascript jquery css responsive-design image-scaling


    【解决方案1】:

    居中响应大小的元素

    /* element/id/class */ 
    /* margin is 100 - width / 2 */
    
    img {
    width:34%;    
    margin: 0 33%;
    }
    

    【讨论】:

      【解决方案2】:

      如果你不接受别人建议的方法,我建议使用em's。最好在任何地方使用它们,但您可以将它们应用于您的图像。

      然后使用media queries 来放大/缩小具有em's 中指定值的所有元素,方法是针对不同的屏幕尺寸更改基本font-size

      【讨论】:

        【解决方案3】:

        不需要 js,单单 CSS 就可以了。将您的图像设置为显示块,设置宽度和最大宽度加上边距自动。

        img {
        display: block;
        width: 300px;
        max-width: 100%;
        margin: 0 auto;
        }
        

        【讨论】:

        • 谢谢你的作品!但是我如何将它应用到我页面上的表单(按钮)?
        • 如果我的图片有多个宽度怎么办?
        • 是的,实际上这个解决方案根本不起作用,我不能对页面上的每个图像都应用宽度。
        • 您不需要为页面上的每个 img 应用毯子宽度。只需设置一个max-width: 100%。这同样适用于form
        【解决方案4】:

        只是做

        <style>
        a{
        display:block;
        text-align:center;
        }
        
        </style>
        
        
        
        <a href="Assets/OrderSheet.xls">
            <img src="Assets/OrderSheet.png" class="image">
        </a>
        

        无需重新定位

        fiddle

        【讨论】:

        【解决方案5】:

        删除整个脚本。把它放在你的 CSS 中。

        img{
            display: block;
            margin: 0 auto;
        }
        

        【讨论】:

        • 使用此方法的图像没有响应
        • 然后将最大宽度和高度自动添加到图像中。前面的代码用于使图像居中。
        • 是的,这就是另一张海报的内容,但我如何将它应用到我页面上的表单中?
        • 如果我的图片有多个宽度怎么办?
        • 好吧,我知道你真的很想帮忙,但你的解决方案强制假设每个图像都有相同的宽度。
        猜你喜欢
        • 1970-01-01
        • 2018-11-22
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        相关资源
        最近更新 更多