《jQuery Mobile入门经典》—— 2.2 展现CSS样式

2.2 展现CSS样式

jQuery Mobile入门经典
层叠样式表单用来把平淡无奇的内容转换成为令人兴奋和着迷的体验。可以使用几种不同的方式把样式添加到网站中。

当在style标记或外部文件中添加CSS样式时,可以在单独的一行中书写CSS样式,也可以把它分解成段落的格式。

不熟悉CSS的开发者通常喜欢段落的格式,而熟练的开发者可能使用单独的一行并附带空格或制表符来表示样式和布局的层级。

尽管我确实喜欢某一种格式的风格,不过当所有都完成的时候,我会压缩我的CSS样式以在真实环境中使用,所以保持CSS使用一种格式实际上只在维护时有意义。我们将在第21章讲述压缩以及它可以如何使您受益。

程序清单2.3展示了一段使用段落格式写成的CSS代码片段。每一个样式属性放置在单独的一行中,与根元素保持缩进。可以看到这是易于阅读的格式,不需要进行水平滚动。这个方法的缺点是造成垂直方向上的文件很长(继而因为众多的换行而导致更大的文件),并且没有直观的方法表示层级关系。

程序清单2.3 使用段落风格格式化的CSS代码

程序清单2.3中的CSS代码很常见。分成段落容易阅读,每个CSS属性列在属于自己的一行中也增强了可读性。正如所看到的,在第6、10和15行,包含了一个空行。这是有意为之。即使存在制表符,有时候当在大的CSS文件中滚动时,还是可能会感到混乱,所以空行可以帮助分隔多个部分。

程序清单2.4包含与之前的代码片段相同的样式,但是一个单行的层级风格的CSS编码示例。

程序清单2.4 使用单行的层级风格格式化的CSS代码

可以看到这在样式表中占据更少的垂直空间。这样格式化的样式表把完全相同的代码从18行缩减到4行。

还可以看到,通过使用制表符或空格,元素之间的层级关系可以显现出来。这从第1行和第2行可以明显地看出来。在第1行,body元素前没有制表符,而第2行的h1元素前有制表符,说明它包含在body元素之内。

使用这种方法的缺点是,通常会存在大量的水平滚动(特别是包含针对特定浏览器的样式并同时使用了CSS3标记的时候)。如果不习惯阅读用这种格式写成的CSS,这种方法对调试来说也是个挑战,因为分隔多个属性的字符就只有一个分号。

不管使用何种风格来格式化CSS代码,都可以在HTML文件中实现样式。下面来讨论如何实现。

2.2.1 样式标记

HTML 4已经支持其中一种方法,即使用style标记。这个标记通常包含在head元素中并包括要应用到文档中的所有样式。在HTML文档中使用style元素适合于当要将一些特定的样式应用到当前文档的时候。

程序清单2.5展示了在HTML文档包含的head元素中,使用style元素应用样式的示例。

程序清单2.5 headstyles.html文件的摘录

第1行中可以看到以head元素开始。第2行是title元素。虽然这与样式无关,但它是属于head元素的。第4行是style元素的开始标记。style元素包含type="text/css",让浏览器知道如何处理这个元素内部的数据。第5行到第23行展示了段落格式写成的CSS,每个元素相互之间没有空行。第24行包含了style的结束标记。剩下第25行是head元素的结束标记。

图2.2所示为headstyles.html文件应用样式渲染后的效果。

通过对比图2.1与图2.2,可以看到样式在表现上可以起到相当的作用。样式不必总是包含在style元素中。它们也可以在外部CSS文件中。

2.2.2 使用外部CSS文件

在内容发布与压缩的多种方法中,使用CSS最常见的选择是把它包含在一个单独的文件中。通过创建一个文件扩展名为.css的文件,然后在head元素中使用一个link元素来调用这个文件完成此功能。

以下是调用或链接到一个外部CSS文件的示例。

在前面的代码片段中,有一个命名为styles.css的文件,与调用它的HTML文件在相同的文件夹中。任何编写好并放入styles.css文件中的样式将会加入到文档中并进行使用。

值得注意的是,可以在子文件夹中保存CSS文件,甚至从外部站点载入。

