纯html+css中实现静态选座位效果技巧(input+label使用小技巧)

  很多时候,我们想通过html+css的方式实现排列在后方的代码在选中状态下,能控制排列在前的代码的样式。那么要怎么实现呢?在这里我就要用1个小技巧来完成。

  众所周知的,我们css中的选择器通常只能向下或者同级向下选中,而不能向上选中,这样就对于想控制前面样式的时候带来麻烦。input+label关联的方式即可实现,因为input和label是通过id值来进行关联的,而html中规定了,id值必须唯一,那么我将input放置在html的body下的任意位置,均可实现关联,所以为了实现后方代码控制前方代码,只需要将input放置到前方的代码之前就ok了。

  下面我们举一个例子:我要实现电影院选座的时候,点击下方的1人,即选中1个座位,点击2人  即选中2个座位的效果。

在这里我选择单选框(input的type类型为radio)。   同时将input的代码放置到main标签下的最开始地方,而label可以放置在后面任意位置,都可以通过id进行关联。这样我在点击‘1人’等按钮的时候,即可选中所需座位。

html代码如下:

 <main>
        <div>
            <p>激光3号厅银幕</p>
        </div>
        <!-- 推荐选座的input框 -->
        <input name="select" type="radio" id="people1">
        <input name="select" type="radio" id="people2">
        <input name="select" type="radio" id="people3">
        <input name="select" type="radio" id="people4">
        <input name="select" type="radio" id="people5">
        <!-- 选座区 -->
        <section class="num">

            <!-- 选座区座位 -->
            <div class="num_r">
                <!-- 一排 -->
                <div class="num_r1">
                    <input type="checkbox" id="seat1_01">
                    <label for="seat1_01">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_02">
                    <label for="seat1_02">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_03">
                    <label for="seat1_03">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_04">
                    <label for="seat1_04">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_05">
                    <label for="seat1_05">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_06">
                    <label for="seat1_06">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_07">
                    <label for="seat1_07">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_08">
                    <label for="seat1_08">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_09">
                    <label for="seat1_09">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_10">
                    <label for="seat1_10">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_11">
                    <label for="seat1_11">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_12">
                    <label for="seat1_12">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_13">
                    <label for="seat1_13">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_14">
                    <label for="seat1_14">
                        <i></i>
                    </label>
                    <input type="checkbox" id="seat1_15">
                    <label for="seat1_15">
                        <i></i>
                    </label>
                </div>
                <!-- 二排       后面除了id值不一样以为,其他差不多,故省略-->
                <div class="num_r2">
               ......
                </div>
            </div>
            <p>银幕中央</p>
            <!-- logo背景 -->
                <img src="../IMG/logo.png"  class="logo">
        </section>
        <!-- 推荐选座 -->
        <section class="recommend">
            <p>推荐</p>
            <div>
                <label for="people1">
                    <p>1人</p>
                </label>
                <label for="people2">
                    <p>2人</p>
                </label>
                <label for="people3">
                    <p>3人</p>
                </label>
                <label for="people4">
                    <p>4人</p>
                </label>
                <label for="people5">
                    <p>5人</p>
                </label>
            </div>
        </section>
    </main>

  css代码如下:

main input{
    display: none;
}
input[id="people1"]:checked~section label[for="seat7_07"]>i{
    background-image: url("../IMG/Screenshot_2016-10-21-17-14-02_07.png");
}
input[id="people2"]:checked~section label[for="seat7_07"]>i,
input[id="people2"]:checked~section label[for="seat7_08"]>i
{
    background-image: url("../IMG/Screenshot_2016-10-21-17-14-02_07.png");
}
input[id="people3"]:checked~section label[for="seat7_07"]>i,
input[id="people3"]:checked~section label[for="seat7_08"]>i,
input[id="people3"]:checked~section label[for="seat7_09"]>i
{
    background-image: url("../IMG/Screenshot_2016-10-21-17-14-02_07.png");
}
input[id="people4"]:checked~section label[for="seat7_07"]>i,
input[id="people4"]:checked~section label[for="seat7_08"]>i,
input[id="people4"]:checked~section label[for="seat7_09"]>i,
input[id="people4"]:checked~section label[for="seat7_06"]>i
{
    background-image: url("../IMG/Screenshot_2016-10-21-17-14-02_07.png");
}
input[id="people5"]:checked~section label[for="seat7_07"]>i,
input[id="people5"]:checked~section label[for="seat7_08"]>i,
input[id="people5"]:checked~section label[for="seat7_09"]>i,
input[id="people5"]:checked~section label[for="seat7_06"]>i,
input[id="people5"]:checked~section label[for="seat7_05"]>i
{
    background-image: url("../IMG/Screenshot_2016-10-21-17-14-02_07.png");
}

  

