偽元素選擇器


偽元素選擇器

一、總結

一句話總結:

一、::first-letter 第一個字
二、::first-line 第一行(以瀏覽器為准的第一行)
三、::selection 被選中的字行(鼠標選中的字段)只能向 ::selection 選擇器應用少量 CSS 屬性:color、background、cursor 以及 outline。
四、::before 和 ::after

 

1、::before 和 ::after 使用注意?

1.必須帶一個屬性content
2.在內部內容的前面或者后面插入內容
3.當插入的內容定義寬高和其他屬性時,其實就是一個盒子(必須通過display轉換,因為默認是一個行內元素)。
4.input,img,iframe等元素都不能包含其他元素,所以不能通過偽元素插入內容

 

 

2、為什么input不支持偽元素(::after,::before)?

input,img,iframe等元素都不能包含其他元素,所以不能通過偽元素插入內容。

 

 

3、利用偽元素直接插入字體圖標?

@font-face引入字體,然后在比如::after的content里面直接寫字體的編碼,比如:content: "\e986";
 1 <body>
 2   <input type="text"><span></span>
 3 </body>
 4 
 5 @font-face {
 6     font-family: 'icomoon';
 7     src: url('fonts/icomoon.eot?vhnprv');
 8     src: url('fonts/icomoon.eot?vhnprv#iefix') format('embedded-       opentype'),
 9     url('fonts/icomoon.ttf?vhnprv') format('truetype'),
10     url('fonts/icomoon.woff?vhnprv') format('woff'),
11     url('fonts/icomoon.svg?vhnprv#icomoon') format('svg');
12     font-weight: normal;
13     font-style: normal;
14 }
15 span {
16     position: relative;
17 }
18 span::after {
19     content: "\e986";
20     font-family: "icomoon";
21     position: absolute;
22     left: -20px;
23     top: 0;
24 }

 

 

 

二、CSS3新增選擇器:偽元素選擇器

轉自或參考:CSS3新增選擇器:偽元素選擇器
https://www.cnblogs.com/EricZLin/p/8857405.html">CSS3新增選擇器:偽元素選擇器

 

一、  ::first-letter 第一個字

二、 ::first-line 第一行(以瀏覽器為准的第一行)

三、 ::selection 被選中的字行(鼠標選中的字段)只能向 ::selection 選擇器應用少量 CSS 屬性:color、background、cursor 以及 outline。

<body>
    <p>微軟的 Internet Explorer(IE) 是當今最流行的因特網瀏覽器。它發布於 1995 年,並於 1998 年在使用人數上超過了 Netscape。Firefox 是由 Mozilla 發展而來的新式瀏覽器。
它發布於 2004 年,並已成長為因特網上第二大最流行的瀏覽器。Opera 是挪威人發明的因特網瀏覽器。它以下列特性而聞名於世:快速小巧、符合工業標准、適用於多種操作系統。對於一系列小型
設備諸如手機和掌上電腦來說,Opera 無疑是首選的瀏覽器。Chrome 是免費的開源 web 瀏覽器,它由 Google 開發。該瀏覽器於 2008 年 9 月發布。Chrome 4 是最新的谷歌瀏覽器Safari 是
由蘋果公司開發的瀏覽器,適用於 Mac 和 Windows 系統。該瀏覽器於 2003 年 6 月發布。</p> </body>
<style>
        p::first-letter{
            /* 第一個字母 */
            font-size: 50px;
        }
        p::first-line{
            /* 第一行(以瀏覽器為准的第一行) */
            background: rgb(199, 24, 24);
        }
         /* 被選中的字行(鼠標選中的字段) */
        p::selection{
           background: #48ff00;
        }
        ::-moz-selection{
            /* 兼容 */
            background: #48ff00;
        }
</style>

 

四、 ::before ::after

1. 必須帶一個屬性content

2.在內部內容的前面或者后面插入內容

<div>必須帶一個屬性content</div>
 div::before {
            content: "我是插入的內容";
            background: #572eb8;
        }

