Javascript 当图像处于';s的高度大于其宽度?

Javascript 当图像处于';s的高度大于其宽度?,javascript,php,html,css,Javascript,Php,Html,Css,在Facebook上,当我们发布任意大小的图片时,它会完美地显示在时间线上。他们是怎么做到的 我试过跟随 将图像设置为div的背景 CSS-宽度:100%;高度:自动 两者都不起作用,整个堆栈溢出对此没有选择,最后决定添加此项。在facebook上,它们不显示图像作为背景。使用img标签显示图像。如果你观察facebook图片的高度可能会有所不同,但宽度总是相同的。试着贴一张非常长的图片,你就会明白了 解决方案: <div> <img src="anysource"&g

在Facebook上,当我们发布任意大小的图片时,它会完美地显示在时间线上。他们是怎么做到的

我试过跟随

  • 将图像设置为div的背景
  • CSS-宽度:100%;高度:自动
    两者都不起作用,整个堆栈溢出对此没有选择,最后决定添加此项。

    在facebook上,它们不显示图像作为背景。使用img标签显示图像。如果你观察facebook图片的高度可能会有所不同,但宽度总是相同的。试着贴一张非常长的图片,你就会明白了

    解决方案:

    <div>
        <img src="anysource">
    </div>
    
    <style>
       div{width: 480px;}
       div img{width: 100%; height: auto}
    </style>
    
    
    div{width:480px;}
    div img{宽度:100%;高度:自动}
    
    我认为您要求的是缩放技术。您应该尝试拍摄图像并对其进行重新缩放,即使用JavaScript DOM或CSS更改其高度和宽度,然后将其重新上载到页面


    您的第一个解决方案不起作用,因为图像没有显示为背景,而是使用。

    作为所有答案的旁白,说明实际
    标记上使用的css

    Facebook还将通过服务器端脚本运行所有上传,该脚本将进行大小调整和压缩

    他们可能有自己的内部代码来执行此操作,但是您可以使用Imagemagick执行相同的操作,包括大小调整和裁剪上载,以便始终保持相同的宽高比(至少对于缩略图)

    以下是一些例子:

    对于纯css选项,您可以在使用定位参数的同时查看背景图像属性

    这里有一个来自w3cschools的片段

    div {     
    Width:100px;
    Height:100px;
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-position:50% 50%;
    }
    

    如果您的父级
    div
    具有固定尺寸,您可以使用CSS来缩放图像,同时保持横向纵向照片的纵横比

    图像将始终放在div中

    .container{
    宽度:400px;
    高度:400px;
    文本对齐:居中;
    背景:红色;
    }
    img{
    宽度:自动;
    高度:自动;
    最大宽度:100%;
    最大高度:100%;
    }
    景观
    肖像画
    
    除了所有答案之外,facebook还将通过服务器端脚本运行所有上传,该脚本将进行大小调整和压缩。他们可能有自己的内部代码来做这件事,但是你可以使用imagemagick来做同样的事情,包括调整裁剪上传的大小,以便始终保持相同的宽高比(至少对于缩略图来说)。这个答案有点好,不是预期的!对于img,我们必须添加margin:auto,以便在图像小于div时自动居中。