你真的会做小程序按钮吗?看了字节35K前端的样式设计,悟了

简介: 你真的会做小程序按钮吗?看了字节35K前端的样式设计,悟了

一、背景介绍

近来公司业务比较忙,这两天又正好是周末,本来想好好打场球然后好好搓一顿再睡个天昏地暗的。然后突然发现这两天是一年一度的1024程序员日,忽然发觉这已经是第五个告别学生生涯,用代码改变世界的纪念日了。不仅让我想起了当年一起泡实验室、熬通宵憋论文的刘二狗了。

3c6f2f196d784cb0b8d20a19ee154377.jpg请允许我附一下刘二狗的经典表情。对的,他在每次看代码时总是瞪着铜铃般的双眼,仿佛觉得只要眼睛瞪得够大程序就会没有bug!


也可能正是因为他这一双对bug充满力量的眼睛,他选择了前端,我走上了大数据。在毕业那段时间offer收割到手软,经常跟我凡尔赛说要带我改变世界。


刚好在蹭着这个程序员节日,我对这个二狗子进行了骚扰。好家伙,现在都是字节的高级前端了,都到这份上了,这不得好好的跟人家学两招,看看所谓的前端开发工程师跟高级前端开发到底有啥水分,也替张一鸣老板验验货😘😘

ee58d8c7eaf710a8f6f2dffd25a6436f.jpg


然后,我们就时下火热的小程序技术展开了讨论。


🧑🏽二狗说: 还记得曾经那些让我们引以为傲的炫酷样式吗?

👦🏻我说: 那不都是调调包?拿来主义而已,小事!怎么回事,我们这牛逼的字节跳动前端工程师,搞了这么多年,调包都不会了?😜

🧑🏽二狗说: 老子以前是调包侠,现在是造物主!😁说不定你们公司现在用的样式库都是我在那个夜黑风高的夜晚憋出来的呢!

👦🏻我说: 真的假的?又想着改变世界了是吧?👻 口说无凭,拉出来遛遛!

🧑🏽二狗说: 哈哈,我这卡姿兰带大眼睛啥时候吹牛打草稿过?😂 就比方说,现在做移动端方向的小程序开发来说,你现在用的样式库,其实有很多设计很粗糙,那就拿页面中的一个按钮来说吧,每一个经得起推敲和耐看的细节才是我们前端永远追求的神。

👦🏻我说: Show Me your Code!🤡


二、效果展示

2.1 传统的样式

(1)小程序开发常用样式库一:uview样式库

2d49a0d2964b4e08b04243b50c8f08fd.png


(2)小程序开发常用样式库二:vantUI样式库

bbb12e8d9a534cb093fef375e3f095aa.png


2.2 高级的样式

(1) 圆形样式

3e86f49939654c6787f01256d9105e14.png


(2)方形样式

0b3d63e5e4764f1ebb8975f8980b8360.png


(3)方形酷黑样式

d8b126fb56bc46cf87c579befc9408d2.png


三、源码解析

二狗的样式着实让我眼前一亮,在我的软磨硬泡之下,他乖乖的交出了源码,让我们一起学习一下,顺便祝大家1024快乐

那我们就拿其中的一个样式仔细分析分析:

7af8acf09b1d49f3b6019f1f75b3756e.png


3.1 元素设计

      .btn {
        display: flex;
        justify-content: center;
        align-items: center;    // 这三行保证按钮中图标图片的样式居中
        width: 100rpx;
        height: 100rpx;
        border-radius: 20rpx;
        background: #373d44;
        box-shadow: 5px 5px 10px #16181b, -5px -5px 10px #58626d; // 添加高级感的背景阴影
        image {  // 固定图标大小
          width: 50rpx;
          height: 50rpx;
        }
      }

3.2 完整代码示例

<template>
  <view>
    <view class="row">
      <view class="cell" v-for="(item,index) in img" :key="index">
        <view class="btn">
          <image :src="item"></image>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        img: ["https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/a1.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/b1.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/d1.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/c-z-2.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/c-c-2.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/c-w-2.png",
          "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/a1.png",
            "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/b1.png",
            "https://6e69-niew6-1302638010.tcb.qcloud.la/%E6%96%B0%E6%8B%9F%E6%80%81%E5%9B%BE%E6%A0%87/d1.png",
        ]
      }
    }
  }
</script>
<style lang="scss">
  page {
    background-color: #3d444c;
  }
  .row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    .cell {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 30%;
      height: 300rpx;
      .btn {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100rpx;
        height: 100rpx;
        border-radius: 20rpx;
        background: #373d44;
        box-shadow: 5px 5px 10px #16181b,
          -5px -5px 10px #58626d;
        image {
          width: 50rpx;
          height: 50rpx;
        }
      }
    }
  }
</style>


相关文章
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
1167 2
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
312 1
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
573 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
小程序 前端开发 数据可视化
作为一个前端小白,我竟然搞定了一个小程序的交付
作为一名刚毕业的前端码农,今年毕业后就加入了一家初创公司。入职不久便接到了一个小程序开发项目,客户特别强调必须使用小程序原生语言进行开发。由于时间紧迫而合适的后端开发者暂时还没到位,老板决定让我边学边做,承担起整个项目的前后端开发工作。对于初出茅庐的我来说,这无疑是一个巨大的挑战。不仅要掌握一门新的编程语言,还要学习数据库设计、服务器部署等一系列后端技术,任务艰巨。正当我为此感到头疼时,一位前辈向我推荐了极态云。经过一番调研后发现,它简直就是为像我这样缺乏后端经验但又急需快速完成项目的人量身定做的解决方案!
作为一个前端小白,我竟然搞定了一个小程序的交付
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
458 6
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
前端开发 JavaScript
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
3140 9
|
移动开发 小程序 前端开发
小程序的前端插件都有哪些?
【10月更文挑战第16天】小程序的前端插件都有哪些?
413 1
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
1956 1
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
1351 0
微信小程序:自定义关注公众号组件样式
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
567 11