前言

刚开始做前端的同学,样式是需要跨过去的第一道坎,而样式中的布局设计更是最常见的需求之一,比如说常见的九宫格或是六宫格,这篇文件就以一个实战案例讲述关于样式布局的相关内容.本文为uniapp项目,不同前端项目的css样式风部分会有差异,大部分都是一致的,重点理解体会布局实现方式以及注意问题.
    先看下需要实现的页面:

这是一个六宫格图片布局,其中第一个图是大图,其余均是小图,大小一致,第一行的小图需要上下排列,第二行的小图水平放置.

实现过程

uniapp中基本的视图容器为view,相当于之前接触的div都是块标签.
    可以按照图片放置位置划分几个view,整体分为两个大的view.第一个为上面三个,第二个为下面三个.

对应样式如下:

第一行三个又可以分为两部分,左边大的和右边两个小的组成的一部分.

对应样式如下:

    最下面一行就是三个图水平放置.

对应样式如下:

    页面源码如下:

<template><view><view class="dynaimic_class"><view class="dynaimic_item_comnbine_class"><view class="dynaimic_item_big_class"><image src="../../static/dynamic/dynamic_1.png"></image></view><view class="dynaimic_item_big_small_combine_class"><view class="dynaimic_item_small_class"><image src="../../static/dynamic/dynamic_2.png"></image></view><view class="dynaimic_item_small_class"><image src="../../static/dynamic/dynamic_3.png"></image></view></view></view><view class="dynaimic_item_small_combine_class"><view class="dynaimic_item_small_class"><image src="../../static/dynamic/dynamic_4.png"></image></view><view class="dynaimic_item_small_class"><image src="../../static/dynamic/dynamic_5.png"></image></view><view class="dynaimic_item_small_class"><image src="../../static/dynamic/dynamic_6.png"></image></view></view></view></view>
</template><script>export default {data() {return {}},methods: {}}
</script><style lang="scss">.dynaimic_class{   // 父容器height: 600rpx;width: 100%;display: flex;  // flex布局并实现换行flex-wrap: wrap;box-sizing: border-box;  // 设置盒模型以及左右边距10rpx,处理padding-right不生效问题padding: 10rpx;.dynaimic_item_comnbine_class{ // 第一行大的view样式height: calc(100%/3*2);width: 100%;display: flex;    // flex布局实现水平排列flex-direction: row;// margin: 10rpx;.dynaimic_item_big_class{  // 第一行左侧大图样式height: 100%;width: calc(100%/3*2);image{height: 100%;width: 100%;}}.dynaimic_item_big_small_combine_class{  // 第一行右侧两个竖直摆放的小图height: 100%;width: calc(100%/3);display: flex;   // flex布局实现数值排列flex-direction: column;// margin: 10rpx;.dynaimic_item_small_class{  // 小图样式height: 50%;width: 100%;image{height: 100%;width: 100%;}}}}.dynaimic_item_small_combine_class{  //第二行三个小图view样式height: calc(100%/3);width: 100%;display: flex;justify-content: space-around;.dynaimic_item_small_class{  // 每个小图样式height: 100%;width: calc(100%/3); // 计算每个view大小image{height: 100%;width: 100%;}}}}
</style>

总结与注意事项

1.容器中实现flex布局并换行使用flex-wrap: wrap;
    2.flex布局指定水平或是垂直布局可以使用flex-direction: row;
    3.实际实现过程中存在padding-right不生效问题可以使用box-sizing: border-box;进行处理.
    4.设置每个view宽度和高度时都是使用百分比,这里指占用父容器的百分数,另外对于百分数存在除不尽的情况进行四舍五入可能会带来显示宽度不一致问题可以使用calc函数进行相关运算.
    5.image图片完全在view中显示的处理方式是设置image的宽高占用view的100%,uniapp中image中默认为320px*240px.不指定会出现image超过view布局的情形.
    以上是实现宫格样式布局处理的全过程,如果感觉有所帮助或是有其他好的实现方式欢迎点赞或是评论区留言!

css布局入门级实战之九宫格网格布局相关推荐

  1. css响应式网格布局生成器_如何使用网格布局模块使用纯CSS创建响应表

    css响应式网格布局生成器 TL; DR (TL;DR) The most popular way to display a collection of similar data is to use ...

  2. html流式布局插件,Jquery瀑布流网格布局插件

    插件描述:一款简单且高度可定制的jQuery瀑布流网格布局插件.通过该瀑布流网格插件你可以动态添加和删除各种尺寸的图片,定义图片宽度,设置网格的列数,或使用流式布局方式,甚至还可以通过URL动态添加图 ...

  3. grid布局浏览器兼容_CSS Grid 网格布局教程

    一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...

  4. java 网格布局管理器,Java图形化界面设计——布局管理器之GridLayout(网格布局)...

    网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式 ...

  5. java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...

    代码如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定义字符串数组,为按 ...

  6. 计算器界面网格布局java,安卓案例:网格布局实现计算器界面

    安卓案例:网格布局实现计算器界面 一.网格布局(GridLayout) GridLayout布局使用虚细线将布局划分为行.列和单元格,也支持一个控件在行.列上都有交错排列. (一)继承关系图 (二)常 ...

  7. 响应式布局html像素值计算,CSS Calc():制作响应式网格布局的锋利武器

    响应式的布局方式是当下最为流行网页布局.对于一个响应式的网格系统,可以有多种的解决方案.在这篇文章中,我们将和大家分享使用CSS calc()函数来制作响应式网格的一些知识. With calc(), ...

  8. css布局 图片大小,CSS3 使用网格布局实现的不同尺寸照片墙

    CSS 语言: CSSSCSS 确定 body { background-color: #efefef; } h3 { margin: 0; } h3+p { margin-top: 0; } .wr ...

  9. css【详解】grid布局—— 网格布局(栅格布局)

    网格布局(Grid)是最强大的 CSS 布局方案 grid布局 和 flex布局的区别 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局. Grid 布 ...

最新文章

  1. 使用域用户权限|安装软件
  2. 438. Find All Anagrams in a String
  3. Android7.1修改系统默认多媒体音量大小
  4. BootStrap 效果展示
  5. 07_设置坐标轴刻度、设置刻度标签(Setting Tick Labels)、调整刻度标签 (Adjusting the ticklabels)
  6. MySQL 参数文件及参数
  7. 在线nltk分词和词性标注
  8. 巨一自动化工业机器人_2021第11届深圳国际工业自动化及机器人展览会
  9. 代理模式 委派模式 策略模式_策略模式
  10. python中模块和包是什么_Python中模块和包的概念
  11. 在jsp中调用常量类中的属性值
  12. c++图的创建_利用Microsoft Visio 软件绘制工艺流程图
  13. python源码中的学习笔记_第4章_列表
  14. 易经入门V2.0(体系最完整,推荐书目最完备,易经周易入门必收藏)
  15. ADMM算法求解二次项目标函数+l1正则项问题
  16. 亚马逊云科技成为Meta关键长期战略云服务提供商;触宝科技延伸业务布局聚焦元宇宙 | 全球TMT...
  17. 2022年6月大学英语六级作文
  18. MOOC-首都师范-博弈论-焦宝聪-第六章-动态博弈学习笔记(五)
  19. 虚幻3和虚幻4_虚幻的非会议
  20. 平均值、中位数、众数、极差分别是什么?各有什么有点和缺点?

热门文章

  1. CodeForces - 699A Launch of Collider 粒子对撞机 基础题
  2. onenote使用记录(1):新建与删除笔记本
  3. CentOS7.2 上安装 Docker 教程
  4. 忙忙碌碌的生活又开始了
  5. 基于JAVA前后端分离健身房管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  6. (转)有个星座叫天平(一)
  7. mac m1 office卸载重装(学校官方正版)
  8. PyTorch 打印模型结构、输出维度和参数信息(torchsummary)
  9. 新书推荐 |《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》...
  10. Android Car automotive解析