【问题标题】:What is the best way to deal with images uploaded by user?处理用户上传的图像的最佳方法是什么?
【发布时间】:2017-03-21 11:52:18
【问题描述】:

我正在尝试创建一个需要显示图像的布局。我试图通过使用width: 100%; height: auto; 来处理它,但是图像的比例总是会破坏页面的外观。

例如:

https://jsfiddle.net/iDaniel19/sLrntpcw/1/

我一直在查看付费模板/网站以了解它们如何处理图像,并且它们都使用固定的高度和宽度,具体取决于页面上看起来合适的尺寸。

我正在使用像 col-xs-3 这样的引导类。现在让我们假设用户上传了一张 1230x415 或 415x1230 的图片。现在我有两种方法可以在页面上显示它:

  1. 使用width: 100%; height: auto;。这会弄乱布局的外观。

  2. 包含由col-xs-3 决定的宽度和一些预定义高度的图像。这会弄乱图像的纵横比。

  3. 裁剪图像??

实际上如何处理用户上传的图片并保持页面美观?

【问题讨论】:

  • 在容器 div 上使用 max-width,在 img 标签上使用 max-width..
  • 试试max-width: 100% 而不是height。而且,如果您正在寻找一种用于管理不同尺寸图像的自动解决方案,那么没有一个解决方案。甚至 Facebook 也使用一种算法来调整和裁剪用户上传的图像。
  • @DeepakYadav 我已经设置了宽度。高度是个问题。
  • 一种常见的方法是调整上传图像的大小(也可能裁剪)以适合您的布局(宽度、高度或纵横比)。这有利于或防止用户在页面上放置 巨大 图像,从而大大减慢页面加载时间。
  • @BogdanDaniel .. my bad.. 在容器 div 上使用 max-height,在 img 标签上使用 max-width .. 它只会在您设置的框架内显示,并适当缩放

标签: html css image


【解决方案1】:

尝试在图像上使用最小和最大高度。

.event-image > img {
    width:100%;
    min-height: 200px;
    max-height: 300px;
    overflow:hidden;
}

【讨论】:

  • 这将保持布局在一起,但会破坏图像的比例。
【解决方案2】:

这应该保持您想要的高度和适当的纵横比。

CSS:
body{margin: 0;padding:0;}
#styled>div{
    position:relative;
    margin: 0 auto;
    max-width:400px;
    text-align:center;
    border:1px solid lime;
    }
#styled>div>img{
    max-height:200px;
    }
#not-styled>div{
    position:relative;
    margin: 0 auto;
    text-align:center;
    border:1px solid blue;
    }


    HTML:
<div id="styled">
        <div><img src="path/to/your/image.png" alt="" /><p>img size: 250x250</p></div>
        <div><img src="path/to/your/image2.png" alt="" /><p>img size: 850x500</p></div>
    </div>
    <div id="not-styled">
        <p>NOT styled</p>
        <div><img src="path/to/your/image.png" alt="" /><p>img size: 250x250</p></div>
        <div><img src="path/to/your/image2.png" alt="" /><p>img size: 850x500</p></div>
    </div>

你可以在webbdesign.ca/photo_aspect_example.html看到一个例子

【讨论】:

  • 这看起来很有希望,但我想我会以某种方式调整大小和裁剪。在这种情况下显示整个图像会在其周围留下空白区域。我刚刚意识到,一个页面看起来不错的唯一方法是所有图像都具有相同的宽度/高度。
猜你喜欢
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 2021-01-04
  • 2010-09-09
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 2018-09-19
相关资源
最近更新 更多