我希望制作一个图像轮播,用户可以在其中通过单击箭头在图像之间切换。
但是,我只能使用HTML和CSS,而不能使用JavaScript(因此也不能使用jQuery)。我只需要基本设置;平滑过渡等不是必需的。
我该如何做到这一点?
这很容易!只需使用单选按钮和目标标签。
单选按钮的(必要的)行为是一次只能选择一个按钮,就像轮播中的图像一样。
演示版
div.wrap2 {
float: left;
height: 500px;
width: 422px;
}
div.group input {
display: none;
left: -100%;
position: absolute;
top: -100%;
}
div.group input ~ div.content {
border: solid 1px black;
display: none;
height: 350px;
margin: 0px 60px;
position: relative;
width: 300px;
}
div.group input:checked ~ div.content {
display: block;
}
div.group input:checked ~ label.previous,
div.group input:checked ~ label.next {
display: block;
}
div.group label {
background-color: #69c;
border: solid 1px black;
display: none;
height: 50px;
width: 50px;
}
img {
left: 0;
margin: 0 auto;
position: absolute;
right: 0;
}
p {
text-align: center;
}
label {
font-size: 4em;
margin: 125px 0 0 0;
}
label.previous {
float: left;
padding: 0 0 30px 5px;
}
label.next {
float: right;
padding: 0 5px 25px 0;
text-align: right;
}
<div class="wrap">
<div class="wrap2">
<div class="group">
<input type="radio" name="test" id="0" value="0">
<label for="4" class="previous"><</label>
<label for="1" class="next">></label>
<div class="content">
<p>panel #0</p>
<img src="http://i.stack.imgur.com/R5yzx.jpg" width="200" height="286">
</div>
</div>
<div class="group">
<input type="radio" name="test" id="1" value="1">
<label for="0" class="previous"><</label>
<label for="2" class="next">></label>
<div class="content">
<p>panel #1</p>
<img src="http://i.stack.imgur.com/k0Hsd.jpg" width="200" height="139">
</div>
</div>
<div class="group">
<input type="radio" name="test" id="2" value="2">
<label for="1" class="previous"><</label>
<label for="3" class="next">></label>
<div class="content">
<p>panel #2</p>
<img src="http://i.stack.imgur.com/Hhl9H.jpg" width="140" height="200">
</div>
</div>
<div class="group">
<input type="radio" name="test" id="3" value="3" checked="">
<label for="2" class="previous"><</label>
<label for="4" class="next">></label>
<div class="content">
<p>panel #3</p>
<img src="http://i.stack.imgur.com/r1AyN.jpg" width="200" height="287">
</div>
</div>
<div class="group">
<input type="radio" name="test" id="4" value="4">
<label for="3" class="previous"><</label>
<label for="0" class="next">></label>
<div class="content">
<p>panel #4</p>
<img src="http://i.stack.imgur.com/EHHsa.jpg" width="96" height="139">
</div>
</div>
</div>
</div>
基本的HTML结构如下所示:
div#holder
div.group
input(type="radio")
label.previous
label.next
div.content
img
div.group
// ... repeat as necessary
div#holder将
保留我们所有的内容。然后,我们将单选按钮,标签和图像归为一个组div.group。这可以确保我们的无线电输入不受破坏性干扰(双关)的影响。
关键在选择器中(以及标签-请务必阅读该部分)
首先,我们将隐藏单选按钮-无论如何它们都很丑陋:
div.group input {
display: none;
position: absolute;
top: -100%;
left: -100%;
}
我们将不再需要单击单选按钮。相反,我们将设置标签样式并添加目标(for属性),以便它们将点击重定向到适当的单选框。
我们的大多数标签都应该隐藏:
div.group label {
display: none;
}
(我将省略所有美学样式,以便使样式更易于理解。您可以在堆栈片段中看到外观更好的版本。)
除了已打开的无线电输入旁边的那些,或 :checked
div.group input:checked ~ label.previous,
div.group input:checked ~ label.next {
display: block;
}
此外,div.content还应显示以下选中的输入:
div.group input:checked ~ div.content {
display: block;
}
但是,当未选中单选按钮时,div.content应将其隐藏:
div.group input ~ div.content {
display: none;
position: relative;
}
现在我们的轮播应该充分地主要功能,尽管有点难看。让我们将标签移到正确的位置:
label.previous { float: left; }
label.next { float: right; }
并将我们的图片放在各自的div中:
img {
left: 0;
margin: 0 auto;
position: absolute;
right: 0;
}
最后一步是如何设置标签:
<input type="radio" id="1">
<label class="previous" for="0"><</label>
<label class="next" for="2">></label>
注意如何给出一个无线电输入id
的n
,该label.previous会
拥有for
的属性(n - 1) % M
和label.next
将有一个for
属性(n + 1) % M
,其中M在转盘图像的数量。
如果您使用的是Jade(或其他模板引擎),则可以使用简单的for循环进行设置,如下所示:
div.wrap2
- var imgs = [[200, 286], [200, 139], [140, 200], [200, 287], [96, 139]];
- for (var i = 0; i < imgs.length; i++)
div.group
input(type="radio" name="test" id="#{i}" value="#{i}" checked="#{input == 3}")
label(for="#{(i - 1 + imgs.length) % imgs.length}").previous <
label(for="#{(i + 1) % imgs.length}").next >
div.content
p panel ##{i}
img(src="http://placekitten.com/g/#{imgs[i].join('/')}"
height="#{imgs[i][1]}"
width="#{imgs[i][0]}"
)
我对这类事情很陌生,但这是我的问题。我已经看了几个问题,它是有意义的,如何使它的圆形,但图像,使圆形是一半被切断,有没有一个方法来解决这一点。我正在使用HTML和CSS。
本文向大家介绍使用BootStrap进行轮播图的制作,包括了使用BootStrap进行轮播图的制作的使用技巧和注意事项,需要的朋友参考一下 Bootstrap 轮播(Carousel)插件是一种灵活的响应式的向站点添加滑块的方式。除此之外,内容也是足够灵活的,可以是图像、内嵌框架、视频或者其他您想要放置的任何类型的内容。 以上所述是小编给大家介绍的使用BootStrap进行轮播图的制作,希望对大家
问题内容: 嗨,我正在尝试使背景图像模糊,但我认为这样做不够。对此的任何帮助都会增强我的精力。谢谢 这是我的CSS 我正在尝试应用此功能,但它只会模糊我所有插入背景图像的网页。 谢谢。 问题答案: 如果您要应用模糊处理,那么它将模糊您的网页。 而不是要添加背景,您需要创建另一个与同尺寸该网页,并添加模糊处理它。 例
问题内容: 如何仅在CSS中制作此箭头? 我正在建立一个类似向导的订购过程,该菜单具有以下菜单: 活动页面显示为绿色(在本例中为Model)。 如何仅使用CSS制作此箭头? 目前,我通过使用多个div和图像来实现自己的目标: 我找到了一个能做到这一点的SO答案: CSS的Arrow Box,但是我在左侧的缩进方面遇到了麻烦。 如果您对如何执行此操作有更好的想法,请告诉我! 问题答案: 如果箭头之间
问题内容: 我希望我的背景图像能够根据浏览器视口的大小进行拉伸和缩放。 我看到了一些可以解决问题的问题。它运作良好,但我想使用而不是使用标签放置图片。 在该标签中放置一个标签,然后使用CSS向该标签致敬。 它可以工作,但是这个问题有点老了,并且指出在CSS3中调整背景图像的大小可以很好地工作。,但是对我来说却没有用。 有没有一个很好的方法来处理声明? 问题答案: CSS3有一个很好的小属性,称为。
本文向大家介绍如何使用Java OpenCV库查找图像轮廓?,包括了如何使用Java OpenCV库查找图像轮廓?的使用技巧和注意事项,需要的朋友参考一下 轮廓线不过是连接沿着特定形状的边界的所有点的线。使用这个你可以- 查找对象的形状。 计算对象的面积。 检测物体。 识别对象。 您可以使用findContours()方法找到图像中各种形状的轮廓,对象。此方法接受以下参数- 二进制图像。 类型为M