在HTML文档中不限于使用一个CSS文件,实际上也可以使用多个CSS文件。使用多个外部CSS文件的优势是,分离无须用到的样式,直到网站进入到某个部分,并使代码易于维护成。

分离式样式表的另一个用途是,创建针对特定浏览器的样式,当检测到某个浏览器时才包含对应的样式表。

警告:使用多个CSS文件

使用多个CSS文件可能会有一些比较严重的缺点。如果全部在相同的页面上调用它们,可能会造成HTTP请求阻塞,并在所有文件下载和解析到内存时无意中造成网页加载缓慢。如果基于浏览器检测来使用分离式文件,很可能会遇到为不同版本维护不同文件的麻烦。网站也可能会增加载入时间,因为检测脚本需要加载并根据它们的检测结果来包含相应的CSS文件。

2.2.3 内联样式

虽然可以使用内联样式,但我强烈推荐只在快速原型开发或当确实没有其他方法来完成想要做的事的时候才使用内联样式。

内联样式会覆盖浏览器预置的样式和已经包含进来的样式。它们在调试的时候特别有用,因为可以明确地指定确切的元素并调整它们。

我反对使用内联样式的原因是,它们打破了内容与表现之间的界限。如果把样式“硬编码”到内容块中,这个样式就会一直保留,除非采取措施将这个特定的样式或元素移除。虽然可以使用别的方法移除硬编码的样式,但更简单的就是避免它,从而避免自己在HTML文档中查找糟糕代码的痛苦。

程序清单2.6是一个在不同的HTML元素中使用内联样式的示例。

程序清单2.6 inlinestyles.html文件的全文

程序清单2.6中的代码完全有效。事实上,应用到第8行的内联样式会使div元素在浏览器查看的时候居中,同时也应用上边框和一些内边距。内联样式通过在div元素的开始标记中包含一个style属性来应用到div元素。在第10行,可以看到给p元素的开始标记加了一个style属性。应用到p元素的样式会使文本加粗。

图2.3显示了inlinestyles.html应用了内联样式进行渲染的效果。

既然已经看过了使用CSS表现网页的不同方法,是时候来看看如何使它发挥功能了。

时间: 2024-10-23 16:20:54

《jQuery Mobile入门经典》—— 2.2 展现CSS样式的相关文章

《jQuery Mobile入门经典》—— 第 2 章 使用HTML、CSS和JavaScript

第 2 章 使用HTML.CSS和JavaScript jQuery Mobile入门经典 本章将学习: HTML当前的角色: 给网页添加样式的不同方法: JavaScript是什么以及如何使用它. 本章讲述有关使用HTML.CSS和JavaScript的概念和当前的趋势.这是很重要的部分,因为它在使用jQuery Mobile进行开发过程中扮演着主要的角色.使用jQuery Mobile的网站基于HTML而创建,并且尽管它们通过一个默认主题来设计样式,不过可能想把样式改为更具有个人风格.要完成

《jQuery Mobile入门经典》—— 导读

前言 jQuery Mobile入门经典毫无疑问,当前我们在获取.使用和分享网上的资源时,所采用的方式正在不断变得越来越移动化.每个月都会有数以千计的新智能手机被激活,并被它们的主人带到包括杂货店或山野远足在内的每个地方.随着我们对网络连接的渴求延伸到了几年之前还不能到达的区域,我们需要可以简单快速传递信息的网站,而且不管我们使用何种设备访问网站,它都可以正常运作.而这一切可以使用jQuery Mobile做到. jQuery Mobile基于流行的.稳定的jQuery框架而构建,可以用来将现有

《jQuery Mobile入门经典》—— 1.2 支持的设备

1.2 支持的设备 jQuery Mobile入门经典 jQuery Mobile能用在什么设备上面呢?几乎所有具有浏览器的设备都可以运行jQuery Mobile(包括台式机).然而根据所使用的浏览器以及浏览器之下的硬件设备的不同,将获得不同的体验.当然从更深的层次来看,这也与设备所使用的操作系统有关.以下按设备的尺寸从大到小列出jQuery Mobile支持的设备. 1.2.1 台式机.笔记本电脑与一体机 使用jQuery Mobile的网站可以运行在PC.Mac或者Linux计算机上的任何

