Grid布局:手机桌面图标或小组件随机布局

转载: 有时候,使用Grid布局会很方便

需求: 现在的手机桌面上,可以自定义的放一些App图标,也可以添加很多小组件。一个桌面,它会有4列的图标,然后在这些桌面上可以任意添加小组件。小组件可能是一行4列或者是两行两列等各种情况。如果我们用前端页面来实现这种效果的话,该怎么做呢?

思路: 如果使用Flex布局很麻烦,这里可以使用Grid布局。

效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>手机桌面网格布局</title>
  <style>
    html,
    body {
      padding: 10px;
      margin: 0;
      width: 100%;
      box-sizing: border-box;
    }

    .grid-box {
      width: 200px;
      height: 400px;
      border: 1px solid #999;
      margin: 20px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      grid-template-rows: repeat(8, 1fr);
      gap: 6px;
      padding: 6px;
      grid-auto-flow: dense;
    }

    .grid-box>div {
      background-color: bisque;
      border-radius: 4px;
      border: 1px solid #ccc;
    }

    /* 
      1x1 1x2 1x3
      2x1 2x2 2x3
      3x1 3x2 3x3
     */

    .grid-box-item-1 {
      /* 1x2 */
      grid-column-end: span 2;
    }

    .grid-box-item-2 {
      /* 2x1 */
      grid-row-end: span 2;
    }

    .grid-box-item-3 {
      /* 2x2 */
      grid-column-end: span 2;
      grid-row-end: span 2;
    }
  </style>
</head>

<body>
  <button onclick="randomItem()">随机</button>
  <div class="grid-box" id="box"></div>

  <script>

    // 需求:假设桌面的图标或小组件,可以选择1x1, 1x2, 2x1, 2x2四种效果。
    // 所以我们可以先设置三种大小的子节点空间,因为默认是1x1,所以1x1不需要单独这种。有了这几个class我们创建子节点的时候,只要往上面添加这个对应的class就能实现对应的效果。
    let boxEl = document.getElementById('box');

    function randomItem() {
      console.log('随机');
      // 0 默认 1x1布局
      // 1 默认 1x2布局
      // 2 默认 2x1布局
      // 3 默认 2x2布局
      let styleArr = [0, 0, 0, 0, 1, 1, 2, 3];
      styleArr = styleArr.sort(() => {
        return Math.random() > 0.5 ? 1 : -1;
      })
      console.log(styleArr);
      let itemsEl = '';
      for (let i = 0; i < styleArr.length; i++) {
        itemsEl += `<div class="grid-box-item-${styleArr[i]}">${i + 1}</div>`;
      }
      boxEl.innerHTML = itemsEl;
    }

    randomItem();
  </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/256543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

评价机器学习模型的指标

为了衡量一个机器学习模型的好坏&#xff0c;需要给定一个测试集&#xff0c;用模型对测试集中的每一个样本进行预测&#xff0c;并根据预测结果计算评价分数。 对于分类问题&#xff0c;常见的评价标准有准确率、精确率、召回率和F值等。给定测试集 &#x1d4af; {(&#x1…

用bash写脚本

本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 数值的对比 判断语句 循环语句 grep的用法是“grep 关键字 file”&#xff0c;意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/…

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用 燃气轮机发电机组作为一种高效可靠的常备应急电源&#xff0c;在保障发电品质稳定性和可靠性方面发挥着关键作用。其中&#xff0c;励磁控制系统是保证供电质量的重要环节&#xff0c;对发电机组的稳定运行至关重要。为了有…

【C语言】自定义类型——枚举、联合体

引言 对枚举、联合体进行介绍&#xff0c;包括枚举的声明、枚举的优点&#xff0c;联合体的声明、联合体的大小。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 引言 枚举 枚举…

Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

目录 0 专栏介绍1 Q-Learning算法原理2 强化学习基本框架3 机器人走迷宫算法3.1 迷宫环境3.2 状态、动作和奖励3.3 Q-Learning算法实现3.4 完成训练 4 算法分析4.1 Q-Table4.2 奖励曲线 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见…

flowable工作流学习笔记

不同版本使用方式不一样&#xff0c;案例使用两个版本6.5.0及6.6.0,学习中6.5.0 版本是独立框架&#xff08;服务单独部署&#xff09;使用的&#xff0c; 6.6.0与springboot集成&#xff0c; 6.5.0版本如下&#xff1a; 下载flowable&#xff1a; https://github.com/flowa…

kubernetesr安全篇之云原生安全概述

云原生 4C 安全模型 云原生 4C 安全模型&#xff0c;是指在四个层面上考虑云原生的安全&#xff1a; Cloud&#xff08;云或基础设施层&#xff09;Cluster&#xff08;Kubernetes 集群层&#xff09;Container&#xff08;容器层&#xff09;Code&#xff08;代码层&#xf…

电商API接口接入|电商系统中的商品功能就该这么设计,稳的一批!

