css3 - UI元素状态伪类选择器

特征:指定的样式只有在某种状态下才起作用
共11种分别为:E:hover、E:active、E:focus、E:enable、E:disable、E:read-only、E:read-write、E:checked、E:default、E:indeterminate、E:selection

各UI元素状态伪类选择器受浏览器的支持情况

选择器FirefoxSafariOperaIE8Chrome
E:hover
E:activex
E:focus
E:enablex
E:disablex
E:read-onlyxxx
E:read-writexxx
E:checkedx
E:defaultxxxx
E:indeterminatex
E:selectionx

1. E:hover、E:active、E:focus

下图分别为:鼠标经过、鼠标点击(但未松开)、鼠标获得焦点(点击松开)

这里写图片描述这里写图片描述这里写图片描述

html:

<p><label for="txt">姓名:</label><input type="text" id="txt"></p>
<p><label for="address">地址:</label><input type="text" id="address"></p>

css:

<style>
    input[type="text"]:hover { /*鼠标经过(悬停)*/
      background-color: pink;
    }     
     input[type="text"]:focus { /*鼠标获得焦点(点击)并进行文字输入时*/
      background-color: #ccc;
    }
    input[type="text"]:active { /*鼠标按下(按下还未松开)*/
      background-color: yellow;
    }
</style>

解析:顺序不要写反,否则失效;:hover、:focus、:active

2.E:enable、E:disable

点击可用按钮时,文本框背景色为pink;点击不可用按钮时,文本框背景色为灰色;如图:

这里写图片描述 这里写图片描述

html:

<label for="radio1">可用</label><input type="radio" name="radio" id="radio1" onchange="radio_onchange()">
<label for="radio2">不可用</label><input type="radio" name="radio" id="radio2" onchange="radio_onchange()"><br>
<input type="text" id="txt">

css:

input[type="text"]:enabled {
    background-color: pink;
}
input[type="text"]:disabled {
    background-color: #ccc;
}

js:

<script>
    function radio_onchange(){
      var radio = document.getElementById('radio1');//获得可用单选按钮的id
      var txt = document.getElementById('txt');//获得文本框id
      if(radio.checked){
        txt.disabled = "";//选中时文本框为可用
      }else{
        txt.disabled = "disabled";//否则文本框为不可用
      }
    }
</script>

3.E:checked、E:default、E:indeterminate

E:checked是用来制指定当表单中的radio单选框、checkbox复选框处于选取状态时的样式。

复选框选中时的样式 如下:

这里写图片描述

html:

<label for="apple">苹果</label><input type="checkbox" id="apple">
<label for="banana">香蕉</label><input type="checkbox" id="banana">
<label for="chengzi">橙子</label><input type="checkbox" id="chengzi">
<label for="boluo">菠萝</label><input type="checkbox" id="boluo">

css:

<style>
   input[type="checkbox"]:checked {
     outline: 2px solid red;
   }
   input[type="checkbox"]:-moz-checked { /*兼容火狐浏览器*/
     outline: 2px solid red;
   }
</style>

E:default选择器Chrome不支持、只有火狐支持

E:indeterminate选择器只有Opera支持

4.E:selection伪类选择器用来指定当元素处于选中状态时的样式

这里写图片描述这里写图片描述这里写图片描述

html:

<body>
  <input type="text" value="这是一个测试表单">
  <p>这是一段测试文字</p>
  <table border="1" cellpading="0" cellspacing="0">
    <tr>
      <td>单元格A</td>
      <td>单元格B</td>
      <td>单元格C</td>
    </tr>
    <tr>
      <td>单元格D</td>
      <td>单元格E</td>
      <td>单元格F</td>
    </tr>
  </table>
</body>

css:

<style>
    input[type="text"]::selection { /*IE8不兼容*/
      color: red;
      background-color: #ccc;
    }
    p::selection {
      background-color: pink;
      color: red;
    }
    p::-moz-selection { /*兼容火狐浏览器*/
      background-color: pink;
      color: red;
    }
    td::selection {
      background-color: pink;
      color: red;
    }
</style>
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值