《jQuery Mobile入门经典》—— 1.3 开发者的宝库

1.3 开发者的宝库 jQuery Mobile入门经典 既然已经了解jQuery Mobile可以运行在几乎所有连接到网络的设备上,您可能会问一些问题,例如: 我要用什么编程语言来创建移动网站? 如果有的话,什么集成开发环境(IDE)可用于开发? 我需要安装Web服务器来开发移动网站吗? 我应该在什么平台上开发移动网站? 我可以使用免费工具做开发吗?或者开发工具会涉及费用吗? 这些都是实际而重要的问题.作为开发者,应该知道哪些工具可以使用.下面来回答每一个问题并对其进行扩展,使您明确知道开发者

《jQuery Mobile入门经典》—— 2.5 问与答

2.5 问与答 jQuery Mobile入门经典问:单行层级格式的样式表会造成任何渲染上的问题吗?答:是的,使用单行层级格式的样式表对某些浏览器来说可能偶尔会造成问题.当在CSS中设置属性和值的时候,如果忘记在某个值前面添加一个空格,这个值可能会被跳过,导致样式不完整.这就是为什么许多开发者更喜欢使用段落样式,并且在生产机上使用之前再压缩代码的另一个原因. 问:即使开发者们现在使用CSS来表现样式,我可以仍然使用表格吗?答:当然可以.只是要记住,只有为了显示列表数据才使用表格.真的应该避免作为

《jQuery Mobile入门经典》—— 2.6 测验

2.6 测验 jQuery Mobile入门经典测验包含下列问题和练习,帮助您检查理解和掌握的程度. 2.6.1 问题 1.已经被弃用的HTML标记仍然能在HTML 4 strict文档类型中使用吗? 2.为什么不推荐使用内联样式? 3.JavaScript当前可以用来做鼠标轨迹和动态的眼睛或其他事情吗? 4.什么版本的HTML包含对CSS的支持? 5.对或错:使用JavaScript操纵未被解析并载入文档对象模型的对象会导致抛出错误,从而使JavaScript运行失败. 2.6.2 答案 1.

《jQuery Mobile入门经典》—— 1.5 问与答

1.5 问与答 jQuery Mobile入门经典问:对移动开发来说,Web服务器是必不可少的吗?答:这是一个很好的问题,但回答起来有点难.如果您的移动网站是静态的,不使用任何动态的代码,那么您可以不使用服务器来开发.不过,除非开发的是一个单页的网站,要不然当您尝试载入各个单独的页面的时候,可能会遇到错误信息.使用服务器可以有更好的效果,可以使用AJAX,还可以使用模拟器或者处于相同网络的真机来测试网站在不同设备上的情况. 问:我必须使用IDE来进行开发吗?推荐的IDE太贵了,或者对我来说没有吸

《jQuery Mobile入门经典》—— 2.4 总结

2.4 总结 jQuery Mobile入门经典刚刚学习完HTML和CSS当前的使用方法.还学习了内容与表现分离,对于维护的简单性和使用CSS文件重构的网站来说是值得的. 学习了在网站中应用CSS样式的不同方法,例如通过使用style元素.通过使用外部.css文件包含样式以及通过使用内联样式. 接着学习了JavaScript在Web开发中的作用,以及如何通过使用外部文件或在HTML文件中的head或body元素内的

《jQuery Mobile入门经典》—— 2.1 使用HTML创建内容

2.1 使用HTML创建内容 jQuery Mobile入门经典HTML是Web的基本构件.它是支撑整个网站的框架结构,也是让您随意扩展网站的基础.HTML自诞生以来已经取得长足的进步,并将继续演进和发展. 2.1.1 HTML的作用 在层叠样式表单(CSS)引入之前,HTML标记处理所有东西.图像.文本.布局以及滚动的文本,几乎所有东西都由HTML标记来表示.您可能还记得在浏览器中查看源代码时,看到许多用于布局用途的   字符实体. 随着开发者热切期望探索新的领域并推动语言的发展,事情不断变得