原文地址:https://www.cnblogs.com/zhangzhiyong/p/9652215.html

时间: 2024-08-27 09:22:49

纯html+css中实现静态选座位效果技巧(input+label使用小技巧)的相关文章

Oracle中ID的自动增加以及获取系统时间的小技巧

引自http://blog.csdn.net/lejuo/article/details/4479065 ID自动增加,就像MS- SQL Server里面创建表格时,给表的主键设置为自动增加一样. 在Oracle里面,通过如下的SQL语句实现:(plsql可以直接在sequence创建) -- Create sequence create sequence MSG_IN_ID_SEQminvalue 1maxvalue 999999999999999999999999999start with

纯html+css制作3D立方体和动画效果

今天放上来的,是一个用css3制作的立方体+动画,效果如下. 整个效果都只用了html和css,没有一句js,其实起初是使用了js来给六个面的小方格们赋值,后来强迫症犯了,直接手动写上吧,这样一句js都没有,更干脆利落点. 如下为body内整体结构,一个类名为big的盒子内,放置六个ul,每个ul赋予不同的类名,标明了ul面所在的位置,这六个ul会作为立方体的六个面. <div class="big"> <ul class="after">&

给大家分享12个或许能在实际工作中帮助你解决一些问题的JavaScript的小技巧

使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: 01 function Account(cash) { 02 this.cash = cash; 03 this.hasMoney

纯CSS自定义Html中Checkbox复选框样式

原文链接:http://www.lrxin.com/archives-683.html 首先看下效果: 点击演示地址查看实例. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,之后我们会改变它的外观. 要做到这一点需要添加一段代码到你的CSS文件中. /** * 隐藏默认的checkbox */ input[type=checkbox] { visibility: hidden; } 隐藏掉所有的Checkbox复选框后,我们需要添加一个label HTML元素,我们都知道,当点击的有

Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结

上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件.当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路径肯定没有错,其原因就在于在web.xml 中配置了类似如下的 spring servlet: 程序代码 <servlet>    <servlet-name&g

纯CSS设置Checkbox复选框控件的样式

下面是纯CSS设置Checkbox复选框控件的五种简单样式,有兴趣的可以进行改动将其变成自己想要的样式. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要做到点需要添加一段代码到你的CSS文件中. 隐藏掉所有的Checkbox复选框后,我们需要添加一个label HTML元素,我们都知道,当点击的有for属性的label标签时,对应的Checkbox复选框会被选中.这意味着,我们可以通过label的点击事件来处理我们的Checkbox复选框. 样式一 此复选框

[ jquery 效果 show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) ] 此方法用于显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type=&#39;hidden&#39; 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素)

show()显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type='hidden' 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素): hide() 方法隐藏被选元素: 参数 描述 speed 可选.规定显示效果的速度. 可能的值: 毫秒 "slow" "fast" easing 可选.规定在动画的不同点上元素的速度.默认值为 "swing". 可能的值: &

【jsp】怎么在jsp文件中引入静态文件(.js .css)

如果在jsp文件中引入静态文件比如(.js或.css等等),可以在使用 /项目名称/路径 的方式,但是这种方式如果在修改了项目了名称后就显得比较麻烦了.除了之外还许多方式,比如相对路径等等.一般情况下,可以先获得项目的根路径,然后再加上文件路径.  ${pageContext.request.contextPath}  可以获得当前项目的路径,然后就只需要在后面加上引入的静态文件的文件路径即可.比如: 这样就可以引入js文件下的jquery.min.js文件了.

转 纯CSS设置Checkbox复选框控件的样式

Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至可以让它看起来一点也不像复选框. 在本教程中,我们将创建5个不同的选择框,你可以在你的网站上使用它. css-style-checkboxes 查看演示,可以看到我们将要创建的复选框样式. 演示地址 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要做到点需要添加一