商品功能作为电商系统的核心功能&#xff0c;它的设计可谓是非常重要的。就算不是电商系统中&#xff0c;只要是涉及到需要交易物品的项目&#xff0c;商品功能都具有很好的参考价值。今天就以mall项目中的商品功能为例&#xff0c;来聊聊商品功能的设计与实现。 mall项目简介 …

你必须知道的低代码和低代码代表厂商!

自低代码进入中国市场以来&#xff0c;已经有不少年头。低代码&#xff08;Low-Code&#xff09;是一种软件开发方法&#xff0c;它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑&#xff0c;快速地构建和部署应用程序&#xff0c;而无需编写大量的代码。 低代码开…

减速机振动相关标准 - 笔记

参考标准&#xff1a;国家标准|GB/T 39523-2020 减速机的振动标准与发动机不同&#xff0c;摘引&#xff1a; 原始加速度传感器波形 可以明显看到调幅波 它的驱动电机是300Hz~2000Hz范围的。这个采样时间是5秒&#xff0c;看分辨率至少1024线。可分出500条谱线。 频谱部分 …

大模型上下文扩展之YaRN解析:从RoPE、到ALiBi、位置插值、到YaRN

前言 下半年以来&#xff0c;我全力推动我司大模型项目团队的组建&#xff0c;我虽兼管整个项目团队&#xff0c;但为了并行多个项目&#xff0c;最终分成了三个项目组&#xff0c;每个项目都有一个项目负责人&#xff0c;分别为霍哥、阿荀、朝阳 在今年Q4&#xff0c;我司第…

经纬恒润AUTOSAR成功适配曦华科技国产车规级芯片

近日&#xff0c;经纬恒润AUTOSAR基础软件产品INTEWORK-EAS-CP成功适配曦华科技的蓝鲸CVM014x系列车规级MCU芯片。同时&#xff0c;经纬恒润完成了对曦华科技开发板的MCAL软件适配和工程集成&#xff0c;为曦华科技提供了全套AUTOSAR解决方案。 基于蓝鲸CVM014x适配经纬恒润AUT…

微信万能表单源码系统 自定义你的表单系统+完整代码包+安装部署教程

表单系统已经成为了网站、APP等应用中不可或缺的一部分。无论是注册、登录、反馈还是其他各种场景&#xff0c;都需要表单来收集用户信息。然而&#xff0c;传统的表单系统往往存在着一些问题&#xff0c;如功能单一、扩展性差、维护困难等。 以下是部分代码示例&#xff1a; …

ArkTS 状态管理@Prop、@Link

当父子组件之间需要数据同步的时候&#xff0c;可以使用Prop和Link装饰器。 实现的案例之中&#xff0c;代码时平铺直叙的&#xff0c;阅读性可理解性比较差。我们应改遵循组件化开发的思想。 在我们使用组件开发的时候&#xff0c;遇到数据同步问题的时候&#xff0c;State状态…

HuatuoGPT模型介绍

文章目录 HuatuoGPT 模型介绍LLM4Med&#xff08;医疗大模型&#xff09;的作用ChatGPT 存在的问题HuatuoGPT的特点ChatGPT 与真实医生的区别解决方案用于SFT阶段的混合数据基于AI反馈的RL 评估单轮问答多轮问答人工评估 HuatuoGPT 模型介绍 HuatuoGPT&#xff08;华佗GPT&…

利用台阶仪测量薄膜厚度的方法和技巧

在薄膜制备过程中&#xff0c;薄膜厚度是一个至关重要的参数&#xff0c;直接影响薄膜的性能和应用。为了准确测量薄膜厚度&#xff0c;研究者广泛使用台阶仪&#xff0c;这是一种方便、直接、准确的测量方法。本文将介绍如何利用台阶仪进行薄膜厚度测量的方法和技巧。 选择合…

JavaWeb编程语言—登录校验

一、前言&简介 前言&#xff1a;小编的上一篇文章“JavaWeb编程语言—登录功能实现”&#xff0c;介绍了如何通过Java代码实现通过接收前端传来的账号、密码信息来登录后端服务器&#xff0c;但是没有实现登录校验功能&#xff0c;这代表着用户不需要登录也能直接访问服务器…

龙迅LT6211B,HDMI1.4转LVDS,应用于AR/VR市场

产品描述 LT6211B 是一款用于 VR/ 显示应用的高性能 HDMI1.4 至 LVDS 芯片。 对于 LVDS 输出&#xff0c;LT6211B 可配置为单端口、双端口或四端口。对于2D视频流&#xff0c;同一视频流可以映射到两个单独的面板&#xff0c;对于3D视频格式&#xff0c;左侧数据可以发送到一个…

基于YOLOv8深度学习的智能小麦害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

MYSQL中使用IN,在xml文件中怎么写?

MYSQL&#xff1a; Spring中&#xff1a; mysql中IN后边的集合&#xff0c;在后端中使用集合代替&#xff0c;其他的没有什么注意的&#xff0c;还需要了解foreach 语法即可。