本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master

大家好我是费老师,对于刚上手dash应用开发的新手朋友来说,如何进行合理且美观的页面整体布局构建是一道“难题”。今天的文章中,我就将为大家介绍有关dash应用页面布局的一些实用技巧,并附上几个可以直接套用的dash应用经典页面模板,话不多说,let's go

阅读本文大约需要10分钟

示例1:简单的页首+内容布局

下面的例子中展示了最基础的页面布局方案,由页首及其下方的内容区域构成:

其中页首左侧部分我们可以用来放置应用的logo图片、应用名称等信息,右侧部分则可以放置一级导航菜单栏等内容,为了快捷实现其中各元素的垂直居中,以及左右两侧分别对齐的样式效果,我们使用到fac组件库中的网格系统相关功能(文档地址:https://fac.feffery.tech/AntdRow ),非常方便,关键之处在于使用align='middle'开启垂直居中效果,以及使用justify='space-between'实现两侧内容的左右对齐效果:

完成页首部分后,下方的内容区域则更简单了,值得注意的是,其中为了确保带有背景色的内容区容器至少充满页首之外的剩余高度,可以利用css中的calc()动态计算高度,即页面视口整体高度100vh减去页首部分占据的64px高度:

本示例完整代码见文章开头附件地址中的app1.py

示例2:粘性页首+内容布局

在前面的示例1中,若页面内容区域较长,页首部分会随着用户滚动页面而被滚上去,如果我们希望应用中的页首部分一直紧贴页面顶端,就像下面的示例2所示:

最简单的方式就是在前面示例1的基础上,将页首部分套在fac中的固钉组件AntdAffix中(文档地址:https://fac.feffery.tech/AntdAffix ),并设置offsetTop=0即可,相当的简单:

本示例完整代码见文章开头附件地址中的app2.py

示例3:固定的侧边菜单栏+粘性页首+内容布局

在前面的两个例子中,我们的页面中充当导航作用的只有位于页首右侧的一级导航菜单栏,如果我们的应用功能进一步复杂起来,需要在当前一级菜单栏对应页面下再设立二级导航菜单,经典的方式是像下面的例子那样,在原本的内容区中分出一部分宽度放置侧边菜单栏:

且为了更现代化的交互效果,新加入的侧边菜单栏是处于固定状态的,与内容区域相互独立:

要实现这样的经典页面布局效果,我们只需要在前面示例2的基础上,将下方内容区域改造成基于fac网格系统的新布局即可:

其中涉及到固定侧边菜单栏的部分,重点在于为菜单栏容器基于calc()动态计算高度值,即扣除页首高度之后的剩余部分,并通过overflowY属性开启竖向滚动条,而最关键的固定效果则同样是基于AntdAffix实现的,只不过这里的offsetTop需要考虑页首部分高度,所以设置为64

本示例完整代码见文章开头附件地址中的app3.py

相关参考资料:


以上就是本文的全部内容,更多有关dash应用开发的前沿知识和技巧欢迎持续关注玩转dash公众号。

Dash应用页面整体布局技巧的更多相关文章

  1. UWP开发入门(九)——简单界面的布局技巧及屏幕适应

    嘿嘿嘿,题目比较绕哈.本篇主要讨论一般情况下,页面的布局技巧,怎么将元素的展现尽量做到分辨率无关.基本的思路仍然是尽量少的标定具体的数字,而是用比列来标注各元素占据的空间. 这里我打算用易信的名片页来 ...

  2. 表格布局扩展/DW设计界面中快速整体布局页面的操作

    DW设计界面中快速整体布局页面的操作流程: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  3. 提高Web页面性能的技巧

    现在动辄几兆大小的页面加载量,让性能优化成了不可避免的热门话题.WEB 应用越流畅,用户体验就会越好,继而带来更多的访问量.这也就是说,我们应该反省一下那些过度美化的 CSS3 动画和多重操作的 DO ...

  4. 总结与学习DIV+CSS网页布局技巧

    以前用表格布局时设置网页居中非常方便,把表格对齐方式设置为居中就行了,就这么简单,现在呢,用DIV+CSS样式表控制,好像不是那么容易了,其实也很简单,只不过方式不同而已. <style> ...

  5. CSS进阶内容——布局技巧和细节修饰

    CSS进阶内容--布局技巧和细节修饰 我们在之前的文章中已经掌握了CSS的大部分内容,但仍有一些内容我们没有涉略,这篇文章就是为了补充前面没有涉及的内容,为我们的知识做出补充并且介绍一些布局技巧 当然 ...

  6. HTML CSS + DIV实现整体布局

    HTML CSS + DIV实现整体布局 1.技术目标: 开发符合W3C标准的Web页面 理解盒子模型 实现DIV+CSS整体布局 2.什么是W3C标准? W3C:World Wide Web Con ...

  7. 移动平台3G手机网站前端开发布局技巧

    本文转载至:移动平台3G手机网站前端开发布局技巧汇总 - 前端开发-武方博 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相 关的文章,您或许 ...

  8. 移动平台3G手机网站前端开发布局技巧汇总

    移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博   发布:2011-05-10 09:11   分类:移动开发   阅读:120,618 views   7条评论     您或许正在 ...

  9. CSS之定位布局(position,定位布局技巧)

    css之定位 1.什么是定位:css中的position属性,position有四个值:absolute/relative/fixed/static(绝对/相对/固定/静态(默认))通过定位属性可以设 ...

  10. HTML CSS + DIV实现整体布局 part1

    HTML CSS + DIV实现整体布局 1.技术目标: 开发符合W3C标准的Web页面 理解盒子模型 实现DIV+CSS整体布局 2.什么是W3C标准? W3C:World Wide Web Con ...

随机推荐

  1. C#中event和delegate的区别

    event是一种特殊签名格式的delegate,event的定义必须在类内,delegate可以脱离类的存在. event的引发是通过调用委托实现的,而委托不仅仅用来实现事件的引发. 通过加入even ...

  2. vue之字符串的方法

    目录 简介 indexOf方法 简介 本文会把遇到的字符串的方法慢慢补充进来 indexOf方法 indexOf方法判断字符串是否包含另一个字符串 判断结果如果包含返回的是索引,如果不包含,则返回-1 ...

  3. [Excel/Word]常用函数与技巧

    1 Excel case1 同时多列筛选 同时筛选多列: 选中首行(属性行)>筛选>(筛选目标的N列) case2 IF/OR/AND/COUNTIF语句 =IF(condition,co ...

  4. [Linux]常用命令之【nl/sed/awk/wc/xargs/perl】

    nl nl : 在linux系统中用来计算文件中行号. nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补 ...

  5. 四月二十四号java基础知识

    1.输入输出是指程序与外部设备或其他计算机进行交互的操作2.流(stream)是指计算机各部件之间的数据流动流的内容上划分:流分为字节流和字符流3.输入流:将数据从外设或外存(如键盘.鼠标.文件等)传 ...

  6. LeeCode 二叉树问题(二)

    二叉树的构建 LeeCode 106: 从中序遍历与后续遍历序列构造二叉树 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, posto ...

  7. Android 为什么事件分发的入口函数是dispatchTouchEvent

    参考:https://xiaozhuanlan.com/topic/8946537021 从触摸屏幕到事件在底层传输最终会到: private int processPointerEvent(Queu ...

  8. Docker中Nginx搭建以及配置

    docker nginx搭建 1 docker pull nginx docker pull nginx 2 启动nginx docker run --name nginx -p 80:80 -d n ...

  9. [ Docker ] 部署 nps 和 npc 实现内网穿透

    https://www.cnblogs.com/yeungchie/ 云主机上运行 nps 创建映射目录 mkdir -p ~/docker/nps/config 拉取镜像 docker pull o ...

  10. CopyOnWriteArrayList的使用和优缺点

    CopyOnWriteArrayList允许并发读,读操作无锁,性能较高: 而写操作(含删除),比如向容器中添加/删除一个元素,则首先将当前容器复制一份,然后在新副本上执行写操作,结束之后再将原容器的 ...