如何配置模式窗口以适合所包含图像的实际大小?

时间:2019-03-18 21:05:33

标签: html5 css3 bootstrap-4

我正在使用Bootstrap 4.2,显示一个弹出窗口(模式),其宽度和高度均为真实大小(100%)的图像,只要浏览器窗口的大小允许,即,如果图像大于窗口大小,则会自动缩小。我尝试使用以下代码,但是图像的模态宽度已放大(+ 100%),尽管我已将其配置为 max-width:100%

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Imagen 100%</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</head>
<body>
    <style>
        .img-100{
            max-width: 100%;
            max-height: 100%;
       }
    </style>
    <a href="#modalArticulo" role="button" class="btn btn-primary" data-toggle="modal">Launch modal</a>
    <div id="modalArticulo" class="modal fade " tabindex="-1" role="dialog">
        <div class="modal-dialog modal-dialog-centered">
            <div class="modal-content">
                <img src="../images/Imagen360x360.jpg" class="img-100">
           <!-- <img src="../images/Imagen1200x1200.jpg" class="img-100"> -->
            </div>
        </div>
    </div>
</body>
</html>

图像将动态加载,因此默认情况下我不知道图像的大小。

1 个答案:

答案 0 :(得分:0)

将页边距设置为自动将防止图像拉伸以填充模态div的宽度和高度。您无需设置图片的最大宽度或最大高度。

.modal-image {
    margin: auto
}

此外,添加此类以使模态适合图片并在屏幕上居中。如果没有它,模态将在图像周围显示边框。

.modal-content {
     width: unset;
     margin: auto;
}