css3的那些高级选择器二
在上个星期我介绍了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的那些高级选择器二的更多相关文章
- css3的那些高级选择器一
css大家都不陌生了,从1996年12月css1正式推出,经历了1998年5月css2,再到2004年2月css2.1,最后一直到2010年推出的css3.css的推出给web带来巨大 的改变,使我们 ...
- CSS3学习系列之选择器(二)
first-child选择器和last-child选择器 first-child指定第一个元素.last-child指定最后一个子元素. 例如: <!DOCTYPE html> <h ...
- CSS选择器详解(二)通用选择器和高级选择器
目录 通用选择器 高级选择器 子选择器 相邻兄弟选择器 属性选择器 通用选择器 通用选择器可以选择页面上的所有元素,并对它们应用样式,用 * 来表示. 语法: * { property1: value ...
- python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)
一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...
- python全栈开发day38-css三种引入方式、基础选择器、高级选择器、补充选择器
一.昨日内容回顾 div:分割整个网站,很多块 (1)排版标签 (2)块级标签 独占一行 可以设置高和宽,如果不设置宽高,默认是父盒子的宽 span: (1) 小区域 (2)文本标签 (3)在一行内显 ...
- day40 css高级选择器
一.高级选择器 高级选择器分为:后代选择器.子代选择器.并集选择器.交集选择器 后代选择器 使用空格表示后代选择器.顾名思义,父元素的后代(包括儿子,孙子,重孙子) .container p{ col ...
- css3新增加的选择器
css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...
- css高级选择器&盒模型
css高级选择器&盒模型 1.组合选择器 群组选择器 /* 每个选择器为可以为三种基础选择器的任意一个,用逗号隔开,控制多个*/ div,.div,#div{ color:red } 后代(子 ...
- Python-ccs高级选择器 盒模型
css高级选择器与盒模型 脱离文档流 ,其中就是产生了BFC 1.组合选择器 - 群组选择器 /* 每个选择器位可以位三种基础选择器的任意一个, 用逗号隔开, 控制多个 */ div, #div, . ...
随机推荐
- Vue基础知识之指令和生命周期(一)
优点:轻量易学,灵活. 核心:通过尽可能简单的API来实现响应的数据绑定和组合的视图组件. 1.数据绑定:数据改变,驱动视图的自动更新. 2.视图组件化:把整个网页拆分成一个个区块,每个区块都可以看成 ...
- Python - 第一个 Django 项目
Django 的安装: pip3 install django==1.11.11 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ d ...
- Tkinter Anchors(锚)
Python GUI - Tkinter Anchors: 锚是用来定义文本的相对位置参考点 锚是用来定义文本的相对位置参考点. 这里是锚属性可以使用的常数列表. NW N NE W CENTER ...
- 怎么分辨linux系统是虚拟机还是物理机
用lspci -b|grep "VMware"抓取系列信息,即表明此系统的宿主机是基于VMware虚拟出来的,别的可以照葫芦画瓢来!
- SQLite的基本用法
SQLite是Android自带的轻量级数据库,接口封装的很好,不会SQL的也能很好的使用. 接下来讲一下怎么创建数据库.通过adb查看数据表和数据.增删查改. 一.创建数据库 Android封装了S ...
- Newtonsoft.Json(Json.Net)学习
转自原文 Newtonsoft.Json(Json.Net)学习笔记 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库.软件下载地址: http://www.newto ...
- Struts2 配置Action详解
Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实 ...
- idea使用jrebel热部署插件
首先通过idea下载JReble插件 访问http://idea.lanyus.com/网站 跟着弹出框的步骤走就可以实现了: 在idea中使用tomcat部署项目 不要使用war:使用下面的文件
- Linux服务管理总结
简介与分类 系统的运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界 ...
- java 蓝桥杯算法提高 _1区间k大数查询
import java.util.Scanner; public class _1区间K大数查询 { public static void main(String[] args) { Scanner ...