最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何快乐的写CSS??

    正文概述 掘金(魔力清)   2021-01-06   509

    写CSS时的几个奔溃瞬间

    • 命名难的要命:命名这个应该是老生常谈的问题,在各个语言中都存在;为了不重复就会有各种奇葩的名字出现,这里推荐一个网站可能会有点用codelf
    • 选择器的全局污染:改了一个样式会影响很多地方
    • 样式难以复用:需要写很多重复的代码,不像js函数那样可以复用,我们不是代码的生成者,只是代码的搬运工,码农万岁,真是世代“务农”啊
    • 不好维护:尤其是项目经历了很多开发者之后,语义不详,强制!important,都有一种吊打上一个写代码的人冲动

    如何快乐的写CSS??

    如何心情愉悦的写CSS

    为了同事之间的关系融洽,为了键盘免遭毒手,为了心情愉快,CSS的工程化迫在眉睫

    预处理器

    先上栗子

    <div class="box-container">
      <div class="boxs">
        <div class="box-item">
          <span class="item"></span>
        </div>
      </div>
    </div>
    

    上面的结构你要怎么写css呢 1.俄罗斯套娃,这样可以解决全局污染问题,你只需要修改最上面的父级的名称就可以新一波的套娃了。但是这样写出来的代码容易被骂,代码冗余,可读性差

    .box-container {
      color: #000;
    }
    .box-container .boxs {
      color: orange;
    }
    .box-container .boxs .box-item {
      color: yellow;
    }
    .box .boxs .box-item .item {
      color: green;
    }
    

    2.下面代码很清晰,解决了冗余的问题,但是随着项目的变大,命名是个问题,于是有了很多奇怪的命名

    .box-container {
      color: red;
    }
    .boxs {
      color: orange;
    }
    .box-item {
      color: yellow;
    }
    .item {
      color: green;
    }
    

    那么预处理又是什么,对于老司机来说就不用说了,萌新可以看一下->传送门, 这里是一些最流行的CSS预处理器:Sass、LESS、tylus、PostCSS

    预处理器增强了 CSS 的语法。让标准 CSS 具备了以下的这些能力

    • 变量
    • 混合(Mixin)Extend
    • 嵌套规则
    • 运算
    • 函数
    • Namespaces & Accessors(命名空间和访问器)
    • scope

    以上流行的预处理器就不一一介绍,官方很详细的

    后处理器

    它处理的对象是标准的CSS,对其进行兼容性、优化等操作,不需要开发关心; 最终的代码是体积小,CSS3前缀等特点的css代码

    代表的插件

    • clean-css:压缩CSS
    • AutoPrefixer:自动添加 CSS3 属性各浏览器的前缀

    CSS Modules

    以上只是写代码的时候解决了代码重复使用问题,以及手动写嵌套等问题,没有真正解决全局污染的问题 说到将CSS模块化不得不提几个概念CSS in JS scope,大家可以去自行学习,这里面小编觉得CSS Modules简单又能解决问题

    /* Button.css */
    .primary {
        background-color: #1aad19;
        color: #fff;
        border: none;
        border-radius: 5px;
    }
    
    // Button.js
    import styles from './Button.css';
    
    console.log(styles); // -> {primary: "yTXmm0isaXExoYiZUvKxH"}
    const Button = document.createElement('div')
    Button.innerHTML = `<button class=${styles.primary}>Submit</button>`
    
    export default Button
    
    // index.js
    import Button from './components/Button'
    
    const app = document.getElementById('root')
    app.appendChild(Button)
    

    生成的HTML

    <div id="root">
        <div>
            <button class="yTXmm0isaXExoYiZUvKxH">Submit</button>
        </div>
    </div>
    

    当然需要webpack打包工具以及各种loader和插件的配合,就VUE来说,直接就可以开启 官方传送

    <template>
      <div id="app">
        <div :class="$style.abc">
          <div :class="[$style.c,{dd:true},'b']"></div>
          <div :class="[$style.b]"></div>
        </div>
      </div>
    </template>
    
    <script lang="ts">
    
    import { Component, Mixins } from 'vue-property-decorator';
    import MyMixin from '@/mixin';
    
    @Component
    export default class Index extends Mixins(MyMixin) {
    
    }
    </script>
    <style lang="less">
    .b {
      color: #999;
    }
    </style>
    // 重点、重点、重点、重点、重点
    <style module lang="less">
    .abc {
      color: #000;
      .b {
        color: #888;
      }
    }
    </style>
    

    起源地下载网 » 如何快乐的写CSS??

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元