想象一下你为企业端产品设计了一个系统,或是设计了某个应用程序。在诸如此类的设计中都需要用到表格。这些表格设计不是那些设计网站中展示的非常精美的表格样式,而是具有复杂交互和数百个单元格的表格。
在这种情况下,设计师会面临许多挑战。 例如:将设计与现有的前端框架进行匹配,或与破坏布局的“不舒服”数据进行斗争。 我们将通过以下步骤来解决这些问题:系统化需求,原子化,定义交互。
所以,你已经采访了目标受众。现在是时候将他们的需求和需求拼凑在一起,并转化为对设计有用的东西。例如,一位用户说:“我需要看看我的数据如何影响应用程序的其他部分。”或者在看到另一个人使用软件时,你注意到他只使用快捷方式而根本不摸鼠标。这是什么意思?第一个用户的话是关于输入验证和提示。你需要考虑将警报或帮助信息附加到表中,或者开发一个有意义的颜色系统。这取决于领域和心理模型。观察第二个用户的工作可能是你需要设计键盘可设置快捷方式,可能需要考虑比“Cmd + C”和“Cmd + V”更深刻的快捷方式。
这样,你就有一系列的需求和愿望。开放式问题有助于找出真正的需求并过滤掉一时兴起。例如,“什么可以帮助你更快地工作?这如何提高你的工作效率?如果你不能做XX会有什么改变?“
这时候就需要一个功能框架了。如下图
任何表的最小构建块都是一个单元,联合成行和列,其具有不同于其他单元的特定特征。 最后,我们将表格的重要补充作为顶栏,键盘命令,处理错误等。
简而言之,构建一个复杂的表,收集并优先考虑用户需求。 考虑非表格解决方案,例如图表。
绘制一张树形图,系统化所有需要的功能。
原子化是首先设计小的UI组件然后组装更大的UI组件。 我们将逐渐从字体和颜色等基本粒子转移到像标题或列这样的大模态。
这些部分可以由设计系统或UI框架定义。 如果为现有产品创建表,请检查调色板,字体和图标是否满足表格的需要。
当表格原子设计准备就绪时,我们可以继续设计不同类型的单元。 首先要事先考虑每个元素的“正常”,“悬停”和“激活”的状态。 后面再添加“点击”,“禁用”和其他状态。
单元格可以有工具提示,输入提示,错误消息,占位符等附件。
设计单元格创建行时,需要查看各种组合是否可以很好地协同工作。 下面我在一行中展示了只读和可编辑单元格的。 一旦设计一个具有复杂编辑逻辑的表格,那么表格的某些字段由用户提供,而其他字段则使用默认值自动计算或填充。
需要注意的是,将鼠标悬停在只读和可编辑单元格上时,光标会有所不同。 点击单元格会触发选择行或进入可编辑单元格的编辑模式。 你可以在下图看到用户选择一行或多行时的单元格状态。
现在是时候考虑表头了。 根据我的经验,通常无法控制列标题长度并坚持一行。 我在下图展示了表头的不同变体。
基于数据的工具,用户经常需要排序和过滤。 它可以帮助用户在冗长的数据中找到有价值的信息。 排序和过滤的挑战是将排序控件和过滤控件与其他标题元素(列标题,度量单位等)结合起来。
与表格单元格不同,过滤器框通常在右侧具有“重置”图标,以便用户可以查看未过滤的内容。
在示例中,有三种类型的过滤器框。 字母数字过滤器可以按字母和数字进行搜索。 它支持通配符 - 未知数量的未知字符。
日期选择器过滤器具有日历,其工作方式与其单元格相同。 允许用户手动输入日期并从日历中选择是一件好事。 如果他们知道他们在搜索什么,那么打字比点击容易得多。 在我的一个项目中,我们允许输入“01/25/2017”,“6 12 17”和“2016年9月4日”等日期,仅过滤一个月或一年。
复杂表的一个常见功能是固定列。 通常,包含关键信息的列(例如,元素名称或状态)不可滚动。
虽然表列应该巧妙地适应内容大小,但是当文本被截断时会发生。 在这种情况下,列大小调整很有帮助。 用户可以拖动列边缘并查看长内容。
处理长文本字符串的另一种方法是:使用最长内容拉伸列或将内容折成多行。 第一种方法对于或多或少类似的文本字符串更有效。 如果看到全部内容对于人们来说比保持表格的垂直紧凑更重要,那么第二个更好。
我们需要定义列的默认最小宽度,以防止表格不适合调整大小。
什么构成一张表格? 单元格,列,行。 此外,复杂的表通常有一个顶部 *** 作区。 与其他组件一样,顶部栏由较小的元素构成 - 标题和命令。 下面我收集了我们在其中一个产品中使用的各种状态的命令列表。
现在我们可以尝试组合不同的元素,看看它是否有效。 这里有些例子。
当然,这不是功能和元素的最终列表。 它不同于一个项目,可能包含其他内容,例如:
按多列排序;
可自定义的列;
可扩展行;
用于过滤和搜索的逻辑运算符(“和”,“或”,“其他”等)。
如果你犹豫要设计哪些功能,哪些没有,可以参考奥卡姆的剃刀,或简约法则。 如果现有的实例满足需求,则设计者不应创建新实例。 你应该“削减”用户可能需要的令人讨厌的功能。
只读表格 。 要构建的最简单的表类型,因为它只显示数据。 没有过滤或编辑选项。
搜索表格 。 单元格不可编辑,标题有过滤框和排序控件,可以选择行。 从实践来看,这些表格有助于从大量类似的东西中查找,比较和选择一个项目或几个项目。
可编辑的表格 。 所有或部分单元格都是可编辑的,通常没有筛选,因为行的顺序可能是自定义的。 这些表格通常会有工具栏并允许使用行执行 *** 作。
简而言之
从最小的组件开始。 然后逐渐走向更大的,最后,模拟整个表格。
事先考虑每个组件的所有可能状态。
使用Occam的剃刀原则将元素数量保持在最小但覆盖所有用例。
构建块不足以构建像表格这样复杂的。设计师应该考虑“游戏规则”,并设计视觉部分背后的逻辑原则和惯例。
容器与响应式
如何将表格放在界面中? 例如,它会占用现有容器中的一些空间还是一个单独的模块? 这些问题的答案完全取决于产品,最好预见可能的问题并彻底定义原则。
有些应用程序使用线条或白色灰色“斑马线”来使信息更易读。
定义合理的默认宽度,并允许在需要时手动调整大小。对于阅读表格,最好在右边有一些空格而不是列之间的间隙。但是如果一个表包含许多行和列,则水平和垂直滚动是不可避免的。对于手机端的阅读,还可以把表格做成卡片式利于用户浏览数据。
即使是非常流畅和漂亮的表格也可能成为用户的噩梦。因此,遵循可访问性原则非常重要。 以下是可访问性方面的主要设计考虑因素。
给出标题并准备简明的摘要 。视力受损的用户应该能够在不对其所有单元进行语音处理的情况下处理表格。
注意字体大小 。尽管网络没有正式的最小尺寸,但16 px(12 pt)被认为是最佳的。此外,用户应该能够在不破坏整个布局的情况下将表格增加到200%。
为有色盲的人测试颜色 。文本和控件应与其背景具有足够的对比度。最低要求色比3:1(越多越好)。颜色不应该是标记事物的唯一方式。例如,错误消息不应仅依赖于红色文本,警告图标将为色盲用户提供参考。
避免使用小而模糊的控件 。如果可点击组件至少为40×40像素,则认为它们是触摸友好的。由图标表示的命令应标记或具有工具提示和替代文本。设计师不应过度使用图标,因为用户可能无法正确理解复杂的隐喻。
简而言之
内容统一和格式化也是设计师的工作。
不仅要考虑界面元素,还要考虑用例,规则和常用模式。
原文:https://mediummuzli/complex-tables-356826d11861
译者:Ever
相关文章推荐:
在构建设计规范之前,你需要看看这些设计资源
如何构建设计语言系统
给初级UI&UE设计师的Sketch资源分享
交互设计原则和理论1——尼尔森十大可用性原则
交互设计原则和理论2——七大定律
国外设计团队的高频设计工具与协作工具
16个表单优化技巧
网页端表格设计指南
怎样提高注册登录流程的交互体验
不可错过的2019设计趋势
HTML 固定宽度改为响应式布局需要怎么做 不要用固定宽度属性来描述元素,改用百分比,这样元素的宽度就是父元素的百分比,这是响应式布局最基本的技巧。
采用响应式布局,需要注意以下几点:第一,用百分比给元素设定大小;第二,不要对元素进行绝对定位;第三,写css时用上@media媒体查询技巧。bootstrap是响应式布局做得不错的前端开发工具,有兴趣可以学习一下。
随着终端萤幕尺寸的种类越来越多,如果针对每一种尺寸都独立开发一个页面的话,这样的开发成本将会变得非常高,响应式布局就成了解决这一问题的有效途径。当然,深层次的响应式布局应该是贯穿前端和服务端的。
android表格布局怎么固定宽度 android:layout_width="100dp"
这样的话还是用线性吧,
然后把它们的权重设为同一
个值,还有就是要会灵
活使用而已巢状
bootstrap设定了响应式布局,怎么占满宽度
您好,这样:最好在他既有机制上 进行改动,不要打破他的设计理念,我觉得是最好不过的了
比如你可以更改他的栅格数 或栅格宽度,
但是要注意各个装置不同解析度下的效果了。
左边{
width: 240px;
position: absolute;
position: relative;
float: left;
margin: 0;
}
右边{
margin-left: 240px;
position: relative;
}
5响应式布局怎么写
自己写肯定累的半死,还会出现层出不穷的BUG,因为除PC外各种移动装置非常难搞,因此建议你直接使用 Bootstrap框架,这也是大部分前端开发者的首选解决办法,如果你是大公司要开发自己的框架,也可以参考。毕竟这是国际层面上应用最为广泛的响应式框架。各种中文资料文件齐备。
不用bootstrap怎么做响应式布局
禁止响应式布局有如下几步:
移除 此 CSS 文件中提到的设定浏览器视口(viewport)的标签:<meta>。
通过为 container 类设定一个 width 值从而覆盖框架的预设 width 设定,例如 width: 970px !important; 。请确保这些设定全部放在预设的 Bootstrap CSS 档案的后面。注意,如果你把它放到媒体查询中,也可以略去!important 。
如果使用了导航条,需要移除所有导航条的摺叠和展开行为。
对于栅格布局,额外增加 col-xs- 类或替换掉 col-md- 和 col-lg-。 不要担心,针对超小萤幕装置的栅格系统能够在所有解析度的环境下展开。
针对 IE8 仍然需要额外引入 Respondjs 档案(由于仍然利用了浏览器对媒体查询(media query)的支援,因此还需要做处理)。这样就禁用了 Bootstrap 对移动装置的响应式支援。
HTML5中响应式布局怎么弄
步骤1 建立空白的HTML 5模版
首先,我们建立一个空白的模版,程式码很简单,如下所示:
复制程式码
步骤2 增加HTML 5新标签 HTML 5中新增加了不少标签,如:
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
在页面模版中,我们需要确保每个区域都能正确地对齐,因此需要使用HEADER、 NAVIGATION、 CONTENT、 SIDEBAR和Footer这些标签。程式码如下所示:
复制程式码
读者可能留意到这里使用的div id=”wrapper”,这个是稍候用来做meida query的时候调整全域性CSS样式调整用的 步骤3 往HTML 5标签中增加程式码
1)首先往标题中增加如下程式码:
Simple HTML5 Template
复制程式码
2)往导航标签中新增如下程式码,这样很方便地构件了一个简单的页面分类导航:
Home About Parent Page Child
One Child Two with child Child One Child
Two Child Three Child Three
Contact
复制程式码
3)使用标签来描述每一个要展示的内容实体,比如要展示的是多篇文章列表,其中的每一篇文章的具体内容就可以使用标签了。如下程式码所示:
This is a title for post
Richard KS 20th March 2013 Tutorials HTML5, CSS3
and Responsive 10 Comments Lorem
Ipsum is simply dummy text of the printing and typesetting industry
Lorem Ipsum has been the industry's standard dummy text ever since the
1500s
复制程式码
4)新增标签 HTML5提供的元素标签用来表示当前页面或文章的附属资讯部分,可以包含与当前页面或主要内容相关的引用、侧边栏、广告、nav元素组,以及其他类似的有别与主要内容的部分。
根据目前的规范,元素有两种使用方法:
被包含在中作为主要内容的附属资讯部分,其中的内容可以是与当前文章有关的引用、词汇列表等。
改成响应式布局,支援手机
推荐你使用bootstrap这个自适应框架,引入bootstrapCSS档案,直接呼叫已经写好的class,就能实现自适应,详情参考ranyouranqiguolu的网页原始码!
中table列怎么固定宽度
不要使用百分比,就可以 如果不使用css style,就是width=150(以此类推),
响应式布局
1024
一、静态布局(Static Layout)
即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位。
1、布局特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见与pc端。
2、设计方法:
PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;
移动设备:另外建立移动网站,单独设计一个布局,使用不同的域名如wap或m。
在移动端开发中采用静态布局的两种方式:
(1)在viewport meta标签上设置width=320,页面的各个元素也采用px作为单位。通过用JS动态修改标签的initial-scale使得页面等比缩放,从而刚好占满整个屏幕。(见前端开发-web app 变革之rem)
(2)设在viewport meta标签上设置content"width=640,user-scalable=no,页面的各个元素也采用px作为单位。由于640px超出了手机宽度,浏览器会自动缩小页面至刚好全屏。
优点:这种布局方式对设计师和CSS编写者来说都是最简单的,亦没有兼容性问题。
缺点:显而易见,即不能根据用户的屏幕尺寸做出不同的表现。
二、流式布局(Liquid Layout)
流式布局(Liquid)的特点(也叫"Fluid") 是页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变。代表作栅栏系统(网格系统)。
网页中主要的划分区域的尺寸使用百分数(搭配min-、max-属性使用),例如,设置网页主体的宽度为80%,min-width为960px。也作类似处理(width:100%, max-width一般设定为本身的尺寸,防止被拉伸而失真)。
1、布局特点:屏幕分辨率变化时,页面里元素的大小会变化而但布局不变。这就导致如果屏幕太大或者太小都会导致元素无法正常显示
2、设计方法:使用%百分比定义宽度,高度大都是用px来固定住,可以根据可视区域 (viewport) 和父元素的实时尺寸进行调整,尽可能的适应各种分辨率。往往配合 max-width/min-width 等属性控制尺寸流动范围以免过大或者过小影响阅读。
这种布局方式在Web前端开发的早期历史上,用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常用布局方式,但缺点明显:主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。因为宽度使用%百分比定义,但是高度和文字大小等大都是用px来固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”),显示非常不协调。
三、自适应布局(Adaptive Layout)
自适应布局的特点是分别为不同的屏幕分辨率定义布局,即创建多个静态布局,每个静态布局对应一个屏幕分辨率范围。改变屏幕分辨率可以切换不同的静态局部(页面元素位置发生改变),但在每个静态布局中,页面元素不随窗口大小的调整发生变化。可以把自适应布局看作是静态布局的一个系列。
1、布局特点:屏幕分辨率变化时,页面里面元素的位置会变化而大小不会变化。
2、设计方法:使用 @media 媒体查询给不同尺寸和介质的设备切换不同的样式。在优秀的响应范围设计下可以给适配范围内的设备最好的体验,在同一个设备下实际还是固定的布局。
四、响应式布局(Responsive Layout)
随着CSS3出现了媒体查询技术,又出现了响应式设计的概念。响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果,对CSS编写者而言,在实现上不拘泥于具体手法,但通常是糅合了流式布局+d性布局,再搭配媒体查询技术使用。——分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。即:创建多个流体式布局,分别对应一个屏幕分辨率范围。可以把响应式布局看作是流式布局和自适应布局设计理念的融合。
响应式几乎已经成为优秀页面布局的标准。
1、布局特点:每个屏幕分辨率下面会有一个布局样式,即元素位置和大小都会变。
2、设计方法:媒体查询+流式布局。通常使用 @media 媒体查询 和网格系统 (Grid System) 配合相对布局单位进行布局,实际上就是综合响应式、流动等上述技术通过 CSS 给单一网页不同设备返回不同样式的技术统称。
layui框架是响应式的,Layui 是一款采用自身模块规范编写的国产前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发。
更多是为服务端程序员量身定做,无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切所需要的元素与交互。
以手机、平板等移动设备为平台的浏览行为变得越来越平常,甚至有些人叫嚣PC将死。虽然说的有些夸张,但让你的网站布局能够兼容PC和移动设备这些需求变得越来越重要。这种网页布局就是“自适应布局”(有人喜欢把“Responsive layout”直译成‘响应式布局’,本人觉得‘自适应布局’更本土化)。这种布局的特点是使用CSS媒体查询语句(@media screen and () ),能根据页面宽度,让页面布局自动做相应的调整,而不是采用传统的做法,几种不同的尺寸就做几个相适应的页面。
今天要说的是自适应布局技术中的一个难题,就是,如何让table元素也能表现出自适应性。按HTML5的说法,table是一个不鼓励使用的HTML标记,但现实工作中,我们避免不了的偶尔会用到它。那么,怎样让一个传统的表格也表现出自适应性呢
网上有很多种解决方案,最常见的是配合JavaScript。css-tricks里给出了一个用纯CSS实现的,但它需要将一些业务数据写在CSS里。而本文这将提到的一种方法也是用纯CSS实现表格的自适应布局,而且CSS只负责表现,不牵涉业务逻辑和数据。
查看演示
假设一种需求,用一个表格来展示付款数据。下面是我们使用的表格和数据:
01
table
02
thead
03
tr
04
th支付/th
05
th日期/th
06
th金额/th
07
th周期/th
08
/tr
09
/thead
10
tbody
11
tr
12
td data-label=
支付
支付 #1/td
13
td data-label=
日期
02/01/2015/td
14
td data-label=
个人在工作中碰上如题问题,一个数据量非常繁杂的报表需要展示在网页中,如何处理?
首先,讲一个很重要的屁话:
好,假定沟通完依然存在非常多列表格,那么以下原则可以作为参照:
- 包容显示,增加横向scrollbar
(包容显示建议加上固定某些关键行和列的功能,以免刷到后面不知所云)
- 动态显示,增加对列显示/隐藏的控制
- 响应式,检测不同屏幕以显示不同项目
- 数据类:长的数据可以用缩写的方式,或保留较少小数位,鼠标悬浮时再用tooltip来展示
- 标题类:行标题或者列标题可以用倾斜的方式来节省列空间
- 内容类:有的内容可以用缩写辅助以颜色的方式来显示,同样达到效果
- 相关多行显示:将相关内容展示在同一列中
(非常实用,原则上依然是用增加行空间的方式来节省列空间。但是由于同一列的相关性,有时候反而比原来分列在易读性上更强。如:姓名、性别和年龄展示在同一个列中,称为用户列。)
在这种情况下,依然可以通过折叠次要信息来节省行的空间。
以上部分思考部分整理自ux stackexchange 的问答
1、上面表格内容只是折行而已,由于内容很少,而且周围空间足够,没有影响阅读。
2、响应式本来就是避免出现横向滚动条,还要手动拖拉滚动条查看被遮挡内容这才不是响应式。
所以 折行的内容你还觉得太多的话,一般就是隐藏掉,用另一个更简短的内容替换显示
这有个bootstrap的很简单的表格,开始标题和内容是平行的,然后缩小一点窗口变成上下格式了,再缩小到手机尺寸,内容完全隐藏只剩标题了。基本都是这个套路,比如你这个表格interner Explore 40这种你觉得堆起来还是太多了,可以隐藏掉,换一个IE40替代。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)