input 對偽元素(:before :after)的支持情況


最近做一個自定義視覺效果的Switch組件,用到了 input:radio 和 label,並在label里用偽元素 :before 模擬狀態的切換效果。

但是同事評審的時候說可以不用label,直接用input的微元素就可以實現。之前一直以為input這樣的自閉合元素沒有偽元素,做了個測試看一下到底有沒有。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>input:before 測試</title>
    <style>
        input:before,
        input:after {
            content: '';
            display: block;
            width: 10px;
            height: 10px;
            outline: 1px solid red;
        }
        input:after {
            width: 15px;
            height: 5px;
            outline-color: blue;
        }
    </style>
</head>
<body>
    <div>button <input type="button"></div>
    <div>color <input type="color"></div>
    <div>date <input type="date"></div>
    <div>datetime-local <input type="datetime-local"></div>
    <div>email <input type="email"></div>
    <div>file <input type="file"></div>
    <div>hidden <input type="hidden"></div>
    <div>image <input type="image"></div>
    <div>month <input type="month"></div>
    <div>number <input type="number"></div>
    <div>passwork <input type="password"></div>
    <div>range <input type="range"></div>
    <div>reset <input type="reset"></div>
    <div>search <input type="search"></div>
    <div>submit <input type="submit"></div>
    <div>text <input type="text"></div>
    <div>tel <input type="tel"></div>
    <div>time <input type="time"></div>
    <div>number <input type="number"></div>
    <div>url <input type="url"></div>
    <div>week <input type="week"></div>
    <div>datetime <input type="datetime"></div>
    <div>checkbox <input type="checkbox"></div>
    <div>radio <input type="radio"></div>
</body>
</html>
input 偽元素支持情況

在 mac Chrome 里打開查看的效果如圖:

可以看出來有的input支持有的不支持。讓人比較詫異的是 input:button 居然不支持偽元素。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM