gpt4 book ai didi

html - 纯 CSS 3 图像 slider - 没有 JavaScript 或 radio 输入

转载 作者:太空宇宙 更新时间:2023-11-04 13:32:35 25 4
gpt4 key购买 nike

有没有一种方法可以仅使用 CSS 3 和 HTML 创建图像 slider ,但使用任何 HTML input(单选)元素且不使用 JavaScript?

我进行了大量的搜索,找到了接近和 worked well 的东西, 但它使用的是 HTML 单选输入。

最佳答案

纯 CSS 轮播

(...因为您不允许使用 input radio 元素来维持事件状态...)
还有另一种方法可以使用 :target 在纯 CSS(3) 中制作一个滑动画廊

  • :target成为那些id="foo"由具有 URI 片段(哈希)的单击 anchor 引用的元素 href="#foo"

  • 在 CSS 中,使用 :target pseudo 你可以使用 ~ 引用树下的其他兄弟元素(通用兄弟选择器),然后您可以像往常一样进一步访问它们的子元素(幻灯片、按钮等)。

  • 提示:如果您不喜欢图库的“功能”弄乱您的 URL 片段(浏览器后退按钮触发图库滑动而不是浏览历史记录!),您始终可以对其进行沙盒处理 - 调用您的图库文件<iframe> .

html, body{height:100%;}
body{font:15px/1 sans-serif; margin:0;}

/*
RESPONSIVE CSS3 SLIDE CAROUSEL GALLERY
http://stackoverflow.com/a/34696029/383904
*/

.CSSgal{
position: relative;
overflow: hidden;
height: 100%; /* Or set a fixed height */
}

/* SLIDER */
.CSSgal .slider{
height: 100%;
white-space: nowrap;
font-size: 0;
transition: 0.8s;
}

/* SLIDES */
.CSSgal .slider > *{
font-size: 1rem;
display: inline-block;
vertical-align: top;
height: 100%;
width: 100%;
background: none 50% no-repeat;
background-size: cover;
}

/* PREV/NEXT, CONTAINERS & ANCHORS */
.CSSgal .prevNext{
position: absolute;
z-index: 1;
top: 50%;
width: 100%;
height: 0;
}
.CSSgal .prevNext > div+div{
visibility: hidden; /* Hide all but first P/N container */
}
.CSSgal .prevNext a{
background: #fff;
position: absolute;
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
opacity: 0.7;
text-decoration: none;
-webkit-transform: translateY( -50% );
transform: translateY( -50% );
}
.CSSgal .prevNext a:hover{
opacity: 1;
}
.CSSgal .prevNext a+a{
right: 0px;
}

/* NAVIGATION */
.CSSgal .bullets{
position: absolute;
z-index: 2;
bottom: 0;
padding: 10px 0;
width: 100%;
text-align: center;
}
.CSSgal .bullets > a{
display: inline-block;
width: 20px;
height: 20px;
line-height: 20px;
text-decoration: none;
text-align: center;
border-radius: 50%;
background: rgba(255,255,255,1);
}
.CSSgal .bullets > a+a{
background: rgba(255,255,255,0.5); /* Dim all but first */
}
.CSSgal .bullets > a:hover{
background: rgba(0,255,255,0.9);
}

/* ACTIVE NAVIGATION ANCHOR */
.CSSgal >s:target ~ .bullets >* { background: rgba(255,255,255,0.5); }
#s1:target ~ .bullets >*:nth-child(1){ background: rgba(255,255,255, 1); }
#s2:target ~ .bullets >*:nth-child(2){ background: rgba(255,255,255, 1); }
#s3:target ~ .bullets >*:nth-child(3){ background: rgba(255,255,255, 1); }
#s4:target ~ .bullets >*:nth-child(4){ background: rgba(255,255,255, 1); }

/* PREV/NEXT CONTAINERS VISIBILITY */
.CSSgal >s:target ~ .prevNext >* { visibility: hidden; }
#s1:target ~ .prevNext >*:nth-child(1){ visibility: visible; }
#s2:target ~ .prevNext >*:nth-child(2){ visibility: visible; }
#s3:target ~ .prevNext >*:nth-child(3){ visibility: visible; }
#s4:target ~ .prevNext >*:nth-child(4){ visibility: visible; }

/* SLIDER ANIMATION POSITIONS */
#s1:target ~ .slider{ transform: translateX( 0%); -webkit-transform: translateX( 0%); }
#s2:target ~ .slider{ transform: translateX(-100%); -webkit-transform: translateX(-100%); }
#s3:target ~ .slider{ transform: translateX(-200%); -webkit-transform: translateX(-200%); }
#s4:target ~ .slider{ transform: translateX(-300%); -webkit-transform: translateX(-300%); }
<div class="CSSgal">

<!-- Don't wrap targets in parent -->
<s id="s1"></s>
<s id="s2"></s>
<s id="s3"></s>
<s id="s4"></s>

<div class="slider">
<div style="background:#5fc;">Slide 1</div>
<div style="background-image:url('//i.imgur.com/squw4Fw.jpg');"></div>
<div style="background:#fc5;">Slide 3</div>
<div style="background:#f5c;">Slide 4</div>
</div>

<div class="prevNext">
<div><a href="#s4">4</a><a href="#s2">2</a></div>
<div><a href="#s1">1</a><a href="#s3">3</a></div>
<div><a href="#s2">2</a><a href="#s4">4</a></div>
<div><a href="#s3">3</a><a href="#s1">1</a></div>
</div>

<div class="bullets">
<a href="#s1">1</a>
<a href="#s2">2</a>
<a href="#s3">3</a>
<a href="#s4">4</a>
</div>

</div>

关于html - 纯 CSS 3 图像 slider - 没有 JavaScript 或 radio 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com