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语义化以及灵活运用组件化思维,你将能更高效地开发出既美观又实用的微信页面。记住,实战是最好的老师,不断尝试和迭代你的代码,逐步提升自己的技能水平。

相关推荐
东东5161 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino1 小时前
图片、文件的预览
前端·javascript
2501_920931702 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
AI老李3 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
方也_arkling3 小时前
Element Plus主题色定制
javascript·sass
2601_949809594 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
Up九五小庞4 小时前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
摘星编程4 小时前
React Native + OpenHarmony:UniversalLink通用链接
javascript·react native·react.js
qq_177767374 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
烬头88215 小时前
React Native鸿蒙跨平台应用实现了onCategoryPress等核心函数,用于处理用户交互和状态更新,通过计算已支出和剩余预算
前端·javascript·react native·react.js·ecmascript·交互·harmonyos