在上个星期我介绍了css3的属性选择器,伪类选择器和结构伪类选择器,今天楼主继续把其它的css3选择器说完。

  在css3中,共有11中UI状态伪类选择器,分别是E:hover,E:active,E:focus,E:enabled,E:disabled,E:read-only,E:read-write,E:checked,E:default,E:indeterminate及E::selection我们来看下这11种选择器被浏览器的支持的情况

一,选择器E:hover,E:active,E:focus

E:hover选择器用来指定当鼠标指针移动到元素上面时元素所使用的样式,用法如下:

<元素>:hover {
指定样式
}

对于E:hover大家都会想到a元素;不错E:hover在ie6下只支持a元素,到ie7后才支持其他的标签元素

所有的UI元素状态伪类选择器的使用方法均与此类似

E:active选择器用来指定元素被激活(鼠标在元素上面按下还未松开)时元素所使用的样式

E:focus选择器用来指定当元素获得焦点时所使用的样式

综合例子演示:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title> css属性选择器二 </title>
<style type="text/css">
8 {margin:0; padding:0;}
table {width:500px; margin:0 auto; line-height:28px; border:1px solid #DDD; border-collapse:collapse; border-spacing:0;}
table th {text-align:center; border:1px solid #DDD;}
table td {text-align:left; padding-left:5px; border:1px solid #DDD;}
input {width:280px; height:20px; color:#999;} input[name="uName"]:hover {
background:yellow;
} input[name="uName"]:focus {
background:#FFF;
color:blue;
} input[name="uName"]:active {
background:#FFF;
color:red;
} </style>
<body>
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="uName" value="琦恒" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" /></td>
</tr>
</table>
</body>
</html>

当鼠标划过姓名这个input元素时背景变成黄色,当获得焦点的时候背景变成白色,字体颜色变成蓝色,当鼠标按下还没松开时候字体颜色变成红色。

二、选择器E:enabled,E:disabled

E:enabled选择器匹配每个已启用的元素(大多用在表单元素上),所有主流浏览器均支持 :enabled 选择器,除了 IE8 及更早的版本

E:disabled选择器匹配每个被禁用的元素(大多用在表单元素上),所有主流浏览器均支持 :disabled 选择器,除了 IE8 及更早的版本

实例演示:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title> css属性选择器二 </title>
<style type="text/css">
8 {margin:0; padding:0;}
table {width:500px; margin:0 auto; line-height:28px; border:1px solid #DDD; border-collapse:collapse; border-spacing:0;}
table th {text-align:center; border:1px solid #DDD;}
table td {text-align:left; padding-left:5px; border:1px solid #DDD;}
input {width:280px; height:20px; color:#333;} input[name="txt"]:disabled {
background:#ddd;
color:#999;
} input[name="txt"]:enabled {
background:yellow;
color:blue;
} </style>
<script type="text/javascript">
function r_change() {
var oRadio = document.getElementById('radio1');
var oTxt = document.getElementById('txt');
if ( oRadio.checked ) {
oTxt.disabled = '';
}else {
oTxt.disabled = 'disabled';
}
}
</script>
<body>
<table>
<tr>
<td>
<label for=""><input id="radio1" type="radio" name="radio" onchange="r_change();" />可用</label>
<label for=""><input id="radio2" type="radio" name="radio" onchange="r_change();" />不可用</label>
</td>
</tr>
<tr>
<td><input type="text" id="txt" name="txt" value="测试" /></td>
</tr>
</table>
</body>
</html>

三、选择器E:read-only,E:read-write

E:read-only匹配当元素处于只读状态时的样式

E:read-write匹配元素处于非只读状态时的样式

实例演示:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title> css属性选择器二 </title>
<style type="text/css">
8 {margin:0; padding:0;}
table {width:500px; margin:0 auto; line-height:28px; border:1px solid #DDD; border-collapse:collapse; border-spacing:0;}
table th {text-align:center; border:1px solid #DDD;}
table td {text-align:left; padding-left:5px; border:1px solid #DDD;}
input {width:280px; height:20px; color:#333;} input[name="uName"]:read-only {
background:#ddd;
color:#999;
} input[name="uName"]:-moz-read-only {
background:#ddd;
color:#999;
} input[name="pwd"]:read-write {
background:yellow;
color:blue;
} input[name="pwd"]:-moz-read-write {
background:yellow;
color:blue;
} </style>
<body>
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="uName" value="琦恒" readonly="readonly" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" value="123456" /></td>
</tr>
</table>
</body>
</html>

ps:火狐下需要使用“-moz-read-only”或“-moz-read-write”

四、选择器E:checked,E:default,E:indeterminate

E:checked匹配每个已被选中的 input 元素(只用于单选按钮和复选框).

E:default匹配当页面打开时默认处于选取状态的单选或复选框的样式,目前只有Firefox支持

E:indeterminate用来指定当页面打开时,如果一组单选框中任何一个单选框都没有被设定为选取状态时整组单选框的样式,如果用户选取了其中一个单选框,则该样式被取消指定。目前是有Opera支持

综合实例:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title> css属性选择器二 </title>
<style type="text/css">
8 {margin:0; padding:0;}
table {width:500px; margin:0 auto; line-height:28px; border:1px solid #DDD; border-collapse:collapse; border-spacing:0;}
table th {text-align:center; border:1px solid #DDD;}
table td {text-align:left; padding-left:5px; border:1px solid #DDD;}
input[name="uName"] {width:280px; height:20px; color:#333;} input[name="uName"]:read-only {
background:#ddd;
color:#999;
} input[name="sex"]:checked {
outline:2px solid yellow;
} input[name="like"]:default {
outline:2px solid red;
} input[name="like"]:indeterminate {
outline:2px solid blue;
} </style>
<body>
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="uName" value="琦恒" readonly="readonly" /></td>
</tr>
<tr>
<td>性别:</td>
<td>
<label for=""><input type="radio" name="sex" />读书</label>
<label for=""><input type="radio" name="sex" />音乐</label>
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<label for=""><input type="checkbox" name="like" checked="checked" />电影</label>
<label for=""><input type="checkbox" name="like" />读书</label>
<label for=""><input type="checkbox" name="like" />音乐</label>
</td>
</tr>
<tr>
<td>地区:</td>
<td>
<label for=""><input type="radio" name="place" />江西</label>
<label for=""><input type="radio" name="place" />深圳</label>
<label for=""><input type="radio" name="place" />上海</label>
</td>
</tr>
</table>
</body>
</html>

五、选择器E::selection

E::selection选择器匹配被用户选取的选取是部分,IE9+、Opera、Google Chrome 以及 Safari 中支持 ::selection 选择器.

ps:Firefox 支持替代的 ::-moz-selection

实例:

<!DOCTYPE html>
<html>
<head>
<style>
::selection
{
color:#ff0000;
}
::-moz-selection
{
color:#ff0000;
}
</style>
</head>
<body> <h1>请试着选取页面上的文本</h1> <p>这是一个段落。</p> <div>这是 div 元素中的文本。</div> </body>
</html>

六、通用兄弟元素选择器

兄弟元素选择器是指定位于同一个父元素之中的的某个元素之后的所有其他某个种类的兄弟元素所使用的样式,用法如下:

<子元素> ~ <子元素之后的同级兄弟元素>

实例演示:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title> css属性选择器二 </title>
<style type="text/css">
8 {margin:0; padding:0;}
div ~ p {background:red;} </style>
<body>
<p>p元素是div的兄弟元素</p>
<hr />
<div>
<p>p元素是div的子元素</p>
<p>p元素是div的子元素</p>
</div>
<hr />
<p>p元素是div的兄弟元素</p>
<hr />
<p>p元素是div的兄弟元素</p><div>
<p>p元素是div的子元素</p>
<p>p元素是div的子元素</p>
<p>p元素是div的子元素</p>
</div>
<hr />
<p>p元素是div的兄弟元素</p>
</body>
</html>

好啦,css3的高级选择器到这里就华丽丽的讲完啦,要是这些选择器能够被所有浏览器支持的话,对我们前端的童鞋是一种福音啊,使用它们可以大幅度提高前端编码的效率。

css3的那些高级选择器二的更多相关文章

  1. css3的那些高级选择器一

    css大家都不陌生了,从1996年12月css1正式推出,经历了1998年5月css2,再到2004年2月css2.1,最后一直到2010年推出的css3.css的推出给web带来巨大 的改变,使我们 ...

  2. CSS3学习系列之选择器(二)

    first-child选择器和last-child选择器 first-child指定第一个元素.last-child指定最后一个子元素. 例如: <!DOCTYPE html> <h ...

  3. CSS选择器详解(二)通用选择器和高级选择器

    目录 通用选择器 高级选择器 子选择器 相邻兄弟选择器 属性选择器 通用选择器 通用选择器可以选择页面上的所有元素,并对它们应用样式,用 * 来表示. 语法: * { property1: value ...

  4. python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)

    一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...

  5. python全栈开发day38-css三种引入方式、基础选择器、高级选择器、补充选择器

    一.昨日内容回顾 div:分割整个网站,很多块 (1)排版标签 (2)块级标签 独占一行 可以设置高和宽,如果不设置宽高,默认是父盒子的宽 span: (1) 小区域 (2)文本标签 (3)在一行内显 ...

  6. day40 css高级选择器

    一.高级选择器 高级选择器分为:后代选择器.子代选择器.并集选择器.交集选择器 后代选择器 使用空格表示后代选择器.顾名思义,父元素的后代(包括儿子,孙子,重孙子) .container p{ col ...

  7. css3新增加的选择器

    css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...

  8. css高级选择器&盒模型

    css高级选择器&盒模型 1.组合选择器 群组选择器 /* 每个选择器为可以为三种基础选择器的任意一个,用逗号隔开,控制多个*/ div,.div,#div{ color:red } 后代(子 ...

  9. Python-ccs高级选择器 盒模型

    css高级选择器与盒模型 脱离文档流 ,其中就是产生了BFC 1.组合选择器 - 群组选择器 /* 每个选择器位可以位三种基础选择器的任意一个, 用逗号隔开, 控制多个 */ div, #div, . ...

随机推荐

  1. php502故障处理

    一次打开网站,发现502,第一反应肯定是php-fpm没启动,尝试启动还是502. 1.首先查询Nginx日志发现如下连接PHP失败: 2016/07/29 15:56:04 [error] 2376 ...

  2. ffmpeg源码分析三:transcode_init函数 (转3)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25061945 transcode_init()函数是在转换前做准备工作的.下面看看其源代码 ...

  3. Unity 输入与控制

    1. 鼠标输入 有关的方法和变量如下: 在 Unity 中,鼠标位置用屏幕的像素坐标表示,屏幕左下角为(0,0),右上角为(Screen.width,Screen.height). 2. 键盘操作 有 ...

  4. jquery 报错 Uncaught TypeError: Illegal invocation

    遇到这个错误 请检查你的ajax提交方法的参数 1 参数是否都有定义 2 参数个数是否一致 3参数是否都有值(******)

  5. Ajax 简单实例,其实就是js里面内容有些不同而已(转载)

    这些时间,瞎子也看得见,AJAX正大踏步的朝我们走来.不管我们是拥护也好,反对也罢,还是视而不见,AJAX像一阵潮流,席转了我们所有的人. 关于AJAX的定义也好,大话也好,早有人在网上发表了汗牛充栋 ...

  6. Linux运维基础入门(三):网络基础知识梳理03

    一,ARP协议 使用ARP协议可以查出擅自更改IP地址主机的MAC地址.在学习ARP协议前需要了解广播和广播域的相关概念. 1.1 广播与广播域 在超市找人时,如果不知道对方的位置就需要到服务台通过广 ...

  7. 10 华电内部文档搜索系统 search04

    上一节我们着重讲解了权限过滤器的使用.这一节讲解一下补充一下Struts 2下面对应的Checkbox的使用.对索引下面的数据进行维护操作,一次可以删除多个.在Struts 2下面使用对应的Check ...

  8. Professional C# 6 and .NET Core 1.0 - Chapter 42 ASP.NET Web API

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处: -------------------------------------------------------- ...

  9. 机器学习模型数据结构:logistic regression, neural network, convolutional neural network

    可以用两种方式来看神经网络,一种就是层的集合,也就是层组成的数组,另一种是神经元的集合,也就是神经元组成的Graph. 基于神经元的实现方式中,需要定义两个类 Neuron, Weight Neuro ...

  10. jmeter压力测试的简单实例+badboy脚本录制

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...