大屏记录——布局(前期调研篇)

    在本次大屏实现中,前期调研主要侧重于布局方面,功能点的拆分,以及可能用到的相关技术知识技能。

    布局

    刚拿到设计稿的第一眼,简单的分为了图A的样子,而我在前期实现的时候,通过栅格化布局,也确实按照这个来实现了,然而到最后的地图部分的时候,我有点懵了……这个地图看起来更像是背景图,额……那岂不是说,一开始的布局就是错误的?

布局01
图A-布局01

最开始的布局,中间部分,我用的是

display: flex;
align-items: center;
justify-content: space-between;

 

布局2
图B-布局02

 如果是这样,那地图怎么放???何况地图还有鼠标滚动的缩放等功能交互,不行,需要改变z-index。可即便是加上z-index,这个布局也是错的方向。最终重新拆分,并且在刘哥的帮助下,重新定义布局,重新拆解后,地图的布局是图B的样子。

   简单来说,就是不用栅格化布局,通过position:absolute,设置宽高单位为vw/vh,实现自适应(很惭愧,布局这部分的css是刘哥来改的,我是时候看的代码)。

    先甩几个链接,留着多看看

    rem设置根元素的字体大小    px、em、rem区别介绍  CSS中的px与物理像素、逻辑像素、1px边框问题

    顺便延伸下,对html标签的offsetWidth、clientWidth、scrollWidth属性的理解

    小技巧:把设计稿当成背景图来调样式,可达到高概率还原。

   以下是本次实现的大屏布局方面的思维导图及目前实现的效果图,和index.vue文件中template部分。

布局-思维导图
布局-思维导图
大屏示例稿(实现稿)
大屏设计稿实现
<template>
  <div id="index">
    <Header style=";top: 0;width: 100vw;z-index: 999;position: absolute" />
    <MapBJ style="height:100vh;position: absolute;z-index: 1" />
    <div class="index_left">
      <MyTable :tabHeades="tabHeades" :tabDatas="tabDatas" style="height: 47vh;"></MyTable>
      <RadarMap class='index_bottom_bg' :items="items_one" style="height: 39vh;margin-top: 1.5vh;" />
    </div>
    <div class="index_right_top">
      <ListScroll :itemsListData="itemsListData" />
    </div>
    <div class="index_right_bottom">
      <GraphMap id="echartGraph"  class='index_bottom_bg' :options="optionGraph" style="height: 37vh;" />
    </div>
    <div class="index_bottom">
      <a-button-group class="base-btn">
        <BaseBtn :BtnText="dayText" @clickDay="clickDay" />
        <BaseBtn :BtnText="houseText" @clickHouse="clickHouse" />
      </a-button-group>
      <StackedMap id="echartBar" :options="optionBar" style="height:20vh;" />
    </div>
  </div>
</template>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JSP页面中进行大屏数据的布局可以使用HTML和CSS来实现。以下是一个简单的示例: 1. 创建一个JSP页面,例如`dashboard.jsp`。 2. 在`dashboard.jsp`中使用HTML和CSS来定义布局。您可以使用div元素来划分不同的区域,并为每个区域设置样式。 ```html <!DOCTYPE html> <html> <head> <title>数据大屏</title> <style> /* 设置整个页面的布局 */ body { margin: 0; padding: 0; } /* 设置大屏容器的样式 */ .dashboard-container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; height: 100vh; /* 设置容器高度为视口高度 */ padding: 20px; } /* 设置每个区域的样式 */ .dashboard-section { width: 48%; /* 设置区域宽度,可以根据实际需求调整 */ height: 400px; /* 设置区域高度,可以根据实际需求调整 */ margin-bottom: 20px; background-color: #f2f2f2; border-radius: 10px; padding: 20px; } </style> </head> <body> <div class="dashboard-container"> <div class="dashboard-section"> <!-- 第一个区域的内容 --> </div> <div class="dashboard-section"> <!-- 第二个区域的内容 --> </div> <!-- 可以添加更多的区域 --> </div> </body> </html> ``` 3. 在每个区域的`<div>`标签中添加相应的内容,例如图表、数据表格、文本等。 以上示例中,使用了flex布局来创建一个响应式的大屏容器。每个区域使用`.dashboard-section`类来设置样式,您可以根据需要自定义样式。您可以根据实际需求添加更多的区域,并在每个区域中填充相应的内容。 请注意,这只是一个简单的示例,您可以根据具体需求进行更复杂的布局和样式设计。希望对您有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值