ayx 新一代Web弹窗组件。
gzip压缩版仅 13.5kb,非常小巧。
第一步:引入 layx.css / layx.min.css
<link href="layx.min.css" rel="stylesheet" type="text/css" />
第二步:引入 layx.js / layx.min.js
<script src="layx.min.js" type="text/javascript"></script>
第三步:打开一个窗口试试
layx.html('str','字符串文本','Hello Layx!');
https://gitee.com/monksoul/LayX
. 流式定位
这是网页元素默认的定位方式,网页元素按照其HTML标签的先后顺序,在网页内依次显示,就像液体一样“流动”,所以称为“流式定位”,这种方式将所有网页元素的默认显示方式分为以下几种类型:
块级元素(display: block): 可以设置宽度,默认宽度为100%,但不管多宽都会独占一行,多个块级元素按从上到下的顺序纵向显示,默认显示为块级元素的包括:段落(p)、层(div)、表单(form)等。
内联元素(display: inline): 不会独占一行,可以多个元素共享一行,按从左至右的顺序横向显示,默认显示为内联元素的包括:文本标签(label)、链接(a)等。
行内块元素(display: inline-block): 这种定位方式兼具块级元素和内联元素的优势,既可以像块级元素一样设置宽度和高度,又可以一行放置多个,默认显示为内联元素的包括:图片(img)、输入项(input)、多行文本(textarea)等。
可以通过设置HTML元素的CSS样式的display属性来改变元素默认的流式定位方式,例如将层(div)元素设置为行内块元素后,就可以跟文本标签(label)、图片(img)等元素放在同一行显示,不再独占一行。
流式定位存在一些问题,主要包括:
l 块级元素很难被有效利用起来,因为其独占一行的特性,不能一行显示多个。
l 内联元素无法设置宽度、高度和垂直方向边距,不好精确控制元素大小和显示位置。
l 内联元素之间水平方向会因为代码中的空格、换行等产生间隙,垂直方向存在默认的底部间隙,这给水平布局带来额外的麻烦。
2. 浮动定位
浮动定位会让元素脱离原来的标准文档流浮动起来,直至它的外边缘遇到父元素的内边缘或者另一个兄弟浮动元素的外边缘。
任何HTML元素都可以设置为浮动,可以通过设置HTML元素的CSS样式的float属性来设置具体的浮动方式,可以选择向左浮动(float: left)或向右浮动(float: right)。
相对于网页默认的流式定位,浮动定位有以下优势:
l 多个块级元素可以共享一行。
l 内联元素可以设置宽度和高度。
l 元素之间的空格、换行不影响元素的显示位置。
浮动定位最初被设计出来是为了实现文字环绕图片显示的效果,但由于其上述优势,后来大家也用浮动定位来设置更多网页元素的位置,代替默认的流式定位,也是TaskBuilder默认的组件定位方式。
不过,浮动定位也有一些问题,不是所有的场合都适合,大家根据需要选择,这些问题包括:
l 居中对齐问题:浮动定位不太好实现垂直和水平居中对齐。
l 父元素的高度塌陷问题:如果元素不浮动,会自动撑开父元素的高度,浮动后,由于浮动元素已经脱离原来的标准流,如果父元素没有设置高度,且父元素中没有其他非浮动元素时,会造成父元素的高度塌陷(高度变成了0)。
3. 坐标定位
坐标定位是指为HTML元素设置上下左右的偏移量来确定其具体的显示位置或大小,通过设置元素CSS的position属性,可以选择坐标定位的具体方式,包括:
相对定位(position: relative):即相对于元素在流式定位时的正常位置进行定位,您可以通过 top、right、bottom、left 这 4 个CSS属性来设置元素相对于正常位置的偏移量,在此过程中不会对其它元素造成影响。
相对定位示意图
绝对定位(position: absolute):即相对于第一个非静态定位的父级元素进行定位,可以通过 top、right、bottom、left 这 4 个属性来设置元素相对于父级元素位置的偏移量。如果没有满足条件的父级元素,则会相对于浏览器窗口来进行定位。元素使用绝对定位后,其他标准流元素会填补它的位置。绝对定位可以通过设置元素CSS样式的left和top属性来精确控制元素的显示位置,再设置right或bottom这两个CSS样式,实现元素的宽度或高度根据父元素的宽度和高度动态设置和变化。
绝对定位示意图
固定定位(position: fixed):即相对于浏览器的窗口进行定位,可以使用 top、right、bottom、left 这 4 个CSS属性来定义元素相对于浏览器窗口的位置。使用固定定位的元素无论如何滚动浏览器窗口,元素的位置都是固定不变的。
粘性定位(position: sticky):它是相对定位和固定定位的结合体,能够实现类似吸附的效果,当滚动页面时它的效果与相对定位相同,当元素要滚动到屏幕之外时则会自动变成固定定位的效果。用粘性定位很容易实现元素置顶显示的效果。
4. 表格定位
顾名思义,表格定位就是用表格来实现网页内容的定位,先绘制一个多行多列的表格,并设定表格各列的宽度和各行的高度,然后在表格的单元格里插入相关网页元素,最终实现这些元素的位置定位。
这种定位方式比较适合可以将页面内容清晰明确地划分为多行多列的场景,例如各种业务单据和数据报表等。
有两种方式可以实现表格布局: HTML Table(<table>标签)和CSS Table(display:table 等相关属性)。HTML Table是早期网页设计采用的表格定位方式,由于其渲染性能较低,且有些界面效果较难实现,用的人已经比较少了,现在推荐使用CSS Table,能实现一些HTML Table做不到的效果。
目前,TaskBuilder只是在报表设计器里集成了一个第三方的表格插件,在前端tfp页面设计器里,还没有提供表格定位相应的容器组件,未来会提供。(现有的可编辑表格和数据表格不是用来为其他组件提供定位的,所以不能算作是表格定位的容器组件)
5. 弹性定位
弹性定位又叫弹性布局,这种定位方式最大的特点就是可以让子元素的大小可以根据父元素的大小自动扩张或收缩,从而可以做到自动适应不同终端的屏幕尺寸,或者在用户改变浏览器窗口大小时自动伸缩。
这种定位方式需要先将一个父元素的CSS属性display设置为flex,然后该元素里的子元素即可实现弹性定位。
采用弹性定位的容器元素可以设置以下CSS样式:
元素排列方向(flex-direction):用来设置子元素的排列方向,有四种方式可以选择:从左到右显示(row)、从右到左显示(row-reverse)、从上到下显示(column)、从下到上显示(column-reverse)。
元素水平对齐方式(justify-content):用来设置子元素在水平方向的对齐方式,可以选左对齐(flex-start)、右对齐(flex-end)、居中对齐(center)、两端对齐(space-between)和等距对齐(space-around)。
元素垂直对齐方式(align-items):用来设置子元素在垂直方向的对齐方式,可以选顶部对齐(flex-start)、底部对齐(flex-end)、居中对齐(center)、基线对齐(baseline)、自动伸展(stretch)。
内容整体对齐方式(align-content):当有多行子元素时,可以用该属性设置全部子元素整体的垂直对齐方式,包括自动拉伸(stretch)、在容器的顶部排列(flex-start)、在容器的底部排列(flex-end)、在容器内居中排列(center)、均匀分布,上下靠边(space-between)、均匀分布,每行等距(space-around)。
元素是否自动换行(flex-wrap):用来设置子元素是否自动换行。
弹性定位容器内的子元素可以设置以下CSS样式:
扩展量(flex-grow):必须参数,用来设置当前元素相对于其他元素的增长量,默认值为 0,即如果存在剩余空间,也不自动放大。
如果所有元素的扩展量都设置为1,将等分剩余空间。如果一个元素的扩展量设置为2,其他元素都为1,则前者占据的剩余空间将是其他项的2倍,如下图所示:
收缩量(flex-shrink):必须参数,用来设置当弹性容器空间不足时,该元素相对于其他元素的收缩量,默认值为 1。如果所有元素的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个元素的flex-shrink属性为0,其他元素都为1,则空间不足时,前者不缩小。
基准长度(flex-basis):必须参数,元素的基准长度定义了父容器在分配多余空间之前,当前元素占据的主轴空间(main size,如果是横向排列,则指父容器在水平方向的空间,如果是纵向排列,则指父容器在垂直方向的空间)。浏览器根据这个属性,计算主轴是否有多余空间。合法值为 auto(默认值,表示根据其他情况自动伸缩),或者以具体的值加 "%"、"px"等单位的形式,表示该元素将占据固定空间。
显示顺序(order):属性用来设置元素在容器中出现的顺序,您可以通过具体的数值来定义元素在容器中的位置,默认值为 0。下图所示的四个普通的面板组件,在弹性面板里从左至右的正常插入顺序是panel1、panel2、panel3、panel4,但通过设置这四个面板的显示顺序,将panel1和panel4的显示位置进行了调换。
对齐方式(align-self):该属性允许您为某个特定的元素设置不同于其它元素的对齐方式,该属性可以覆盖父容器组件(弹性面板)里的垂直对齐属性的值。该属性的可选顶部对齐(flex-start)、底部对齐(flex-end)、居中对齐(center)、基线对齐(baseline)、自动伸展(stretch)。
由于弹性定位的自动伸缩特性,且易于实现子元素的水平和垂直对齐,目前很多主流的前端UI框架都大量地采用了该定位方式。
果你正在寻找能够吸引人眼球的高素质顶部悬浮菜单设计,那么这12个导航设计案例值得你一看~
导航是网站和 APP 当中必不可少的组成部分,它们引导用户抵达目标,发现内容。为了让用户能够更加方便地使用导航,许多网站和 APP 选择使用了顶部悬浮导航,无论浏览到哪里,都能轻松使用它跳转到其他地方。虽然有的用户并不喜欢这个一直占据屏幕空间的小控件,但是它确实提供了无与伦比的便捷性。
如果你正在寻找能够吸引人眼球的高素质顶部悬浮菜单设计,那么今天的文章一定不要错过,这12个导航设计绝对不会让你失望。
虽然我并不懂法文,这个网站并不难使用和理解。
在页面的顶部你会看到包含文本的 LOGO 和导航链接,当你向下滑动的时候,LOGO 中的文本消失,而导航上移。这样的设计占据空间并不大,对于承担繁重工作量的菜单而言,这是相对理想的选择。
不过,如果你觉得这样还占空间的话,可以加入过渡动效,然后让链接的文本变化为小图标,这样的技术也很成熟。
SEJ 是一个很棒的博客,而它的导航设计也算得上是独树一帜,因为在别的地方几乎看不到相同的设计。
当你访问网站首页的时候,你会看到导航下的轮播图中嵌入了网站的 LOGO,导航栏左侧有 LOGO 和注册按钮构成的动态图片。当你向下滚动的时候,整个导航向右移动,在左侧出现网站 LOGO,整个设计非常动感,也非常的炫酷。
这样的设计无疑是经过仔细斟酌,并且确实有用的,兼顾到了品牌的设计和导航的功能性。
在整个列表当中,AWD Agency 的侧边栏式导航是为数不多的几个案例之一。
只需要点击左上角的箭头就能将侧边栏隐藏起来,纵向上空间更大,侧边栏导航所能承载的内容并不会比顶部导航更少,而且在兼容移动端上一点都不含糊。
这个设计的优点在于可控性上非常不错,处理得干净利落,也很直接。
我从来没有用过 Graz Secrets 的 iOS APP,但是看了他们的官网之后,感受到他们在用户体验上的独特想法,对此就很有兴趣了。
网站的顶部导航设计很有特色,通过小边框来和下面的页面部分来区分,最有特色的是导航栏最中间的位置,一个风格独特的「立即下载」的按钮。
当你向下滚动的时候,整个导航会很好的融入整个布局。
Grain & Mortar 是我去年见过的最干净的设计机构的网站。
许多网站会为了流行和时尚而使用一些图形、动画甚至图片,这些元素常常会让人感到困惑,但是 G&M 的网站不是这样。这个网站中没有多余的元素,但是最重要的是,网站的顶部悬浮导航的设计。
网站首屏使用的是视频背景,为了更好的融入感,导航条目悬浮在前景,这无疑带来了沉浸式的体验。当页面向下滚动的时候,通过转场动画,导航出现了一个白色的底,通过一条浅灰色的线,和页面的内容部分进行了区分,并且固定悬浮在顶部。
Jorge Rigabert 同样是一个非英语类的网站。这个网站同样采用了侧边栏导航,由于网站采用了类似单页这样的设计,导航栏中的条目指向到页面中不同的位置和模块。当你滚动页面的时候,左侧导航栏会随之变化,为你高亮展示出所处的位置。页面的布局算得上是中规中矩,而导航栏在指引性上的设计,可谓是出彩。
作为一个作品集网站,Daniel Filler 的网页设计也非常的讨喜,它和前面 G&M 的导航设计有许多相似的地方。打开首屏的时候,导航底部和背景 Banner 图很好的融入到一起,页面的左上角是巨大的 LOGO。
当你向下滚动的时候,导航消失随后又出现,这个时候它拥有了一个半透明的底部背景,巨大的 LOGO 部分显示,融入导航,导航栏的条目则从最初的右边挪到了靠左的位置。整个设计在体验上总体是无缝顺畅的,最让人印象深刻的设计在于,常常出现在网页右下角的「回到顶部」的箭头按钮,被放置在顶部导航的最右边,非常的顺手,颇为创新。
在我所看到的诸多酒店类的网站当中,Novotel Hotels 的网站导航设计绝对是最特殊的那款。
网站的许多导航功能并没有直接摆出来,而是隐藏到了左上角的汉堡图标当中。当你向下滚动的时候,预订筛选菜单会随着滚动靠近顶部导航,然后粘在上面,悬浮置顶。方便用户随时随地地搜索和筛选。
FHOKE 这个网站的导航设计也不算复杂,实际上就是LOGO 和右上角的菜单按钮,它是没有底色,并且随着页面内容的背景颜色变化而自动匹配对比强烈的黑色或者白色。这样的设计让导航无缝地融入到整个页面的布局当中,并且让用户可以随时便捷地点击导航中的内容。
对于 Brit + Co 的导航设计,你会发现几个非常不错的优点。当你向下滚动浏览的时候,悬浮置顶的导航栏会自动隐藏起来,这样会节省空间,并且这种设计也很直接。当你向上回滚页面的时候,导航会出现。
而搜索功能也设计得非常巧妙,当你点击搜索按钮的时候,搜索框会出现在导航下方,足够长,足够明显的输入框,比什么都好。
打开 Coloud 网站,向下滚动的时候,你会注意到导航栏的边户:它变窄了,变小了,甚至不会显示公司的 LOGO 了。这看起来很疯狂,但是谁会因为向下滚动浏览而忘记所处的网页呢?当然不会。导航这样处理,其实更加方便,缩小,保持存在感,提升定位感和体验。
最后这个案例绝对是最返璞归真的设计方案。没有滚动的标识,没有搜索框,没有视觉障碍,没有动效,它就是在右上角上四个小小的链接,黑色,对比强烈,始终存在,节省空间,随时可以点击。对于极简风的网页而言,这样的设计效果是很不错的。
原文作者 : JAKE ROCHELEAU
译者/编辑 : 陈子木
译文地址:https://www.uisdc.com/12-fixed-sticky-navbars
本文由 @陈子木 授权发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自 Pexels,基于 CC0 协议
*请认真填写需求信息,我们会在24小时内与您取得联系。