css3之UI元素狀態偽類選擇器
所謂UI選擇器:就是指定的樣式只有當元素處於某種狀態下時,才起作用,在預設狀態下不起作用!
瀏覽器相容性:
E:hover 支援firefox、safari、Opera、ie8、chrome ------------
E:active 支援firefox、safari、Opera、chrome 不支援ie8
E:focus 支援firefox、safari、Opera、ie8、chrome -------------
E:enabled 支援firefox、safari、Opera、chrome 不支援ie8
E:disabled 支援firefox、safari、Opera、chrome 不支援ie8
E:read-only 支援firefox、Opera 不支援ie8、safari、chrome
E:read-write 支援firefox、Opera 不支援ie8、safari、chrome
E:checked 支援firefox、safari、Opera、chrome 不支援ie8
E::selection 支援firefox、safari、Opera、chrome 不支援ie8
E:default 只支援firefox ------------
E:indeterminate 只支援chrome ------------
E:invalid 支援firefox、safari、Opera、chrome 不支援ie8
E:valid 支援firefox、safari、Opera、chrome 不支援ie8
E:required 支援firefox、safari、Opera、chrome 不支援ie8
E:optional 支援firefox、safari、Opera、chrome 不支援ie8
E:in-range 支援firefox、safari、Opera、chrome 不支援ie8
E:out-of-rang 支援firefox、safari、Opera、chrome 不支援ie8
下面就其使用做詳細的說明;
1、選擇器E:hover、E:active和E:focus
1)、E:hover選擇器被用來指定當滑鼠指標移動到元素上時元素所使用的樣式
使用方法:
<元素>:hover{
CSS樣式
}
我們可以在“<元素>”中新增元素的type屬性。
例:
input[type="text"]:hover{
CSS樣式
}
2)、E:active選擇器被用來指定元素被啟用時使用的樣式
3)、E:focus選擇器被用來指定元素獲得游標聚焦點使用的樣式,主要是在文字框控制元件獲得聚焦點並進行文字輸入時使用。
例如:
2、E:enabled偽類選擇器與E:disabled偽類選擇器<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>選擇器E:hover、E:active和E:focus</title> <style> input[type="text"]:hover{ background: green; } input[type="text"]:focus{ background: #ff6600; color: #fff; } input[type="text"]:active{ background: blue; } input[type="password"]:hover{ background: red; } </style> </head> <body> <h1>選擇器E:hover、E:active和E:focus</h1> <form> 姓名:<input type="text" placeholder="請輸入姓名"> <br/> <br/> 密碼:<input type="password" placeholder="請輸入密碼"> </form> </body> </html>
1)、E:enabled選擇器被用來指定當元素處於可用狀態時的樣式。
2)、E:disabled選擇器被用來指定當元素處於不可用狀態時的樣式。
例如:
3、E:read-only偽類選擇器與E:read-write偽類選擇器<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>E:enabled偽類選擇器與E:disabled偽類選擇器</title> <style> input[type="text"]:enabled{ background: green; color: #ffffff; } input[type="text"]:disabled{ background: #727272; } </style> </head> <body> <h1>E:enabled偽類選擇器與E:disabled偽類選擇器</h1> <form> 姓名:<input type="text" placeholder="請輸入姓名" disabled> <br/> <br/> 學校:<input type="text" placeholder="請輸入學校"> </form> </body> </html>
1)、E:read-only選擇器被用來指定當元素處於只讀狀態時的樣式。
2)、E:read-write選擇器被用來指定當元素處於非只讀狀態時的樣式。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>read-only偽類選擇器與E:read-write偽類選擇器</title>
<style>
input[type="text"]:read-only{
background: #000;
color: green;
}
input[type="text"]:read-write{
color: #ff6600;
}
</style>
</head>
<body>
<h1>read-only偽類選擇器與E:read-write偽類選擇器</h1>
<form>
姓名:<input type="text" placeholder="請輸入姓名" value="winson" readonly>
<br/>
<br/>
學校:<input type="text" placeholder="請輸入學校">
</form>
</body>
</html>
4、偽類選擇器E:checked、E:default和indeterminate1)、E:cehcked偽類選擇器用來指定當表單中的radio單選框或者是checkbox複選框處於選取狀態時的樣式。
2)、E:default選擇器用來指定當頁面開啟時預設處於選取狀態的單選框或複選框的控制元件的樣式。
3)、E:indeterminate選擇器用來指定當頁面開啟時,一組單選框中沒有任何一個單選框被設定為選中狀態時,整組單選框的樣式。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>checked偽類選擇器</title>
<style>
input[type="checkbox"]:checked{
outline: 2px solid green;
}
</style>
</head>
<body>
<h1>checked偽類選擇器</h1>
<form>
房屋狀態:
<input type="checkbox">水
<input type="checkbox">電
<input type="checkbox">天然氣
<input type="checkbox">寬頻
</form>
</body>
</html>
預設的選擇項<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>default偽類選擇器</title>
<style>
input[type="checkbox"]:default{
outline: 2px solid green;
}
</style>
</head>
<body>
<h1>default偽類選擇器</h1>
<form>
房屋狀態:
<input type="checkbox" checked>水
<input type="checkbox">電
<input type="checkbox">天然氣
<input type="checkbox">寬頻
</form>
</body>
</html>
<h1 style="color: rgb(0, 0, 0); font-family: Simsun; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">indeterminate偽類選擇器</h1><!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>indeterminate偽類選擇器</title>
<style>
input[type="radio"]:indeterminate{
outline: 2px solid green;
}
</style>
</head>
<body>
<h1>indeterminate偽類選擇器</h1>
<form>
性別:
<input type="radio">男
<input type="radio">女
</form>
</body>
</html>
5、偽類選擇器E::selection1)、E:selection偽類選擇器用來指定當元素處於選中狀態時的樣式。
例如
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>偽類選擇器E::selection</title>
<style>
::selection{
background: green;
color: #ffffff;
}
input[type="text"]::selection{
background: #ff6600;
color: #ffffff;
}
</style>
</head>
<body>
<h1>偽類選擇器E::selection</h1>
<p>今天,開發搜尋框,出現了bug,現在沒有找到原因!今天,開發搜尋框,出現了bug,現在沒有找到原因!今天,開發搜尋框,出現了bug,現在沒有找到原因!今天,開發搜尋框,出現了bug,現在沒有找到原因!今天,開發搜尋框,出現了bug,現在沒有找到原因!</p>
<input type="text" placeholder="文字">
</body>
</html>
6、E:invalid偽類選擇器與E:valid偽類選擇器
1)、E:invalid偽類選擇器用來指定,當元素內容不能通過HTML5通過使用的元素的諸如requirde等屬性所指定的檢查或元素內容不符合元素規定的格式時的樣式。
2)、E:valid偽類選擇器用來指定,當元素內容能通過HTML5通過使用的元素的諸如requirde等屬性所指定的檢查或元素內容符合元素規定的格式時的樣式。
例如
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>E:invalid偽類選擇器與E:valid偽類選擇器</title>
<style>
input[type="email"]:invalid{
color: red;
}
input[type="email"]:valid{
color: green;
}
</style>
</head>
<body>
<h1>E:invalid偽類選擇器與E:valid偽類選擇器</h1>
<form>
<input type="email" placeholder="請輸入郵箱">
</form>
</body>
</html>
7、E:required偽類選擇器與E:optional偽類選擇器
1)、E:required偽類選擇器用來指定允許使用required屬性,而且已經指定了required屬性的input元素、select元素以及textarea元素的樣式。
2)、E:optional偽類選擇器用來指定允許使用required屬性,而且未指定了required屬性的input元素、select元素以及textarea元素的樣式。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>E:required偽類選擇器與E:optional偽類選擇器</title>
<style>
input[type="text"]:required{
background: red;
color: #ffffff;
}
input[type="text"]:optional{
background: green;
color: #ffffff;
}
</style>
</head>
<body>
<h1>E:required偽類選擇器與E:optional偽類選擇器</h1>
<form>
姓名:<input type="text" placeholder="請輸入姓名" required>
<br/>
<br/>
學校:<input type="text" placeholder="請輸入學校">
</form>
</body>
</html>
8、E:in-range偽類選擇器與E:out-of-range偽類選擇器
1)、E:in-range偽類選擇器用來指定當元素的有效值被限定在一段範圍之內,且實際的輸入值在該範圍之內時的樣式。
2)、E:out-of-range偽類選擇器用來指定當元素的有效值被限定在一段範圍之內,但實際輸入值在超過時使用的樣式。
例如
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>E:in-range偽類選擇器與E:out-of-range偽類選擇器</title>
<style>
input[type="number"]:in-range{
color: #ffffff;
background: green;
}
input[type="number"]:out-of-range{
background: red;
color: #ffffff;
}
</style>
</head>
<body>
<h1>E:in-range偽類選擇器與E:out-of-range偽類選擇器</h1>
<input type="number" min="0" max="100" value="0">
</body>
</html>