用纯CSS做的图片切换

  前段时间做了一个用css做的图片切换。

   我们先来看下html结构:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/index.css"/>
    </head>
    <body>
        <input type="radio" name="btn" id="btn1" class="btn1" checked/>
        <input type="radio" name="btn" id="btn2" class="btn2"/>
        <input type="radio" name="btn" id="btn3" class="btn3"/>
        <!--首先我们要先设置几个单选按钮,要注意标签的位置,不能乱-->
        <br />
        <!--一个单选按钮设置两个label,一个放在左边,一个放在右边-->

        <!--左边label-->
        <label for="btn1" class="lb1-1">btn1-1</label>
        <label for="btn2" class="lb2-1">btn2-1</label>
        <label for="btn3" class="lb3-1">btn3-1</label>

        <!--中间是图片,这里用div代替-->
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>

        <!--右边label-->
        <label for="btn1" class="lb1-2">btn1-2</label>
        <label for="btn2" class="lb2-2">btn2-2</label>
        <label for="btn3" class="lb3-2">btn3-2</label>
    </body>
</html>

  再看下CSS样式:

  这里设置了div,跟label的CSS样式:

div{
    display: inline-block; /*将div变成块级行内元素*/
    width: 200px;
    height: 200px;
}
.box1{
    background: #000;
}
.box2{
    background: #008000;
}
.box3{
    background: #ff0000;
}
label{
    padding: 10px;
    background: #ffd700;
}

  然后再单选按钮input被checked时触发的效果:

/*按钮显示开始*/
/*再单选按钮input被checked时触发label*/
.btn1:checked~.lb2-2{
    background: #0000ff;
}
.btn2:checked~.lb1-1{
    background: #0000ff;
}
.btn2:checked~.lb3-2{
    background: #0000ff;
}
.btn3:checked~.lb2-1{
    background: #0000ff;
}
.btn3:checked~.lb4-2{
    background: #0000ff;
}
.btn4:checked~.lb3-1{
    background: #0000ff;
}
/*按钮显示结束*/

/*图片显示开始*/
/*再单选按钮input被checked时触发div*/
.btn1:checked~.box1{
    background: #0000ff;
}
.btn2:checked~.box2{
    background: #0000ff;
}
.btn3:checked~.box3{
    background: #0000ff;
}
/*图片显示结束*/

效果图如下:(蓝色为显示,其他都为隐藏,- -!做的有点难看。通过点击不同按钮实现图片的切换。上面的CSS代码中,可以把background改为display,实现隐藏跟显示)

btn1-1 btn2-1 btn3-1

btn1-2 btn2-2 btn3-2

 此为不懂js,用css做出来的图片切换,有点蛋疼。

重点在单选按钮input被checked时,利用关系选择符中的兄弟选择符触发其他兄弟元素的属性变化,还有就是html的标签位置,css不能回溯算法什么的(我也不懂),简单说就是不能通过后面控制前面的元素,不能通过子元素控制父元素什么的。所以这里要input标签放在最前面,这样才能通过兄弟选择符控制其他兄弟元素。

就到这了...

时间: 2024-11-07 13:15:11

用纯CSS做的图片切换的相关文章

利用target的特性,可以实现纯css的tab效果切换

基础知识: :target起作用的是href连接到的位置 如 <a href="#tab1">tab1</a> <div id="tab1" class="tab">This is a tab1</div> :target{ color:red; } 但点击a标签的时候,连接到id是tab1的div,对这个div起作用color:red; 如: <a href="#tab"

纯css做三角形形状

1 /* create an arrow that points up */ 2 div.arrow-up { 3 width:0px; 4 height:0px; 5 border-left:5px solid transparent; /* left arrow slant */ 6 border-right:5px solid transparent; /* right arrow slant */ 7 border-bottom:5px solid #2f2f2f; /* bottom,

纯css做幻灯片效果

css3里面有一个@keyframes动画功能. w3c上面的例子: 可以使用它来做一个幻灯片效果. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>纯CSS做幻灯片</title> </head> <style> @keyframes slide { 0% { backgroun

纯css做三角形图标

以前做三角形图标一直是用图片,或者css3旋转,现在才发现原来还有这么简单的三角形 div { border: 10px solid transparent; border-bottom: 10px solid #000; width: 0; } 只要这么简单的三行css就可以实现一个三角形!

自学篇之-----纯css做的漂亮的单选框复选框样式

<!DOCTYPE html><html><head><title>checkbook</title><meta charset="utf-8" /><script type="text/javascript" src="jquery-1.10.2.min.js"></script> <style type="text/css"

使用纯css做一个播放器

首先,贴出成品图,如下: 可以发现播放器的基本形状有了,但是需要精确到每一个方向,不能溢出,就得以如下的方式写,贴出静态代码: html如下: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href=&

纯CSS做的一个Silder

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <style> 7 .containe

三种纯CSS实现三角形的方法

看到像上图这样的 tip 的小三角,你会怎么办? 切个图上去?恩,不错,简单,兼容性也一级棒,不但好控制,那点小东西也增加不了多少图片的大小.但有没有更好更讲究技巧的办法呢?哈哈,那必须有啊,而且还不止一种呢:) 纯 CSS 做三角形的方法,目前我知道三种,分别是利用 border 属性,“◆”字符,和 CSS3 transfrom 做 45 度旋转实现的,CSS3的方法是在码头哥的博客上学到的,很感谢你们的分享,前端有你们更精彩! 1.利用 border 属性实现三角形 这个原理很简单,我我们

纯CSS 箭头流程,网上找的,留着备用

无意之中看到一个纯CSS做的箭头导航(流程式),收藏一下,以备不时之需 实际效果 步骤一 步骤二 步骤三 步骤四 源代码: HTML: <div class="wrapper">  <ul class="flow-steps">  <li><b class="f"></b><a href="#">步骤一</a><s></s&g