• 大学解惑10 - CSS中的content怎么换行,以及使用before伪类的优点


    大学解惑09 - 单独用HTML javascript CSS 实现三版99乘法表,你就是班里最靓的仔https://blog.csdn.net/xingyu_qie/article/details/127631612

            上一篇文章用前端HTML CSS JS基础写了3版99乘法表,有同学说终于把99乘法表写透了,但是紧接着就有同学反馈说,CSS的content老师没有讲到过,我怎么写就换不了行呢。

            本文属于答题系列,将会从以下三点说明,CSS中的伪类::before

                    △ CSS ::before content的日常使用场景

                    △ content的内容怎么换行

                    △ 以及需要深入思考的 使用::before的优点,很多人可能都没有想到过这一点

    目录

    一、CSS中伪类::before的使用场景 

    1、使用场景

    2、::before的简单使用

    二、 ::before内的content文字如何换行

    三、采用::before的优点 

    1、减少了HTML元素的使用

    2、更利于浏览器缓存

    3、 有助于代码的可读性与可复用性


    一、CSS中伪类::before的使用场景 

            1、使用场景

                    例如一行文字前有个小icon图标,我们一般的做法是先布局一个小图片,然后再使用行内元素紧接着填充文字

                    

                    再或者一行文字,前几个字是固定的,而后面的文字又是动态的,这本来也是需要前面布局一个HTML元素,填充“我们可以做到”,后面再紧接着填充动态文字的

                     

                     再比如我们经常可以看见的某电商平台在促销的时候,某个文字左上角顶着一个小图标,这些场景你都应该想到::before的使用

                    

            2、::before的简单使用

                    例如左上角可以放促销图标,你可以这样写:

            

    1. <style>
    2. .hot-buy {
    3. margin: 50px;
    4. position: relative;
    5. }
    6. .hot-buy::before {
    7. position: absolute;
    8. left: -15px;
    9. top: -15px;
    10. width: 12px;
    11. height: 12px;
    12. content: url(aa.png);
    13. }
    14. style>
    15. <div class="hot-buy">热门大促销div>

             

            再例如刚才所说的,某一个元素前面想要填充固定文字,可以这样写:

    1. <style>
    2. .hot-buy::before {
    3. content: "我们可以做到 ";
    4. }
    5. </style>
    6. <div class="hot-buy"> 始终如一的服务</div>

            可想而知,真实的HTML代码中并没有“我们可以做到”这样的字眼,而是在CSS代码中。

    二、 ::before内的content文字如何换行

            这属于一个奇葩需求,本来content内的文字或者图标就希望保持简约,更利于实现,但需求总是各种各样,比如我们上一篇文章说到的CSS版99乘法表,就必须做到在content内换行。有同学跟我反馈说不换行,试了半天也不换行。

            由于content内存放的是字符串,采用 \a 或者 \A 做为换行符,注意这里大小写都可以。然后还要添加换行指令 white-space: pre; 代码就像这样:

    1. <style>
    2. .hot-buy::before {
    3. content: "我们\A可以\A做到";
    4. white-space: pre;
    5. }
    6. </style>
    7. <div class="hot-buy"> 始终如一的服务</div>

    三、采用::before的优点 

                如果初学者对于这些优点的解释感觉还有些不明所以,那么就先记下来,并且做为一个继续学习的问题,希望终有一天可以再回过头来看这个问题,可以找到比今天更多的答案。但如果你是即将要准备面试的,一定要记下来!!!

              1、减少了HTML元素的使用

            前端性能优化,非常重要的一个措施就是减少HTML标签的个数。这个很容易理解,比如A页面有100个元素,B页面有1000个元素,正常情况下,一定是A页面加载速度要快的。

            所以在本文中,通过::before伪类的方式,有效的减少了HTML元素的使用,属于一种最佳实践方案了

                2、更利于浏览器缓存

                对于HTML页面,浏览器一般情况下是不做缓存处理的,所以页面内的所有HTML元素每次刷新页面,都是需要重新渲染的,也叫重绘。

                但如果是引入的CSS文件,一旦加载过一次,浏览器就会将CSS文件缓存起来,那么下次用户再次访问页面,或者刷新页面的时候,CSS文件将不会从远程服务器去请求文件,直接从本地浏览器缓存读取了。

                 而文本中将节省掉的HTML元素功能,用CSS实现以后,正好符合了这一点优化实践。

                 3、 有助于代码的可读性与可复用性

                    试想一下,有效的将HTML主要的业务功能保留到页面中,而那些固定的内容被分离出来,那么当别人需要读代码的时候,将更能够分清主次,利于业务代码的交接;

                    而且在其他模块需要这段代码的时候,可以拷贝的内容更少,出现错误的概率大大减低。这无疑也是使用::before的一种小优势

  • 相关阅读:
    基于springboot的自助旅游服务平台
    你不知道的问题~响应式数据
    一款可插拔的AM335X工控模块板载wifi模块
    每日一博 - Code如何被发布到生产环境
    2022.8.11 模拟赛
    kafka latest 模式消费偏移丢数据
    Windows10快捷键合集
    bp神经网络反向传播推导,bp神经网络的传递函数
    小公司的应用服务部署历程
    java学习笔记(八)—— 继承
  • 原文地址:https://blog.csdn.net/xingyu_qie/article/details/127658211