介绍checkbox

checkbox: A check box. You must use the value attribute to define the value submitted by this item. Use the checked attribute to indicate whether this item is selected. You can also use the indeterminate attribute (which can only be set programmatically) to indicate that the checkbox is in an indeterminate state (on most platforms, this draws a horizontal line across the checkbox).


不能用眼睛判断checked

<input type="checkbox"/>

无论我如何点击,f12出来的源代码都没有改变,并不显示checked,这是需要注意的一个地方,我们不能在前台通过f12来判断checked


通过js动态判断checked

<input type="checkbox" id="t"/>
<input type="button" id="s"/>
<script>
var s=document.getElementById("s");
s.onclick=function() {
console.log(document.getElementById("t").checked);
}
</script>

可以通过document.getElementById("").checked看输出的true||false来判断


高级用法

<style>
#bg{
width: 300px;
height: 300px;
background-color: #00cccc;
}
#box:checked+#bg{
background-color: #00ee00;
}
</style>
<body>
<input type="checkbox" id="box"/>
<div id="bg"></div>
</body>

这里的关键点是#box:checked,意思就是我们的checkbox被点击后,虽然前文我们提过f12无法看到checked的改变,但此处的css的checked选择器是可以起作用的。

checkbox被点击后,变成checked,这时+#bg{ background-color: #00ee00; }就起作用了,+选择器指代选择之后的元素,所以此处就是匹配到我们的bg注意:如果这里不用+,而是直接使用空格选择器是不生效的

#box:checked #bg{
background-color: #00ee00;
}

因为空格选择器匹配的是后代元素,而此刻的bg明显是box的同代元素,所以此处需要使用+或者~

接回原来那里,点击checkbox之后,bg的背景色发生改变,至此,整个简单的效果完成。

效果虽然简单,但同时提供了一种不需要js就可以做到点击改变效果的新思路。


checkbox配合label标签的使用

<label><input type="checkbox" id="cbox1" value="first_checkbox"> This is the first checkbox</label><br>

<input type="checkbox" id="cbox2" value="second_checkbox"> <label for="cbox2">This is the second checkbox</label>

This is the first checkbox

This is the second checkbox


checkbox多选以及传数据

checkbox一般用来做复选框

<form action="">
你最爱的水果
<p>
<input type="checkbox" name="fruits" value="apple"/>苹果<br>
<input type="checkbox" name="fruits" value="orange"/>橙子<br>
<input type="checkbox" name="fruits" value="pear"/>梨<br>
<input type="checkbox" name="fruits" value="watermelon"/>西瓜<br>
</p>
<input type="submit" value="提交"/>
</form>

你最爱的水果

苹果

橙子



西瓜

后台会接收到选择的checkbox,数据保存在fruits中,遍历数组获得


扩展:radio的用法

A radio button. You must use the value attribute to define the value submitted by this item. Use the checked attribute to indicate whether this item is selected by default. Radio buttons that have the same value for the name attribute are in the same "radio button group"; only one radio button in a group can be selected at a time.

<FORM ACTION="../cgi-bin/mycgi.pl">
What size pizza?
<P>
<INPUT TYPE=RADIO NAME="pizzasize" VALUE="S">small<BR>
<INPUT TYPE=RADIO NAME="pizzasize" VALUE="M" CHECKED>medium<BR>
<INPUT TYPE=RADIO NAME="pizzasize" VALUE="L">large
</P>
<INPUT TYPE=SUBMIT VALUE="submit">
</FORM>

What size pizza?

small

medium

large

Note that it is the content of the VALUE attribute that is sent to the CGI.

If no CHECKED attribute is used, different browsers have different ways of displaying the initial state of a series of radio buttons. Netscape and MSIE have none of the buttons selected. Mosaic selects the first button.

也就是说,上述的代码,传给后台的值就是name=pizzasize,而这个name对应的value就是前台页面点击选中的按钮对应的value,我们还可以创建多组radio,如下

<input type="radio" name="group1" value="Milk"> Milk<br>
<input type="radio" name="group1" value="Butter" checked> Butter<br>
<input type="radio" name="group1" value="Cheese"> Cheese
<hr>
<input type="radio" name="group2" value="Water"> Water<br>
<input type="radio" name="group2" value="Beer"> Beer<br>
<input type="radio" name="group2" value="Wine" checked> Wine<br>

