CSS中的滑动门技术研究

2016-02-19 14:32 7 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的CSS中的滑动门技术研究懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果。根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素。在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用。

标签导航栏就是其中的一个例子。过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式。现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来。你也许知道CSS可以用来“驯服”无序的列表,或许你还曾经看到过这种样式的标签列表:

如果我们想用和以上类似的标记,将导航标签变成这种样式,该怎么办呢?

经过简单的设计,我们是可以做到的。

    创新于何处?

我见过的许多基于CSS的导航标签大都具有一类的特征:矩形的色块,也许仅仅是一个轮廓,对于当前选中的标签则没有边框,标签在鼠标指针游至其上时改变颜色。这难道就是CSS所能给我们的全部吗?一连串的小盒子和单调的色彩吗?

在CSS被广泛采用之前,我们已经看到许多标签导航设计中的创新之处。独创的外形,熟练的色彩混合,以及对真实世界中许多物理接口的模仿。但是这些设计往往过分依赖于经过复杂制作、带有文本的图像,或被包装成若干嵌套的表格。修改文本或改变标签的顺序则需要一个复杂的过程。文本的伸缩更是不可能的,或给页面的布局极大的影响。

纯文本的导航栏比起文本即图像的导航栏更具有持续使用性和更快的载入速度。同样,我们甚至可以为每一个图像加上alt属性,对于弱视者,纯文本更可以自由的改变大小。不足为奇的是,基于纯文本的导航栏,并加以CSS样式,又重新回到Web设计中来。但是,大多数基于CSS的导航栏设计,至今为止仍然是毫无意义的。一种最近被采用的技术(例如CSS)可以让我们做的更好,同样不失先前提到的那些表格和图片标签的效果。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)    滑动门技术

美观的工艺,真正灵活的接口组件,并根据文本自适应大小,我们可用两个独立的背景图像来创造它。一个在左边,一个在右边。把这两幅图像想象成两扇可滑动的门,它们滑到一起并交迭,占据一个较窄的空间;或者相互滑开,占据一个较宽的空间,就像下图所显示的那样:

在这个模型中,一个图像掩盖住另一个图片的一部分。假设我们放置一些独特的内容在每个图像的周围,例如标签的圆角,我们并不希望上面一副图像完全的遮蔽住下面一副。为了防止这种情况的发生,我们可以将上面一副图像(此例中的左边那幅)控制的尽可能的窄。但仍然要保证一定的宽度来显现标签一侧的独特性。如果外部是圆角,我们就应该控制上面一副图像和它的弧线部分具有一样的宽度。

如果目标在大小上增长,并超过了以上所显示的宽度,归咎于文本大小及字体的改变,图像会被拉开,产生不美观的间隙。我们需要判断的是,预测这种可扩展的量将有多大。如果在浏览器中改变字体的大小,目标又会如果增长呢?实际来说,我们至少应该估算到字体大小增长至300%的情况。背景图像也得适应这种增长。对于以上的例子,我们将下面(即右边)的图像设为400*150像素,上面的设为9*150像素。

在头脑中,始终要有这样的认识:背景图像只是显示一个可供内容填充的有效空间(即内容区域和padding,称为doorway)。这两幅图像始终和各自外部的边角相锚定。背景图像的可见部分和在一起即形成了一个具有这种标签形状的空间(doorway):

如果标签被撑大,图像即滑开,doorway变宽,图像的也将被显露的更多:

此例中,我在photoshop中制作两个平滑,细的3D标签图像,如文章开头所显示的那样。对于其一,内部明亮,边框暗淡些,用来表现当前选中的标签。将这种技巧模型应用于左右两幅图像中,我们需要扩大标签图像覆盖的区域,将它裁剪成两部分:

同样的方式将应用到被称为“当前”的标签中。一旦我们完成了这四幅图像(1, 2, 3, 4),我们就可以开始用标记和CSS来制作我们的标签了。 1 2 下一页

 

    收尾工作

敏锐的观察者也许会在上一例注意到白色的标签角落。这些不透明的角用来防止下面的图像透过上面的一副。理论上,我们可以尝试使用部分背景图像来适应标签的背景。但是我们的标签会在高度上增长,尝试通过移动背景颜色,背景图像就会相对变矮。代替的办法是,改变图像,将标签的角落设为透明。如果弧线是反锯齿的,我们在其边缘使用较平均的背景色彩。

现在,角落已经变成透明色,左边的图像将透过右边图像的角落。为了补偿,我们为表单项加入和左边图像宽度相吻合的padding(9px)。既然已经为表单项加入了padding,我们还需去掉同样的宽度以达到文本的居中(15px-9px=6px):

#header li { float:left; background:url("right.gif") no-repeat right top; margin:0; padding:0 0 0 9px; }#header a { display:block; background:url("left.gif") no-repeat left top; padding:5px 15px 4px 6px; }

仍未结束,因为加入了9个像素的padding使左边图像与标签的左边之间产生了一段空白。现在,左侧与右侧,可见“doorway”的边缘接在一起,我们再不需要将左边图像保持在上方。于是,交换两幅背景图像的顺序,相反过来。同样交换“当前”标签中使用的两幅图像:

#header li { float:left; background:url("left.gif") no-repeat left top; margin:0; padding:0 0 0 9px; }#header a, #header strong, #header span { display:block; background:url("right.gif") no-repeat right top; padding:5px 15px 4px 6px; }#header #current { background-image:url("left_on.gif"); }#header #current a { background-image:url("right_on.gif"); padding-bottom:5px; }

