[翻译]标记语言和样式手册 Chapter 9 精简标签

作者:zhaozy 来源:3user.com 时间:2008-02-01 09:55:00 

阅读上一章:Chapter 8 再谈清单

Chapter 9 精简标签

先前我们不断提到结构化内容能够把结构与设计细节分类并精简标签,该怎么做呢?我们可以使用符合标准的XHTML与CSS代替表格,图片制作我们所需要的版面.

使用标准技术制作网站(特别是十分依赖CSS的网站)的时候,我们常常会养成一个不太好的习惯,就是加上多余的标签和class属性,技术完全不需要它们.

通过在CSS中使用集成选择器(descendant selectors),我们就能消除多余的<div>,<span>与分类属性.精简标签代表页面将能读取得更快,同时更容易维护,在这一章中,我们会讨论几个完成这项任务的简单做法.

以标准技术制作网站时,如何精简标签?

精简标签是个值得讨论的重要话题,制作网站时,用合法的XHTML书写,用CSS设定展示效果能得到的巨大好处之一,就是精简标签.简短的代码代表着下载速度加快,对于使用56k拨号上网的用户来说,这绝对是关键,简短的代码也代表服务器空间需求,带宽消耗减少,这能让老板,系统管理者开心.

问题在于,单纯的确定页面符合W3C标准规范并不代表内容所使用的代码会缩短,你当然能为符合标准的标记内容加上各种不需要的标签,没错,他的确符合标准,但可能为了让设计CSS的时候方便一点,加了不少多余的代码.

别怕!这边有些技巧,让你能设计出简洁,有符合标准的标记内容,但也同时保留足够的CSS样式控制能力.接着让我们学习几个精简标签的简单技巧.

继承选择器

在这里我们要看看两种在个人网站标记侧边栏(包括信息,链接和其他东西)的做法.把所有好东西塞进一个id是"sidebar"的<div>里,以便稍后把它放到浏览器视窗中的某一处(第二部分将会讨论CSS布局 / 排版功能).

方法A:高兴的分类

<div id="sidebar">
  <h3 class="sideheading">About This Site</h3>
  <p>This is my site.</p>
  <h3 class="sideheading">My Links</h3>
  <ul class="sidelinks">
    <li class="link"><a href="archives.html">Archives</a></li>
    <li class="link"><a href="about.html">About Me</a></li>
  </ul>
</div>

我在许多网站上看过类似方法A的标记内容,在设计者刚发现CSS的威力的时候,很容易感动过头,为每个想要制定特殊样式的标签指定class.

以前面这个例子来说,或许我们认为<h3>指定class=sideheading是为了帮助它们指定与页面之内其他标题不同的样式;为<ul>和<li>指定class也是为了同样的理由.

分类CSS

指定样式时,假设我们想让标题变成橘色,使用serif字体,底部加上浅灰色边线,而"sidelinks"无序清单则要把小圆点符号去掉,清单项目改为粗体.

方法A需要的CSS内容看起来会像这样:

.sideheading {
  font-family: Georgia, serif;
  color: #c63;
  border-bottom: 1px solid #ccc;
  }
.sidelinks {
  list-style-type: none;
  }
.link {
  font-weight: bold;
  }

我们能参照标记内制定的分类名称(class),为这些标签指定特殊样式,你甚至能想象页面的其他部分也照这个方式组织: 导航条,页尾与内容区,每个标签都加上了杂乱的分类,以便对它们有完全控制权.

没错,它的确能运作,但是有个简单的做法能够节省这些分类属性(class),同时让你的CSS更容易阅读,更具组织性,接着看方法B.

标签:样式,标记,css,手册,标签
0
投稿

猜你喜欢

  • python argparse模块通过后台传递参数实例

    2021-05-08 04:13:17
  • vue实现在v-html的html字符串中绑定事件

    2023-07-02 16:44:08
  • python matplotlib坐标轴设置的方法

    2022-03-26 03:44:04
  • Python实现从多表格中随机抽取数据

    2022-07-01 01:58:18
  • Python OpenCV高斯金字塔与拉普拉斯金字塔的实现

    2021-09-02 12:31:06
  • Python tkinter库绘制春联和福字的示例详解

    2022-03-05 06:29:04
  • 基于域名的方式访问Istio服务网格中的多个应用程序的方法详解

    2022-04-07 11:39:56
  • python 自动监控最新邮件并读取的操作

    2023-02-04 12:58:51
  • Python实现CNN的多通道输入实例

    2021-10-10 11:33:07
  • ASP和SQL结合处理时间应用

    2008-06-09 15:15:00
  • python格式化字符串实例总结

    2023-09-01 04:36:11
  • Python 中的装饰器实现函数的缓存(场景分析)

    2022-07-30 01:37:08
  • Bootstrap框架的学习教程详解(二)

    2024-06-05 09:28:56
  • 详解Python 装饰器执行顺序迷思

    2023-12-30 23:55:23
  • TensorFlow利用saver保存和提取参数的实例

    2022-03-31 16:27:15
  • MySQL数据库如何导入导出(备份还原)

    2024-01-17 17:26:37
  • Django框架自定义session处理操作示例

    2022-02-11 02:56:19
  • C#使用正则表达式实例

    2024-05-13 09:16:48
  • JavaScript创始人Brendan Eich访谈录

    2008-09-16 12:01:00
  • Python入门之集合的使用教程

    2022-10-31 13:44:45
  • asp之家 网络编程 m.aspxhome.com