3.當插入的內容定義寬高和其他屬性時,其實就是一個盒子(必須通過display轉換,因為默認是一個行內元素)。

<body>
    <div>盒子1</div>
</body>
        div{
            width: 500px;
            height: 500px;
            border: 1px solid #000;
        }
        div::before{
            content: "插入的盒子";
            display: block;
            width: 200px;
            height: 200px;
            background: rgb(211, 29, 29);
        }

4.上述可以解釋清除浮動的后面兩種方法,單偽元素法和雙偽元素法(清除浮動的四種方法:額外標簽法,overflow:hidden,單偽元素法和雙偽元素法

五、在字體圖標里的運用,直接寫入css里,不需要在HTML插入(之前的方法:

一、  ::first-letter 第一個字

二、 ::first-line 第一行(以瀏覽器為准的第一行)

三、 ::selection 被選中的字行(鼠標選中的字段)只能向 ::selection 選擇器應用少量 CSS 屬性:color、background、cursor 以及 outline。

<body>
    <p>微軟的 Internet Explorer(IE) 是當今最流行的因特網瀏覽器。它發布於 1995 年,並於 1998 年在使用人數上超過了 Netscape。Firefox 是由 Mozilla 發展而來的新式瀏覽器。
它發布於 2004 年,並已成長為因特網上第二大最流行的瀏覽器。Opera 是挪威人發明的因特網瀏覽器。它以下列特性而聞名於世:快速小巧、符合工業標准、適用於多種操作系統。對於一系列小型
設備諸如手機和掌上電腦來說,Opera 無疑是首選的瀏覽器。Chrome 是免費的開源 web 瀏覽器,它由 Google 開發。該瀏覽器於 2008 年 9 月發布。Chrome 4 是最新的谷歌瀏覽器Safari 是
由蘋果公司開發的瀏覽器,適用於 Mac 和 Windows 系統。該瀏覽器於 2003 年 6 月發布。</p> </body>
<style>
        p::first-letter{
            /* 第一個字母 */
            font-size: 50px;
        }
        p::first-line{
            /* 第一行(以瀏覽器為准的第一行) */
            background: rgb(199, 24, 24);
        }
         /* 被選中的字行(鼠標選中的字段) */
        p::selection{
           background: #48ff00;
        }
        ::-moz-selection{
            /* 兼容 */
            background: #48ff00;
        }
</style>

 

四、 ::before ::after

1. 必須帶一個屬性content

2.在內部內容的前面或者后面插入內容

<div>必須帶一個屬性content</div>
 div::before {
            content: "我是插入的內容";
            background: #572eb8;
        }

3.當插入的內容定義寬高和其他屬性時,其實就是一個盒子(必須通過display轉換,因為默認是一個行內元素)。

<body>
    <div>盒子1</div>
</body>
        div{
            width: 500px;
            height: 500px;
            border: 1px solid #000;
        }
        div::before{
            content: "插入的盒子";
            display: block;
            width: 200px;
            height: 200px;
            background: rgb(211, 29, 29);
        }

4.上述可以解釋清除浮動的后面兩種方法,單偽元素法和雙偽元素法(清除浮動的四種方法:額外標簽法,overflow:hidden,單偽元素法和雙偽元素法

五、在字體圖標里的運用,直接寫入css里,不需要在HTML插入(之前的方法:字體圖標

<body>
  <input type="text"><span></span>
</body>
       @font-face {
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?vhnprv');
            src: url('fonts/icomoon.eot?vhnprv#iefix') format('embedded-       opentype'),
            url('fonts/icomoon.ttf?vhnprv') format('truetype'),
            url('fonts/icomoon.woff?vhnprv') format('woff'),
            url('fonts/icomoon.svg?vhnprv#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
        }
        span {
            position: relative;
        }
        span::after {
            content: "\e986";
            font-family: "icomoon";
            position: absolute;
            left: -20px;
            top: 0;
        }

當然還有其他做法,比如直接在span里放入字體圖標,然后定位,或者直接用背景圖。

 


免責聲明!

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



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