作为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%;
}
}
答案 0 :(得分:0)
我为你建立了一个快速Codepen。我只是插入一些占位符图像,无论我使用什么尺寸的图像,它都不受CSS的限制。我的建议?只需上传更大的图片要摆弄我的设置,请配置placehold.it图像,如下所示:
<img src="http://placehold.it/200x200">
200x200
可以是您喜欢的任何尺寸。
此处更新了以下内容:
起初,我以为你想增加光箱图像的大小。但是现在我认为你可能正在讨论图库中图像的大小,这些图像受CSS声明的限制:
.gallery li > a img{
max-width: 100%;
}
因此,您图库中的图片将无法超过其父级宽度的100%。
答案 1 :(得分:0)
您可以利用以下事实:根据页面中哪个锚点处于活动状态,可以定位CSS:
<figure id="image-01-in-document">
<a href="#show-01-in-lightbox">
<img alt="Some thumbnail" src="/_res/thumb/01.jpg" />
<p>Some Thumbnail's caption.</p>
</a>
</figure>
当有人点击缩略图时,任何ID为show-01-in-lightbox
的内容都会生效。在这里你可以放置更大的图像。我们使用ID为figure
的{{1}}返回灯箱的缩略图:
image-01-in-document
我们需要的只是一些CSS可以挂钩<aside class="lightbox" id="show-01-in-lightbox">
<a href="#image-01-in-document">
<img alt="Some big image" src="/_res/fullsize/01.jpg" />
<p>Some Lightbox's caption.</p>
</a>
</aside>
和image-01-in-document
的有效/无效状态:
show-01-in-lightbox
默认情况下,灯箱图像是隐藏的。但是,如果您单击缩略图,则会激活aside.lightbox {
display: none;
position: fixed;
top: 0; left: 0;
width: 0; height: 0;
overflow: hidden;
}
aside.lightbox:target {
display: block;
width: 100%; height: 100%;
overflow: scroll;
}
并突然显示灯箱图像。可以添加转换等。您只需要在文档末尾的每个灯箱图像的旁边。
至少,这是我对仅限CSS的灯箱的解释。