zoukankan      html  css  js  c++  java
  • 伪元素选择器

    伪元素选择器

    一、总结

    一句话总结:

    一、::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里放入字体图标,然后定位,或者直接用背景图。

     
  • 相关阅读:
    Python记录12:迭代器+生成器+生成式
    Python记录11:叠加多个装饰器+有参装饰器
    Python记录10:模块
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
    Day7
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12186937.html
Copyright © 2011-2022 走看看