完成这些后,我们到达了效果4。要注意的是,透明的角落在标签的左侧产生了一段不能点击的无效区域。这个区域在文本以外,但仍然是可以察觉到的。在标签的两边都使用透明的图像是没有必要的。如果我们不希望产生这种无效的区域,那么我们必须使用在标签后面使用颜色,然后用这种颜色来代替标签角落的透明图像。现在我们仅保持这种透明角落。

对于剩下的问题,我们将一次性完成全部的修改:加重标签文本,将普通标签中的文本改为棕色,“当前”标签文本改为深灰色,去掉链接的下划线,最后将悬停文本色彩改为同样的深灰色。经过一系列的改变,我们将看到目前为止的效果5。

    一致性的解决

在效果2之后,我

们公认的一个问题就是在IE5/Mac浏览方式下,每个标签延伸并占据了整个浏览器的宽度,以致标签垂直的堆在了一起。这不是我们所希望的。

在大多数的浏览器中,浮动一个元素会有收缩,收缩最小至它所包含内容的大小。如果一个浮动元素包含一幅图像或其本身即图像,便会收缩至图像的宽度。如果仅仅包含文本,那么将会收缩至最长的,不可被顶开的那文本的宽度。

一个问题出现在IE5/Mac中的图片中,当一个auto-width的块对象元素被插入到一个浮动的元素中时。其他的浏览器仍旧将浮动缩小至最小,而无视容器内的块对象元素。但IE5/Mac并不按照这种情况,相反它将浮动和块对象元素扩展至尽可能的宽度。为解决这个问题,我们将锚链同时浮动起来,但仅仅对于IE5/Mac,以免放弃其他的浏览器。首先,我们为锚链设定浮动规则。然后,我们使用反斜杠注释法来隐藏这种规则,让它仅仅对IE5/Mac生效,而无视其他的浏览器:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

#header a { float:left; display:block; background:url("right.gif") no-repeat right top; padding:5px 15px 4px 6px; text-decoration:none; font-weight:bold; color:#765; }/* Commented Backslash Hack hides rule from IE5-Mac /*/#header a {float:none;}/* End IE5-Mac hack */

现在IE5/Mac浏览器将按我们所期望的那样来显示标签,看效果6。对于非IE5/Mac的浏览器什么都不需要改变。注意到IE5.0/Mac的一系列解释上的bug在IE5.1中解决。因此,滑动门技术在5.0版本中所遭遇的问题超出了hack的限度。既然升级到IE5.1/Mac已不成难题,OS 9 Macs/IE5.0的占有率应逐渐缩减至很低。

    举一反三

我们刚刚演练了滑动门技术,用纯文本和无序列表来创造导航标签,加以少量的样式。它的装载速度快,具有可维持性,并且文本的大小可以在不破坏外观的情况下进行较大的伸缩。不必我们再重申在创造复杂样式的导航栏中,滑动门技术所表现出来的弹性了。

只有想不到,没有做不到。最终效果向我们展示了一例,但我们设计不可能因此而被限定死。

在某些场合,标签不一定是对称的。我很快就制作了这种标签的第二个版本,也有阴影3D的样式,有角的边缘,和具有特色的左边部分。依据第二个版本,我们甚至可以交换左右两幅图像的位置。以这种细致的布局和灵巧的图像控制,我们可以去掉按钮的下边框以便标签图像更好的去适应背景,如第三个版本所显示的那样。如果你的浏览器支持多个样式表的切换,你甚至可以靠它在多个版本的导航栏之间自由切换。

仍有许多我们没有提到的其他的效果。快速的提一下,我改变鼠标悬停的文本色彩,但是真个图像可以替换掉以创造出更有趣的变换效果。即使标记中两个嵌套的HTML元素,也可以用CSS来达到一些我们还未想到的效果。我们在此例中创造的仅仅是水平的标签栏,但滑动门亦可应用于许多其他的情形。阁下觉得如何呢?

上一页 1 2

来源:https://www.tulaoshi.com/n/20160219/1607165.html

延伸阅读
标签: PHP
  文/朱先忠编译     一、简介 很幸运,PHP 5.0中引入了对象重载技术。本文将探讨对于方法__call(),__set()以及__get()进行重载的可能性。在对重载理论作简单介绍后,我们将通过两个例子直奔主题:第一例,实现持续存储类;第二例,找到一种实现动态的getter/setter的方法。 二、什么是对象重载? ...
导言 多态(polymorphism)一词最初
标签: autocad教程
关键字: AutoCAD 2009 Photoshop手绘 AutoCAD对象 中望CAD AutoCAD三维造型介绍了PDM系统的集成框架。详细地阐述了基于PDM实现应用集成的3个层次,并对PDM系统集成的一般步骤作了简要的说明。在此基础上,列举了UGNX2与PDM系统集成的部分实例。 0 引言 随着企业信息化进程的发展,企业所使用的应用软件越来越多,信息集成的深...
标签: autocad教程
关键字: AutoCAD 2009 Photoshop手绘 AutoCAD对象 中望CAD AutoCAD三维造型逆向工程是将实物模型转变为CAD模型的数字化技术,针对其关键技术——产品数字化、数据处理和曲面重构等进行了研究,并就未来的发展进行了探讨。 0 前言 逆向工程技术(reverse engineering,RE),又名反向工程、反求工程,也可以叫做测量造型。逆向...
标签: Java JAVA基础
  引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的早期,主要使用的技术是CGI﹑A...

经验教程

114

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部