Milk

Butter

Cheese


Water

Beer

Wine


radio多选

radio无法做多选,要想实现多选用checkbox


radio的高级用法

radio也是可以像前文的checkbox那样使用的。

#bg{
width: 300px;
height: 300px;
background-color: #00cccc;
}
#dio:checked~#bg{
background-color: #00ee00;
} <input type="radio" id="dio"/>
<div id="bg"></div>

注意:radio与checkbox不同,radio选择后,无法再次点击取消选择,除非存在两个radio供交互选择才能取消,这是radio的特性,无法点击原来的radio取消选择。


select介绍

<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat" selected="selected">Fiat</option>
<option value="audi">Audi</option>
</select>

Volvo
Saab
Fiat
Audi


全文完,下文,使用checkbox实现按钮滑动效果。

checkbox探究的更多相关文章

  1. jQuery获取当前checkbox的值

    背景: 目前想实现登录的“记住我”功能,需要获取当前checkbox是否被点击,百度了一通,全是多个复选框选中了哪一个的解答, 迫于无奈,自己在W3school上面查询了checkbox的所有属性,并 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  4. [原] KVM 虚拟化原理探究 —— 目录

    KVM 虚拟化原理探究 -- 目录 标签(空格分隔): KVM KVM 虚拟化原理探究(1)- overview KVM 虚拟化原理探究(2)- QEMU启动过程 KVM 虚拟化原理探究(3)- CP ...

  5. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  6. [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化

    KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...

  7. [原] KVM 虚拟化原理探究(4)— 内存虚拟化

    KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Gu ...

  8. [原] KVM 虚拟化原理探究(3)— CPU 虚拟化

    KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...

  9. [原] KVM 虚拟化原理探究(2)— QEMU启动过程

    KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ...

随机推荐

  1. [LeetCode]题解(python):008-String to Integer (atoi)

    题目来源: https://leetcode.com/problems/string-to-integer-atoi/ 题意分析: 这道题也是简单题,题目意思是要将字符串转化成int.比如‘123’转 ...

  2. python--help

    python help 学习python的过程中,难免遇到一些生疏的东西,为此需要参看相关的文档说明. Linux下众所周知有man可以查找系统的命令帮助页:对于python也提供了自己的帮助文档的2 ...

  3. Archive for required library: ‘WebContent/WEB-INF/lib/xxx.jar cannot&n

    今天导入一个项目到eclipse,出现感叹号,而且报1. Archive for required library: ‘WebContent/WEB-INF/lib/xxxxx.jar cannot ...

  4. junit参数化测试的使用方法

    JUnit参数化测试的五个步骤:(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized.(2)为测试类声明几个变量,分别用于存放期望值和测试 ...

  5. css中border-width 属性

    border-width属性可能的值 值 描述 thin 定义细的边框. medium 默认.定义中等的边框. thick 定义粗的边框. length 允许您自定义边框的宽度. inherit 规定 ...

  6. easui tree载入时自动展开无子节点的节点

    利用loadFilter对后台返回的原始数据进行过滤处理,将数据中的state字段修改相应的值,若无子节点,则改成open,若有子节点,则改成closed. 由于一个node属性只有下面几项内容,因此 ...

  7. Java怎样高速构造JSON字符串

    目标:依据key/value高速构造一个JSON字符串作为參数提交到web REST API服务上. 分别測试里阿里巴巴的FastJson和Google Gson,终于我採用了Google Gson来 ...

  8. AJAX同步与异步

    今天来大概说说AJAX中的同步与异步.其实,就我的理解,同步与异步的区别就是程序执行过程中是否有等待. 同步:意思就是js代码加载到当前的 AJAX时候,会等待AJAX代码执行完毕后再开始加载其他代码 ...

  9. C++,常成员函数

    #include <iostream> using namespace std; class Test { public: int x; int y; void const_m1() co ...

  10. [Swust OJ 610]--吉祥数

    题目链接:http://acm.swust.edu.cn/problem/610/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...