BEM:大厂都在用的命名规范

在微信生态中进行CSS开发,特别是针对小程序或公众号页面,是一项既充满挑战又富有创意的工作。随着微信成为人们日常生活中不可或缺的社交平台,其生态系统内的应用和页面设计质量直接影响到用户体验。因此,掌握高效、规范的CSS开发方法至关重要。本文将从基础概念出发,逐步深入,帮助初学者快速上手微信生态的CSS开发。

入门篇:了解基础工具与概念

1. WeUI - 微信官方UI库

WeUI是微信团队为微信Web服务量身定制的一套同质化UI库,它提供了丰富的基础样式和组件,如按钮、对话框、加载提示等,能够帮助开发者快速构建出符合微信风格的界面。使用WeUI,你可以减少从零开始设计的时间,直接应用经过微信官方优化的样式,保证了界面的一致性和用户体验。

2. HTML标签与组件思维

  • 标签 :HTML页面由各种标签构成,比如<p>表示段落,<div>用于定义一个区块。选择正确的标签有助于提升页面的语义化,使内容结构更加清晰,同时有利于SEO和无障碍访问。
  • 组件化思维:现代前端开发倡导组件化,即将页面拆分为可复用的组件,如按钮、卡片等。这种思想提高了代码的可维护性和开发效率。在微信生态中,理解并应用组件化开发模式,能让你的项目更加灵活高效。

进阶篇:遵循规范与技巧

3. BEM命名方法

BEM(Block Element Modifier)是一种CSS命名约定,它通过明确的命名规则来组织CSS类,提高代码的可读性和可维护性。具体来说:

  • Block :代表一个独立的、可复用的组件,如.page
  • Element :属于某个Block的子元素,通过双下划线__连接,如.page__header
  • Modifier :用来描述Block或Element的状态、外观变化,通过双下划线后跟下划线连接,如.page__active。这种方法能有效避免类名冲突,让CSS更易于理解和维护。

4. HTML语义化的重要性

语义化标签,如使用<article>表示文章内容,<section>划分文档区域,不仅有助于搜索引擎理解页面结构,还使得页面在没有CSS的情况下也能保持基本的可读性。这对于提升网页的可访问性和SEO优化都极为重要。

实战篇:编写高效美观的代码

接下来咱们来写一点代码以实现下面图片的效果

首先咱们先将主要模块写完,主要将其分为两大块,一个是含有Button 按钮的上半部分,和装有三个其他按钮的下半部分,咱们使用BEM命名法命名。

js 复制代码
<body>
    <div class="page">
        <div class="page__hd">
            <div class="page__title">
            Button
            </div>
            <p class="page__desc">
            按钮
            </p>
        </div>
        <div class="page__bd">
            <div class="button-sp-area">
                <a href="#" class="weui-btn weui-btn_primary">主要操作</a>
                <a href="#" class="weui-btn weui-btn_default">次要操作</a>
                <a href="#" class="weui-btn weui-btn_warn">警告</a>
            </div>
        </div>
    </div>
</body>

这边附上css样式:

js 复制代码
<style>
    /* css reset  默认样式重置,对所有浏览器都公平
    * {
        margin: 0;
        padding: 0;
        outline: 0; /*轮廓 不同的浏览器不一样*/
    }
    /* css inherit 继承 */
    body, html {
        height: 100%;
        /* 按上去的高亮颜色  透明*/
        -webkit-tap-highlight-color: transparent;
    }

    body {
        /*为苹果用户优化 支持苹果特殊字体*/
        font-family: system-ui,-apple-system, sans-serif;

    }
    .page, body {
        background-color: #ededed;
    }

    .page {
       position: absolute;
       top: 0;
       left: 0;
       right: 0;
       bottom: 0;
       overflow-y: auto;/*page 一屏高度,用滚动条*/
       -webkit-overflow-scrolling: touch;/*滚动如丝般顺滑*/
       overflow-scrolling: touch;
    }
    .page__hd {
        padding: 40px;
    }
    .page__title {
        text-align: left;
        font-size: 20px; /*16*/
        margin-bottom: 15px;
        font-weight: 400;
    }
    .page__desc {
        margin-top: 4px;
        text-align: left;
        font-size: 14px;
        color:rgba(0,0,0,0.55);
    }

    .button-sp-area {
        /*顺时针*/
        margin: 15px auto;
        padding: 15px;
        text-align: center;
    }
    /*weui 项目前缀  .tb .tm 通用.page?  .dy */
    .weui-btn {
        display: block; /*inline -> block */
        width: 184px;
        margin: 0 auto;
        padding: 12px 24px;
        font-weight: 500;
        font-size: 17px;
        text-align: center;
        text-decoration: none;
        color: #fff;
        line-height: 1.4118;
        border-radius: 8px;
        /*webkit 代表android chrome, apple等内核 
            user-select 是比较新的属性,
            实验属性 -webkit-user-select 支持 有的新手机上能运行 
        */
        -webkit-user-select:none;
        user-select:none;/* 防止长按 select 用户会误解*/

    }
    .weui-btn_primary {
        background-color: #07c160;
    }
    .weui-btn_default {
        color: rgba(0,0,0,0.9);
        background-color: rgba(0,0,0,0.5);
    }
    .weui-btn_warn {
        background: #cb1c1c;
    }
    /* css高级选择器 兄弟选择器 */
    .weui-btn+.weui-btn {
        margin-top: 16px;
    }

    </style>

结语

微信生态的CSS开发不仅仅是技术的堆砌,更是对用户体验、代码质量和开发效率的综合考量。通过学习和实践WeUI、掌握BEM命名法、坚持HTML语义化以及灵活运用组件化思维,你将能更高效地开发出既美观又实用的微信页面。记住,实战是最好的老师,不断尝试和迭代你的代码,逐步提升自己的技能水平。

相关推荐
yqcoder17 分钟前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
会发光的猪。1 小时前
css使用弹性盒,让每个子元素平均等分父元素的4/1大小
前端·javascript·vue.js
天下代码客1 小时前
【vue】vue中.sync修饰符如何使用--详细代码对比
前端·javascript·vue.js
Domain-zhuo2 小时前
什么是JavaScript原型链?
开发语言·前端·javascript·jvm·ecmascript·原型模式
小丁爱养花2 小时前
前端三剑客(三):JavaScript
开发语言·前端·javascript
码农六六2 小时前
vue3封装Element Plus table表格组件
javascript·vue.js·elementui
徐同保2 小时前
el-table 多选改成单选
javascript·vue.js·elementui
快乐小土豆~~2 小时前
el-input绑定点击回车事件意外触发页面刷新
javascript·vue.js·elementui
建群新人小猿3 小时前
会员等级经验问题
android·开发语言·前端·javascript·php
djk88883 小时前
Layui Table 行号
前端·javascript·layui