众妙之门——精通CSS3(txt+pdf+epub+mobi电子书下载)


发布时间:2021-01-22 20:29:22

点击下载

作者:[德]Smashing Magazine 著

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

众妙之门——精通CSS3

众妙之门——精通CSS3试读:

作者简介

德国知名博客Smashing Magazine。长期关注Web设计与开发方面的热点。来自全球的顶级设计师和开发人员都在Smashing Magazine上发表文章。

本书特色● 独具特色的Smashing Magazine精品读物● 来自全球各地的顶尖网页设计高手分享经验● 充分体验网页设计的灵活性● 全面揭示CSS3核心知识与应用技巧● 让你大显身手的CSS3高级技巧● 对提升设计从业人员自身水平大有裨益

内容提要

本书所介绍的内容是知名网页设计网站Smashing Magazine上关于CSS专题的知识及经验的分享。书中的文章都是全球知名设计师的精华总结,可以帮助网页设计师们充分体验网页设计的灵活性,并使用那些令人炫目的CSS技术。本书共分为14章,包含了许多资深网页设计师提供的各类有用的技术、技巧和指南,内容涉及CSS布局、响应式网页设计、CSS字体排版、CSS跨浏览器兼容性及其他的高级CSS技术。

本书最大的价值在于其结合大量实例,以生动的方式,详细阐述了CSS的相关知识。相信广大读者读完这本书之后,一定会有一种相识恨晚的感觉。

序言

许多网页设计师不能很好地接受CSS3或HTML5之类的新技术,究其原因,就是他们认为这些技术对跨浏览器还缺乏全面的支持。很多人都在抱怨这种情况使得他们在工作中束手束脚、裹足不前。

但全面地对跨浏览器提供支持的技术并未真正地出现,当然也就不可能引领我们进入一个全新的网页时代,这使得我们的设计在每一个网页浏览器里看上去都相差无几。并且,一些用户仍然愿意使用老的浏览器,有一些用户还会禁用浏览器的JavaScript和图片。有时候,我会觉得我们在设计中并不是真的缺少提供跨浏览器兼容的能力,而是我们不愿花精力去学那些可以显著改进我们工作的新技术。

本书正是用来帮助网页设计师充分体验网页的灵活性,并使用现在就能起作用的那些CSS技术。本书分为14章,包含了许多专家提供的各类有用的技术、技巧和指南,内容涉及CSS布局、响应式网页设计、CSS字体排版、CSS跨浏览器兼容性及其他的高级CSS技术。Thomas BurkertSmashing Magazine第1章为什么要使用CSS3和HTML5Vitaly Friedman

近段时间,我们已经注意到许多设计师并不太愿意接受CSS3或HTML5之类的新技术,究其原因,就是他们认为这些技术对跨浏览器还缺乏全面的支持。许多设计师也在抱怨由于缺少了跨浏览器兼容性技术的支持,在实际运用中,会在很多方面感到束手束脚、裹足不前,进而导致很难在工作中充分地展现自己的能力。所以,不少人都希望技术上能有所进步,以唤醒一个全新的网络时代的到来——而其中也满是令人兴奋的机会在等待着我们。大家一直在等待那天的到来,然而现实之中,这却是在“等待戈多”。

就像Beckett经典剧本中的那个令人难忘的角色“戈多”一样,其实全面地对跨浏览器提供支持的技术并未真正出现,也就不可能引领我们进入一个全新的网络时代,令我们的设计在每一个网页浏览器的窗口里看上去都相差无几。如果能意识到这一点,就意味着网络所及之范围,从客户、设计师到开发者,等等,都应当学会调整自己的思考方式,以能够正视当前的网络技术,从而更能够与其未来的发展相适应。

有时候,我们在设计中并不是真的缺少提供跨浏览器兼容的能力,而是我们不愿花精力去学那些可以显著改进我们工作的新技术。这种态度是绝对错误的,如果我们自己不去适应、不去调整,我们最终将被自己现在所掌控的网络技术所抛弃,而我们的前景也将因这种心态而变得暗淡无光。1.1 与时俱进

