css - 在 CSS 灯箱中放大图像

标签 css html image lightbox

作为CSS的新手,我还处于学习阶段,所以请多多包涵。我有一个完全用 CSS 构建的灯箱,我想生成比当前显示的更大的图像(灯箱内的图像,而不是主页上的缩略图),但想不出任何方法来实现这一点!

实时网站:http://contractoptions.com/gallery2.html

HTML:

<ul class="gallery">
<li>
    <a href="#img1"><img src="thumb-01.jpg" alt="Image 1 Thumb"></a>
    <article id="img1">
        <figure>
            <a href="#img2"><img src="img01.jpg" alt="Image 1"></a>
        </figure>
        <nav>
            <a class="close" href="#close">Close</a>
            <a class="arrow prev" href="#img25">Previous</a>
    <a class="arrow next" href="#img2">Next</a>
        </nav>
    </article>
</li>

CSS:

/* ----- 图库页面 ----- */

.container {
width: 110%;
padding: 0 4%;
}

h1 {
    font-weight: normal;
    font-style: italic;
    text-align: center;
    margin: 5px 0 20px;
}

figure {
    margin: 0;
    height: 50%
}

ul {
    list-style: none;
    padding: 0;
}

a img {
    border: none;
}

.gallery {
    max-width: 700px;
    padding: 15px;
    background: #666;
    border-radius: 10px;
    margin: 0 auto;
    border: 15px #98b277;
    box-shadow: 0 0 20px rgba(0, 0, 0, .5);
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.gallery:after {
    content: "";
    display: block;
    clear: both;
}

    .gallery li {
        float: right;
        width: 18%;
        margin: 1%;
    }

        .gallery li > a {
            float: right;
            width: 100%;
            -webkit-filter: grayscale(.5) sepia(.8);
            -webkit-transition: .5s;
            transition: .5s;
            position: relative;
            -webkit-transform: translateZ(0);
        }

            .gallery li > a img {
                max-width: 100%;
                float: right;
                display: block;
                box-shadow: 0 0 5px rgba(0, 0, 0, .3);
                -webkit-transition: .5s;
                transition: .5s;
            }

            .gallery li > a:hover {
                -webkit-filter: grayscale(0) sepia(0);
                z-index: 1;
            }

            .gallery li > a img:hover {
                -webkit-transform: scale(1.4);
                -ms-transform: scale(1.4);
                transform: scale(1.4);
                box-shadow: 0 0 15px rgba(0, 0, 0, .8);
            }

        .gallery article {
            width: 0;
            height: 0;
            overflow: hidden;
            position: fixed;
            top: 0;
            left: 0;
        }

        .gallery article:target {
            width: 100%;
            height: 100%;
            padding: 100px 0;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            margin: 0;
            text-align: center;
            background: rgba(0, 0, 0, .7);
            z-index: 1000;
        }    

            .gallery article figure {
                height: 100%;
            }

            .gallery article img {
                opacity: 0;
                -webkit-transition: .7s;
                transition: .7s;
                border: 10px solid #fff;
                max-height: 100%;
                max-width: 100%;
                -webkit-box-sizing: border-box;
                -moz-box-sizing: border-box;
                box-sizing: border-box;
                box-shadow: 0 0 20px rgba(0, 0, 0, .5);
            }

            .gallery article:target img {
                opacity: 1;
            }

            .gallery figcaption {
                background: rgba(250, 250, 250, .1);
                padding: 5px 10px;
                font-size: 1.3em;
                font-style: italic;
                color: #999;
                margin-top: 20px;
            }

                article .close {
                    position: absolute;
                    left: 50%;
                    top: 40px;
                    margin-left: -50px;
                    width: 100px;
                    background: rgba(250, 250, 250, .9);
                    color: #333;
                    border-radius: 15px;
                    text-decoration: none;
                    padding: 6px 6px 6px 25px;
                    -webkit-box-sizing: border-box;
                    -moz-box-sizing: border-box;
                    box-sizing: border-box;
                    text-transform: uppercase;
                    -webkit-transition: .5s;
                    transition: .5s;
                }

                    article .close:before {
                        content: "X";
                        color: #fff;
                        font-family: Arial;
                        font-weight: bold;
                        position: absolute;
                        padding-top: 3px;
                        top: 3px;
                        left: 5px;
                        width: 24px;
                        height: 21px;
                        background: #666;
                        border-radius: 50%;
                    }

                    article .close:hover {
                        background: #fff;
                    }

                article .arrow {
                    position: absolute;
                    top: 250px;
                    width: 0;
                    height: 0;
                    border-top: 40px solid transparent;
                    border-bottom: 40px solid transparent;
                    text-indent: -9999px;
                    -webkit-transition: .4s;
                    transition: .4s;
                }

                article .prev {
                    left: 50%;
                    margin-left: -35%;
                    border-right: 60px solid rgba(250, 250, 250, .1);
                }

                article .prev:hover {
                    border-right-color: rgba(250, 250, 250, .2);
                }

                article .next {
                    right: 50%;
                    margin-right: -35%;
                    border-left: 60px solid rgba(250, 250, 250, .1);
                }

                article .next:hover {
                    border-left-color: rgba(250, 250, 250, .2);
                }


@media screen and (max-width:1100px) {

article .arrow {
    top: 36px;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
}

article .prev {
    margin-left: -130px;
    border-right: 40px solid rgba(250, 250, 250, .3);
}

article .next {
    margin-right: -130px;
    border-left: 40px solid rgba(250, 250, 250, .3);
}

}

@media screen and (max-width:600px) {

h1 {
    font-size: 1.4em;
}

.gallery li {
    width: 23%;
}

}

@media screen and (max-width:450px) {

h1 {
    font-size: 1.2em;
}

.gallery li {
    width: 31%;
}

}

@media screen and (max-width:350px) {

h1 {
    font-size: 1.2em;
}

.gallery li {
    width: 48%;
}

}

最佳答案

我快速构建了一个 Codepen为你。我简单地插入了一些占位符图像,无论我使用什么尺寸的图像,它都不受你的 CSS 限制。我的建议?只需上传更大的图像。要摆弄我的设置,请像这样配置 placehold.it 图像:

<img src="http://placehold.it/200x200">

200x200 可以是您喜欢的任何尺寸。

编辑更新如下:

起初,我以为您想增加灯箱图片的尺寸。但现在我认为您可能在谈论图库中图像的大小,这些图像在您的 CSS 中受到以下声明的限制:

.gallery li > a img{
    max-width: 100%;
}

因此,您图库中的图片将无法增长到超过其父级宽度的 100%。

关于css - 在 CSS 灯箱中放大图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859635/

相关文章:

html - 为什么我的 CSS 看起来与您的 CSS 不同?

Javascript 如果只能在函数外工作

image - 使用blockproc或im2col在图像上重叠滑动窗口?

PHP - 图像快捷方式

php - 使用 xcode 和 php 将图像上传到网络服务器

javascript - 使用 javascript 的 ASP 经典站点中的字体颜色不会改变

CSS 效率问题

html - 避免容器 div

javascript - jQuery 按钮只能工作一次

javascript - 有巨大错误的打地鼠游戏!我可以得到一些帮助来修复它吗?