倘若有任何幻想在此破灭,我也只能深感遗憾。但我们还是要承认这样一个事实:全面支持跨浏览器的新技术的确还没有出现。而一些用户仍然愿意使用老的浏览器,有一些仍在使用那种禁用了JavaScript和图片的浏览器;某些用户还会用怪异的窗口尺寸去浏览网页;还有些用户则不会去安装某种特定的插件。

但这些都没什么关系。

事实上,网页本身就是一个令人头疼的万变载体。我们应该去接受它的这种易变性,而不是试图去限制我们脑海里和设计中各种可用的技术。我们越早地利用新技术进行设计,就会越快地提高新技术的广泛适用性,老式浏览器造成的各种不兼容也将被更快地消除。每一天,都有越来越多的用户在使用更高级的浏览器,我们也真心鼓励他们通过使用这些新的技术而有所转变(如果可以的话)。但也有部分用户可能还无法升级他们的浏览器(这也是我们的设计应该为老式浏览器提供一个基本的最低支持的原因),但我们不能够借此原因就仅仅设计一个可靠的版本,之后就止步不前。

Select[ivizr](http://selectivizr.com/)是目前能实现CSS3的众多工具之一

今天,无论是用CSS3媒体查询(media query)技术去做一个响应式的设计,还是在设计中应用丰富网页的字体排版(typography)(这项技术目前在CSS3中已经得到充分的支持)以及HTML5的视频和音频技术,设计师和开发者可以做很多有意义的事情。并且,现在也已经出现了很多实用的工具和资源供我们使用,不仅可以让我们立即在设计中融合应用这些新的技术,同时还保持了对老式浏览器的良好支持。所以,我们根本没有任何理由不去使用新的技术。

我们要意识到我们就是推动新技术实现跨浏览器支持的人,我们更要鼓励和要求未来的浏览器开发出新的特性,我们拥有这种力量,并且要不断地发展这种力量,因为我们不希望新的技术因为没有得到全面的支持而无人问津。我们应该意识到我们就是那推动历史车轮运转的人,因此,未来的浏览器将支持什么、不支持什么,完全取决于你我!

在未来还会有更多令人激动的事情到来。我们要为未来而设计,也要为今天而设计——确保我们先进的设计作品无论在现代浏览器还是在老式浏览器上都有良好的表现。我们容易犯的主要错误就是紧盯着过去,总是尝试用那些讨厌的hack和很快就要被淘汰的方法去处理问题。

当然我们也可以坚持原有的观念,等着那些老式浏览器慢慢被淘汰,我们也不需要去发掘我们的潜力;但同时我们也调整对新技术的看法,以全新的视角来看待网页,从而了解我们所面对的事实的真相。那就是,我们的设计不可能在每一个浏览器上看起来都是一模一样的,我们的代码也不可能以同样的方式去呈现。这就是我们的底线。

这是24ways网站上Yaili的一个漂亮作品,叫做“My CSS Wish list”(“我的CSS愿望清单”,http://24ways.org/2010/my-css-wish-list)。这类文章推动了网页设计的发展,并鼓励行业进行革新

Andy Clarke在DIBI会议上就曾提及我们刚刚谈论的内容。他的演讲确实鼓舞人心,但是我们也发现,要完成网页标准化的梦想,还有很多的阻碍。因此,在这里我们要把这个问题提出来,并且还要不断地讨论和传递这种重要的想法。让大家明白,这种等待不仅会对我们这些从事网页工作的人造成损失,也会对我们的用户带来不利影响。我们拥有大量的、未被发掘的潜力,能够为商业、用户以及那些有能力使这个复杂、丰富而又强大的新一代网页得以实现的人们带来全面的体验上的提升。1.1.1 对我们的客户而言

这就如同游戏中不同的角色有不同的意义。例如,对我们的客户来说,使用新的技术意味着他们可以得到一个更先进、更独特的精巧设计,而这种设计完全不会受思想的禁锢。然而,这也确实需要我们的一部分客户做出一些可接受的妥协。但至少这种妥协能够让我们协调地、理想地去解决问题。但这种妥协又必须是用户可以接受的,而实际上,使用新技术所带来的大多数的改变根本就不需要用户做出妥协。

在这种情况下,我们的客户就得接受一个同样不言而喻的现实,即承认他们的项目在不同的浏览器上看上去会有所不同。随着移动市场的不断发展,在这一点上客户已经越来越容易能够接受。但一旦到了桌面电脑上,他们可能仍然没有准备好做出这小点儿让步。并且在某些情况下,使用新技术可能会导致项目的价格也会有所调整,这也是客户不愿接受新技术的另一个原因。尽管我们应当主动帮助我们的客户去关注新技术所带来的革新,但随着新技术之门的打开和更多创新技术的应用,以及设计师和开发者对新技术更长时间的倾注和不懈的努力,我们的客户也将逐渐地受到启示。小结● 应该让客户接受网站项目在不同的浏览器中看上去可能有所不

同。● 要为客户提供更多先进的、富于想象的设计。● 使用新技术可能导致客户在项目上花费更多,但也意味着有更高

水准的创新。● 更能够实现客户想要达到的愿景。1.1.2 对用户而言

用户是那种很少会花精力去探讨表象背后事情的人。他们只注重最终结果,对屏幕上那些内容是如何被创造的并不会考虑太多。同样,随着移动市场的发展,他们已经认识到在各式各样的设备之中会有不同的界面呈现。而他们只关心功能和最吸引他们的设计风格——这往往也就是他们关注的极限了。当然了,如果他们也是做设计的人,也许就会有更多的想法。所以,跨浏览器的兼容性问题不会真的让用户感到忧虑,事实上,他们把所有烦恼都留给了我们。

通常,用户只会关注的事情是:网站上某些部分没有像他们期望的那样工作,一步接一步地进行。在大多数情况下,当他们正想向亲戚、朋友或同事展示一些东西,由于突然换了一个设备,网站在不同设备上的差异打断了他们的演示,只有这时,跨浏览器的兼容性问题才会真正地引起他们的注意。但是如果我们正确地做好了我们的工作,这样一种转换就会变得很顺畅——尽管这也是对我们工作的挑战。因此,用户最想要的除了更好的体验之外并无其他。一个普通的用户是不会去检查某个网站在自己电脑上安装的两个不同的浏览器里面,是不是有着相同的圆角或阴影效果。小结● 不同设备之间的用户体验要有较少的潜在干扰。● 全面提升的用户体验。1.1.3 对设计师/开发者而言

作为网页的设计师和开发者,我们也应该和客户一样做出妥协,并且要放弃这样的努力,即在浩瀚如海的平台和设备中,我们的设计必须要有同样精确的展现和体验。对于在这些领域中打拼的许多人来说,这并不是一个容易放弃的想法。但正如上面所提到的,我们正在浪费太多的可以给网页带来革新的潜力。我们本来可以把网页提升到一个新的高度,但我们却因为那些在这个过程中停滞不前的人而放慢了自己的脚步——从而导致我们所有人最终都落在了后面。所以与其把他们看作是单独的受众并分别去迎合他们,还不如认为这就是我们整个群体的局限之所在。

也许我们应该具有一种分别对待并去征服它的心态。图片来自Image Credit(http://www.flickr.com/photos/michaelsgalpert/5071561135/)

这就意味着我们要为渴望达到的目标考虑得更多,但这并不暗示着我们要努力去满足一群人就得放弃其他的人。相反,我们应该采取一种整体对待的方式:既为那些能看到和体验到最新技术的人进行设计,也要为其余的无法接触新技术的人进行设计。如果我们在设计的时候能够提前考虑到后者,写出有意义、简洁的代码后,再对老式浏览器进行专门的调整,其实并不会增加我们多少工作量。我们也得记住,并不是所有人都有权选择他们想使用的浏览器。而如果必要的话,对老式浏览器进行专门调整的工作也可以进行收费。所以,伴随着激动人心的新机遇而来的,可能还有更多实际的收益,同时,我们在那种处处受限的工作中所失去的乐趣也将再次回来。小结● 要承认在各种不同的浏览器中项目的外观会不一样。● 对设计师和开发者而言,新技术带来更加开放的舞台和更少的限

制。● 新技术用更加令人激动和更具创新特点的前景来吸引新的客户。● 针对网站项目的不同受众使用不同的呈现方法。● 由于我们不再像以前那样需要过多的hack和变通方案,我们的工

作量也很可能会更少。1.2 主要的约束因素

如果这种新的方式,或者叫调整过的思考方式,能够跨过浏览器对每一个相关的人产生积极的效果,那我们为什么还在犹豫呢?我们还在等待什么?我们为什么不摆脱领域内存在的这些局限,跳出那些框框架架?接下来的讨论中,我将尝试找出某些一直在约束着我们的主要因素。1.2.1 忧虑因素

害怕失败使得部分人选择驻足观望,图片来自Ben Didier(http://www. flickr.com/ photos/prettyuglydesign/4673681658/)

也许正是因为害怕,我们才一直被束缚着,这是我们必须考虑到的一个主要原因。既然我们在等待神奇的那一天(全面支持跨浏览器兼容性技术)到来的日子里一直是那么舒服,可能就会对尝试新事物怀有一种恐惧心理。这种恐惧也可能是我们不愿去勇敢地面对某些客户,尝试使他们明白网页的应有之义以及他们所需要做出的让步,即对跨浏览器一致性的期望做出让步。打个比方,我们和这些不切实际的期望已经成了“亲密知己”,而不是相信自己能让客户们看到真实的情况。但不管是什么原因造成的,我们都必须面对恐惧,然后继续前进。

为用户带来高质量的作品并维护用户的利益是我们专业人员的责任所在。因为100%跨浏览兼容是不可能的事情,所以必要的时候,我们也要直面客户,这也是我们职责的体现。1.2.2 安于现状的因素

我们应该注意到的另一个主要因素可能是:网页社区中的有些人对现在的设计已经感到很满足了,所以就不愿再去学习新的技术。我们已经厌烦了为了让一切都正常运转,做许多包括测试和编码等等额外的工作,以至于我们很少有兴趣——甚至是没有兴趣,再为一种貌似需要花更多时间和精力的方法去费神了。事实上,如果我们今天就开始使用新技术的话,肯定是要先掌握一个学习的方法,但其中所附带的好处是绝对值得我们一试的。我们应该把这视为一种挑战,它将为我们节省时间,并为我们带来更好的、更简洁的代码 。

在某种程度上,现在的情况和2000年初有些相似。那个时候,浏览器中CSS的出现和对其越来越多的支持使很多开发者对那种用表格设计网站的方式产生了疑问。如果当时大部分设计师没有开始采用CSS,并且整个设计社区没有去推动网页标准发展的话,我们现在极有可能仍然在用表格进行设计。1.2.3 不确定因素

当我们正在犹豫不决的时候,疑惑与不确定是我们必须考虑的另一个因素,因为这可能是导致问题产生的一个主要原因。由于我们开始怀疑自己是否有能力去实现这场革新,去拓展工作的边界,或是去掌握这些新技术和新规范;而我们的设计和代码又已经可以让我们舒适、安心地去玩这个等待的游戏,因此我们便沉沦于这种安逸中而无法自拔。我们所做的仅仅是接受这样一种局限,默默地工作着,同时又在不断抱怨各个浏览器厂商和W3C。因此,我们一定要把新技术视为必须去征服的挑战。并且,我们要知道既然我们已经学会了HTML和CSS 2.1,那么同样也能学会HTML5和CSS3。1.2.4 信念因素

有信念是件好事,但是现在这种情况下,它会拖你后腿,图片来自fotologic(http://www. flickr.com/photos/fotologic/408096004/)

无疑,我们中的一些人对是否向新领域迈进仍持观望态度,因为他们有种执着的信念,深信跨浏览器支持的技术最终会出现。有些人说到,如果我们让网页发展,但不是强迫它去发展的话,那么对于整个网页社区而言,我们的情况会变得更好。

但我要说的是,这不是一种强迫性的发展,而是一种合理的发展。正如达尔文的进化论一样,网页也在分阶段地发展着,不会马上就在我们整个群体中完成这种发展,这是一个随着时间的推移逐步变化的过程。我们应当容许网页按这种方式去发展,逐步在社区中使用和实现各种新特性。而这种向前的发展也正在发生,任何人都不应该去阻挡发展的步伐,直至我们所有人都达成目标。1.2.5 “为时过早”因素

另一个因素可能是那种向来具有嘲笑性质的“为时过早”的说法。一些在线社区的成员深深地恐惧:如果他们往前走出一步,接受这种新的方法,并开始按照这一方法进行设计和开发,一旦他们刚刚才把项目完成,就极有可能已经失去了技术支持,也就意味着他们又得更新那些已经做完的项目。这是一种很常见的想法,认为在新标准已经完全被浏览器实现之前,就把它们应用到工作中还为时过早,因为对浏览器会全部实现新标准的假设根本就不可靠。

但是,我们得弄清楚以下两组新特性的区别。一组新特性是已经被大家普遍接受的、不会消失的特性,如CSS3的媒体查询、圆角边框(border-radius)、阴影(drop-shadows)和HTML5画布(canvas);另一组就是那些具有实验性质的特性。已被普遍接受的那些特性使用起来是很安全的,并且肯定是不会消失的;而对于那些实验性的特性,我们可以把它们提取出来放在一个单独的样式表中,必要的时候就可以很容易地进行更新和维护。在针对大公司的设计当中,最好还是不要使用这些实验性的、还不受支持的技术特性,除非这些特性不会影响关键的设计元素。1.2.6 验证因素

值得一提的是,还有很多人拒绝涉足这些新领域,而这仅仅是因为要在设计中实现CSS3中的一些技术或是样式,必将导致样式表中出现过多的基于浏览器的特定前缀,从而对我们的设计通过验证造成了影响,而这种验证又是我们作为专业人员所要追求的。还有很多人从来不会发布没有完全通过W3C验证的项目,除非这些新的规范已经完全地标准化并且已经生效了,否则很多人都不愿意在设计中使用这些规范。既然使用CSS3通常就意味着要使用基于浏览器的特定前缀,也就是说不应该使用CSS3了,是这样的吗?

这是Jeffrey Way的文章:《But it Doesn’t Validate》(《但它无法验证》,http:// net.tutsplus.com/articles/general/but-it-doesnt-validate/)

当然,不完全是这样的。正如Jeffrey Way在《但它无法验证》那篇文章中所作的完美的阐述,验证并非毫不重要,而CSS验证器所给出的最终评分则是不重要的。Jeffrey是这么说的:“这个分数仅仅为你提供反馈,而没有更多的意义。它

对提高设计的可访问性作用不大,也没有给我们指出最佳的

实践。事实上,验证器可能会误导我们,它仅仅依靠自身的

想象,就把正确当成了错误。……验证器不是游戏,当你通过它测试自己的技术水平

的时候,可能会很好玩,但请你记住:这个分数并不重要。

并且,永远不能因为验证器的缘故,而影响到对最新的文档

类型、CSS3技术和选择器的使用。”—Jeffrey Way

让我们的作品100%地通过验证,这对于项目来说,并不总是最好的方式。如果确信我们的代码简洁而又易于理解,而且在没有CSS3或HTML5属性的时候,代码也能够顺利地通过验证,我们就应该把我们的作品带到一个新的层次,并不需要去顾及一些验证结果。如果我们有机会去做真正的创新,就不应该受到这种验证因素的阻碍,让自己受限于各种不必要的限制。1.3 总结

不管是什么样的原因阻碍了我们大胆地去使用CSS3样式和新的HTML5编码技术,只要实际地想想,就能越过这道障碍,这是清楚而又简单的道理。今天我们需要向前迈进,开始使用CSS3和 HTML5,使网页社区变成一个更加令人激动、更具创新性的场所,反之又可以改善体验,把更多用户吸引到极具活力的全新的网页中来。而吸引更多的客户——有效地拓展市场,极有可能是正在等待着我们的一个机遇。但我们却胆怯面对着“藩篱”——拒绝攀越,反而在苦苦等待出口的出现。

只有我们超越了这种看待问题的局限性,才能够最终充分挖掘我们自己和行业内各领域的所有潜力。想想是不是有一些领域是你非常想进入的,但却因为缺乏完全跨浏览器兼容性而无法涉足?无可否认,我自己也曾是社区内忠实的一员,而你呢?接下来,你将会把什么样的CSS3 或是 HTML5的特性带到设计作品当中呢?第2章CSS3精粹串讲Trent Walton

对于网页社区,我们已经在CSS3上取得了一些令人激动的进步。当我们开始使用背景剪裁(background-clip)和过渡(transition)、动画(animation)等可视化效果的时候,对CSS3中的一些属性,如text-shadow和border-radius等我们已经是驾轻就熟了。我们也花了很多的时间去讨论什么时候该用这些属性,怎么样去用它们。假如一个属性没有被浏览器广泛地支持,也没有完整的文档,是不是就意味着我们不应该去使用它呢?事实上,我对此持相反的态度。

我们可以利用客户工程之外的业余时间在博客文章里经常去讨论、总结使用CSS3的最佳实践。要想找出极具创新且合理的方法去最大限度地利用CSS3,需要开发者们不断尝试,进行试验。现在,有大量的属性组合和用途等待着我们去发掘。我们所需做的事情就是把这些散落的点点滴滴给串联起来。现在,动起手来开始我们的创新吧!2.1 如何起步

我最喜欢做的事情之一就是扫一眼CSS的属性列表,然后考虑哪些属性可以放在一起工作。比如,把@font-face和text-shadow、bg-clip:text属性放在一起,是不是可行的? webkit-transition和opacity(不透明度)怎样用一种创造性的方式串接起来?以下是我最近做的一些实验的结果,其中有一些可能会比较实用,有一些则不一定。在这里把它们列出来的主要目的是想激发出大家创造的火花,亲自动手去实践。

注意:虽然Opera和Firefox也许很快就会实现下面提到的一些CSS3属性的相关规范,但这些实验目前还只能在使用Webkit内核的浏览器上进行,例如Google Chrome或Safari。2.2 范例1:CSS3过渡(transitions)效果

如果要以一种比较稳妥的方式去开始应用CSS3的可视化效果,不妨从过渡效果开始。例如,可以在鼠标悬停(hover)的时候对一个基本的CSS属性做出一些变化,比如颜色、背景颜色或者是边框。首先,我们来为链接(link)的颜色应用一个0.4秒的过渡变换效果。

效果演示:http://trentwalton.com/css3/connecting_the_dots

链接的CSS代码如下(包含了鼠标悬停的状态):

接着,引入CSS3来设置和定义要针对哪一个属性进行过渡变换,设定过渡变换的持续时间(duration)以及在这期间过渡变换的效果。在这个例子中,我们设定持续时间为0.4秒,过渡效果为定时的ease-out效果(原来的颜色会快速地消失,新的颜色会慢慢地出现)。大多数时候,我更喜欢ease-out效果,因为这种效果是一种更加直接的过渡,能给用户更加直接的提示,告诉用户正在发生的变化。

你可以把这些合并到一个单独的CSS属性中,按照上面的顺序声明应用效果的属性,如持续时间和效果:

查看在线示例:http://trentwalton.com/css3/connecting_the_dots。

最终的效果是出现一个红色文本链接,当用户的鼠标悬停在上面时,红色文本会巧妙地变换成蓝色。这种最基本的过渡变换技术能够被应用到无数的属性上面。接下来,我们来创建一个组合了border-thickness属性的0.3秒长的菜单栏鼠标悬停效果。

效果演示:http://trentwalton.com/css3/connecting_the_dots

一开始,我们要先对导航链接做一些设置,先设定3个像素的底部边框,以及鼠标悬停时50个像素的底部边框,代码如下:

要组合实现这种过渡变换效果,可以在单独的一行CSS代码中,设置在0.3秒内去逐步地扩展边框的厚度,代码如下:

查看在线示例:http://trentwalton.com/css3/connecting_the_dots。参考案例

以上是应用过渡效果来改进链接和导航项设计的例子。以下是其他的一些类似的有创造性的案例:

Team Excellence(http://teamexcellence.com/)

这个网站在所有的导航项上都使用了webkit的过渡效果,其中为主导航设置了一个0.2秒的漂亮的过渡效果,访问者在鼠标悬停的状态下不用等太长的时间就能看到这一效果。

Ackernaut(http://www.ackernaut.com/)

Ackernaut网站所有的链接在鼠标悬停的时候都会有精细的过渡效果,这个网站还扩展了属性,把淡入淡出效果应用到站点的头部。

DesignSwap(http://design-swap.com/)

在DesignSwap网站上,所有的文本链接在鼠标悬停的时候都有一个0.2秒的过渡动画。侧面的头像会隐现变换到关于最新设计的真正的详细内容。

Eric E. Anderson(http://esquareda.com/)

Eric E. Anderson 把CSS3实现的效果往前推进了一步,他在网站的主导航上实现了背景颜色、旁边的圆角以及盒阴影(box-shadow)的颜色过渡效果。2.3 范例2:背景剪裁(background clip)

background-clip属性可以和text-shadow、@font-face等属性组合起来,使得我们可以把文字附加到任何地方。要简单地说明这种效果,我们可以使用一张有交叉线的图片,并在上面遮罩上一些文字。下面的代码非常简单,先在HTML中把bg-clip类引入div元素当中:

效果演示:http://trentwalton.com/css3/connecting_the_dots/#2

现在来看看CSS代码,先把我们要用来做文本遮罩的图片设为背景图片。然后设置-webkit-text-fill-color属性为transparent(透明),并把-webkit-background-clip属性定义为text。

这个的例子演示地址:http://trentwalton.com/css3/connecting_the_dots/#2。

这种方法可以说是打开了一扇门,使得我们可以把材质或其他的图形风格添加到文字上面,并且不需要像以前一样使用实际的图片文件来显示这种文字。为了更进一步进行CSS3文本的实验,我们还可以添加transform(变换)属性来旋转文本(或任何相关的元素),把文本进行一定角度的旋转。实现这种效果只需要简单的一行CSS代码:

演示地址:http://trentwalton.com/css3/connecting_the_dots/#2

注意:background-clip属性在Firefox和Opera上不能使用,但transform属性则可以,只是我们要针对每一个浏览器应用不同的transform属性。

在线示例的地址:http://trentwalton.com/css3/connecting_the_dots/#2。参考案例

这个实现虽然非常简单,但既有趣又很有创造性。

Trent Walton(http://trentwalton.com/css3/type)

这是我自己的一个实验,把bg-clip和@font-face组合在一起实现一个新的设计。

Neography(http://neography.com/experiment/type1/)

这是一个精彩的例子,它显示了当把rotate(旋转)、bg-clip和@font-face属性放到一起时可以做出的效果。

Everyday Works(http://www.everydayworks.com/?p=318)

这是我看过的最早展现CSS文本旋转的新颖例子之一。

Panic Blog(http://www.panic.com/blog)

Panic在博客网站上随机地对div元素/文章进行旋转,但一定要刷新浏览器才能够看到旋转角度上的微妙变化。

Sam Brown(http://sam.brown.tc/)

Sam在“stalk”侧边栏链接上实现了一个很漂亮的文本旋转的鼠标悬停效果。2.4 范例3:CSS变换(transforms)、盒阴影(box shadow)和RGBa

现在用简单的几行CSS代码就可以实现过去用许多div标签、png图片和一些额外的标记去完成的工作。在这个例子中,我们将组合使用范例2的transform属性、box-shadow属性和RGBa颜色来实现一些效果。首先,我们得创建4个图片文件,每一张图片都显示了Smashing Magazine网站以前不同版本的首页。我们使用一个类来实现阴影,同时使用另一个专门的类来实现各种旋转效果。

下面是HTML代码:

我们创建一个CSS类来实现RGBa阴影,可以使用如下代码:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载