XHTML重构(一)

  XHTML 规则概要
  将传统的 HTML 转换为 XHTML 1.0 是快捷且无痛的,只要你遵守一些简单的规则和容易的方针。不管是否使用过 HTML,都不会妨碍你使用 XHTML。

      使用恰当的文档类型声明和命名空间。
      使用 meta 元素声明你的内容类型。
      使用小写字母书写所有的元素和属性。
      为所有的属性值加引号。
      为所有的属性分配值。
      关闭所有的标签。
      使用空格和斜线关闭空标签。
      不要在注释中写双下划线。
      确保小于号及和号为 < 和 &

  Unicode 和其他字符集

  XML、XHTML、和HTML 4.0 文档的默认字符集是 Unicode,一个由 Unicode 联盟定义的标准。Unicode 是一套全面的字符集,它为每个字符提供了一个特定的唯一的数字,不论平台、程序和语言。Unicode 也是我们拥有的最接近通用字母表的事物,尽管它并不是一个字母表,而是一套数字映射方案。

  尽管 Unicode 是 web 文档默认的字符集,开发人员依然可以自由地选择更适合他们的其他字符集。比方说,美国和西欧的网站常常使用 ISO-8859-1   (Latin-1) 编码,而中华人民共和国的国家标准是 gb2312。
  为表达语义而标记文档,而不是为了样式

  记住:请最大限度地使用 CSS 来进行布局。在 web 标准的世界里,XHTML 标记与表现无关,它只与文档结构有关。

  结构良好的文档可以向浏览器传达尽可能多的语义,不论是浏览器位于掌上电脑还是时髦的桌面图形浏览器。结构良好的文档都能向用户传达可视化的语义,即使是在老的浏览器,或是在被用户关闭了 CSS 的现代浏览器中。

  不是每个站点都能立即抛弃 HTML 表格布局。CSS 的发明者,W3C,直到 2002 年 11 月才将官方网站转换为 CSS 布局。然而,即使是顽固的唯标准主义者也不总是将表现从结构中完全分离处理,至少在 XHTML 1 中是做不到的。但是现在,我们可以向这个理想迈出重大的一步,通过将表现从结构中分离(或者说将数据从设计中),即使是混合的传统的布局也可从中受益。

  下面有一些提示,可以帮助你通过更结构化的方式进行思维:
  提纲内的色彩

  在语法学校,我们中的大部分人都被迫使用标准的提纲格式来写文章。现在,我们成为了设计师,可以多么自由地摆脱提纲的限制,然后大胆地投身于独特的个人表达的自由领域(也许我们的宣传册和商业站点还不是那么独特和个人化)。但是至少我们不会再受到提纲的困扰了。

  实际上,依照 HTML,我们应该将内容结构化为有组织的层级。在浏览器不支持 CSS 的时期,我们无法在交付可供销售的布局的同时做到这一点。但是今天,在将我们的设计不折不扣地实现的同时,我们有能力交付内在结构良好的文档。

  当你将供网络使用的文本进行标记,或者当你将已有的文本文档转换为网页时,请使用传统提纲的这些条目进行思考。

  <h1>我的主题</h1>
  <p>介绍性文字</p>
  <h2>补充性的观点</h2>
  <p>相关文字</p>

  同时,避免使用已被废弃的 HTML 元素比如 <font>,或者无语义的元素比如 <br />,来模拟其实不存在的逻辑结构。

  比如,不要像这样做:

  <font size="7">我的主题</font><br />
  介绍性文字<br /><br />
  <font size="6">补充性的观点</font><br />
  相关文字<br />

  根据它们的意义使用元素,而不是根据它们的外观

  我们中一些人已经陷在了一个坏习惯中,当我们仅仅需要一个大号字的文本时使用h1,或者在我们需要在前面加一个圆点符号时使用 li。就像我们在前面的章节讨论过的,浏览器一直都习惯于将设计属性强加于 HTML 元素之上。我们都一直习惯于认为,h1 意味着大号字,而li意味着圆点,或者 blockquote 意味着文本缩进。我们中的大多数人还在使用结构化元素模拟表现效果的方式来胡乱地写作 HTML。

  同样地,假如设计师希望所有的标题使用相同的字号,她会将所有的标题设置为 h1,即使这么做毫无结构化语义可言。

  <h1>这是主标题,在我将文本按照提纲格式组织的情况下。</h1>
  <h1>这不是主标题,但是我希望它与上面的标题使用一样的字体,但是我不知该如何使用CSS。</h1>
  <h1>这根本不是一个标题。但是我非常希望页面中的文字使用相同的字体,以达到我希望的,
  如果我了解CSS,就可以在不打乱文档结构的情况下达到这个设计。</h1>

  我们必须把我们的小把戏放到一边,然后开始根据元素的语义来使用它们,而不是根据它们看上去的样子。实际上,h1可以成为你希望的任何样子。通过   CSS,h1 可以成为非粗体的小号的罗马字体,而 p 文本可以成为粗体的大号字,li 也可以没有圆点(你或者可以使用小猫小狗或者公司标志的 PNG,GIF 或者 JPEG 图片取而代之)等等。

  从今天开始,我们将要使用 CSS 来决定元素的外观。我们甚至可以根据元素在页面中或者在站点中所在的位置来改变它们的外观。 CSS 可以将表现从结构中彻底抽离,并且允许你按照你喜欢的样式来格式化任何元素。

  h1, h2, h3, h4, h5, h6 {
      font-family: georgia, palatino, "New Century Schoolbook",
      times, serif;
      font-weight: normal;
      font-size: 2em;
      margin-top: 1em;
      margin-bottom: 0;
      }

  你为什么要这么做呢?这么做的目的是为了在图形浏览器中获得品牌化的外观和感觉的同时,在文本浏览器、无线设备、HTML 格式的电子邮件中,文档的结构得到保留。

  我们并不想在关于 XHTML 的章节讲述更多 CSS 方面的技术。我们只是希望展示文档结构和可视表达是两个完全不同的事物,并且结构化元素应被用来转换文本,而不是强加显示效果。
  使用结构化元素,而不是无意义的垃圾

  由于我们已经忘记或者根本不知道 HTML 和 XHTML 的用途是传达结构化的意义,许多 HTML 争论者这样使用标签来插入列表:

  项目一<br />
  项目二<br />
  项目三<br />

  考虑一下使用有序或者无序列表取而代之:

  <ul>
  <li>项目一</li>
  <li>项目二</li>
  <li>项目三</li>
  </ul>

  "但是li给我一个圆点,而我不需要圆点!"你也许会这么说。根据上面的章节,CSS不对元素被期望的外观做任何假定。它等待你来告诉它你所期待的元素外观。关闭圆点是 CSS 的最基本的能力。它有能力使列表看起来和普通文本没有两样,也可以使列表看起来像图形导航栏,具有完整的反转效果。

  所以,请使用列表元素来标记列表。相似地,使用 strong 来代替 b,使用 em 代替 i,等等。在大多数桌面浏览器缺省状态下,strong 的显示效果和 b 相同,而 em 和 i 相同,同时也可以在不破坏文档结构的情况下创建你期待的视觉效果。

  尽管 CSS 不会为任何元素的显示作假设,浏览器却作了很多假设,并且我们还没有碰到一个将 strong 显示为其他效果而不是粗体字的浏览器(除非是被设计师创建的 CSS 指示以其他方式显示)。假如你担心某个陌生的浏览器不会将 strong 显示为粗体字,你可以编写这么一条 CSS 规则:

  strong {
     font-weight: bold;
      font-style: normal;
      }

  视觉元素和结构

  web 标准不仅要求我们使用何种科技,而且还要遵守使用这些技术的方式。使用 XHTML 来编写标记,同时使用 CSS 来处理一部分或者全部的布局,并不一定会使站点更易用更轻便,同时节约多少带宽。就像我们在早期使用的技术那样,XHTML 和 CSS 也会被误用和滥用。冗长的 XHTML 和冗长的 HTML 一样,都会浪费用户的带宽和时间。冗长的过度的 CSS 也不能完全的代替表现 HTML 代码;这只不过是一种糟糕的东西被另一种代替了而已。

转载于:https://www.cnblogs.com/pclys/archive/2012/11/22/2782566.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy如何指定生成python3的项目_如何把阿里图标库的图标生成代码并应用于自己的项目...

有时候需要用很多图标去完成一定的页面效果和工作展现&#xff0c;框架内置的图标可能满足不了我们的需求&#xff0c;有个很好的图标库想必大家都知道-----就是阿里图标库。那么我们如何才能够把阿狸图标库的图标引用到自己的项目中呢&#xff1f;耐着性子往下看吧&#xff01…

win10系统无线服务器出错,win10系统中Wi-Fi证书错误的解决方法

wifi想必大家都很熟悉吧&#xff0c;这是很多用户们喜欢的无线网络&#xff0c;但是有时候会碰到一些wifi错误&#xff0c;比如有不少win10系统用户遇到wifi证书错误的情况&#xff0c;这样就会导致用户无法连接到网络或访问某个网站&#xff0c;该怎么处理呢&#xff0c;现在就…

subprocess模块

subprocess模块 subprocess可以根据命令的结果&#xff0c;正确的或者错误的分开存放 存放正确的结果 # import subprocess # objsubprocess.Popen(tasklist,shellTrue, # stdoutsubprocess.PIPE, # stderrsubprocess.PIPE, # …

mysql语录错误1300_mysql 语句常见错误 汇总(持续更新中)

1. 表名和属性名 按照 规范 应该加反引号(就是键盘上esc键下面&#xff0c;"1"键左边的那一个), 否则如果字段中出现某些关键字, 会引起歧义并报错。例如:insert into onlineshop_transferorder( from, to, relateId, total, productId, skuname, createTime, status…

通过EIGRP的 variance 参数实现非等价负载均衡

实验拓扑如上图所示我们使用EIGRP协议做通全网实现R1 的1.1.1.1 可以和 R4的4.4.4.4 进行通信 此时我们查看R1的路由表&#xff0c;查看去往4.4.4.4 的路由条目 通过拓扑图我们看到 R1去往4.4.4.4 是有两条路径的也就是 R1-R2-R4 和 R1-R3-R4 &#xff0c;但是在路由表中&…

echarts 获取点击的y轴数值_用 Python 自动获取NBA现役球员的职业生涯数据曲线

前言作为一个看了多年篮球的 NBA球迷&#xff0c;一直在想用 python 和篮球一起来写点什么加上最近在学习 pyecharts &#xff0c;所以就有了下面这篇文章&#xff1a;根据输入的球队和球员名字&#xff0c;自动生成该球员职业生涯数据曲线图&#xff01;✨ 效果火箭哈登勇士格…

重装系统后dns服务器未响应,dns服务器未响应,小编教你dns服务器未响应怎么解决...

连网时&#xff0c;出现连不上网络&#xff0c;用Windows网络诊断&#xff0c;诊断出的结果是“DNS服务器未响应”&#xff0c;遇到这样情况该怎样解决&#xff1f;在使用window系统的电脑上网过程中&#xff0c;常常会遇到DNS服务器未响应的问题&#xff0c;怎么办&#xff1f…

VMware虚拟机启动错误(正在被占用、内部错误)等问题

参考&#xff1a;VMware虚拟机启动错误&#xff08;正在被占用、内部错误&#xff09;等问题 作者&#xff1a;扫地僧- 发布时间&#xff1a;2019-09-20 15:02:55 网址&#xff1a;https://blog.csdn.net/weixin_42119153/article/details/101060183?spm1001.2014.3001.5501 目…

Ubuntu 16.04 安装网易云音乐

从官网下载安装包后&#xff0c;需要重新配置一下依赖。&#xff08;sudo apt-get -f install&#xff09; 注意&#xff1a;软件源换成国内阿里的转载于:https://www.cnblogs.com/Sayno/p/9300442.html

xampp mysql 备份_Linux Xampp计划任务自动备份Mysql数据库和所有网站

[inlosc_lg_title]1、备份[/inlosc_lg_title]使用XAMPP的PHP网站集成环境&#xff0c;不仅轻松的解决网站所需环境&#xff0c;他的备份功能也非常强大。下面让我们输入几句命令来完成数据库和网站的自动备份&#xff1a;/opt/lampp/lampp backup **** #命令后面跟着的是MySQL …

mt4 指标 涨跌幅 颜色k线_通达信指标公式源码阴线买股+黄金K线指标+源码

源码&#xff1a;TT2:DMA((((HIGH LOW) (CLOSE * 2)) / 4.15),0.9);TT1:REF(EMA(TT2,3),1);RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;K:SMA(RSV,3,1);D:SMA(K,3,1);J:3*K-2*D;LC:REF(CLOSE,1);RSI:((SMA(MAX((CLOSE - LC),0),3,1) / SMA(ABS((CLOSE - LC)),3,1)…

Windows Server 2008 R2 遗忘管理员密码后的解决方法-by iLync

思路是这样的&#xff1a;修改登录界面其他功能的链接&#xff0c;使之成为CMD的链接&#xff0c;在CMD命令里面定位到C:\\Windows\System32下&#xff0c;用net user 去修改账号和密码具体操作如下&#xff1a;一、使用Windows Server 2008 R2的安装光盘引导计算机启动。完成安…

面经——Linux相关

摘自&#xff1a;看完这些面试必问的Linux小知识&#xff0c;我保证你面试后会来给我的文章一键三连 作者&#xff1a;万里羊 发布时间&#xff1a;2021-04-09 21:55:23 网址&#xff1a;https://blog.csdn.net/weixin_44895651/article/details/115532107 作为一名以后想从事嵌…

ajax反序列化出错,将数据从jquery ajax请求传递给wcf服务失败了反序列化?

我使用下面的代码来调用wcf服务。如果我调用不带参数的(测试)方法&#xff0c;但返回一个字符串&#xff0c;它工作正常。如果我一个参数添加到我的方法&#xff0c;我得到一个奇怪的错误&#xff1a;将数据从jquery ajax请求传递给wcf服务失败了反序列化&#xff1f;{"Ex…

android 权限动态申请

名字其实有点让人感觉高大上"权限动态申请",其实也没有什么, 以前做Android程序的时候,比如需要打开摄像头 那么需要在 然后就可以了, 但是Android6.0之后呢,有些权限必须手动让用户同意才可以,哪些权限需要用户手动同意,哪些不需要这里大家自行百度 现在说一下 直接…

php mysql installed_CentOS在使用yum install php-mysql安装php时报错的解决方法

由于此项目的apache只是用于下载功能和安装phpAdmin来查找数据库&#xff0c;而且之前已经安装了Mysql 5.6&#xff0c;于是在部署是都是直接使用yum命令方法安装。但在使用yum install php-mysql时报了一大堆的错误&#xff1a;from install of mysql-libs-5.1.69-1.el6_4.x86…

ppt转html5 带动画_我复刻了IPhone12这页发布会PPT

今年苹果发布会没有看&#xff0c;但是最近看到三石兄发了一篇关于发布会现场的这页PPT复刻的推文&#xff0c;它介绍的是利用直线辅助的方法来完成。三石兄相关推文&#xff1a;iPhone12发布会PPT&#xff0c;你也能做&#xff01;​mp.weixin.qq.com那么今天我们主要介绍如何…

tablemodel dapter区别

2019独角兽企业重金招聘Python工程师标准>>> 简单的原则&#xff1a; 如果查询部分字段用adapter 如果多表查询用adapter 如果考虑sql注入用adapter 如果增加、删除、修改、查询单个表的全部字段用tablemodel 转载于:https://my.oschina.net/shunshun/blog/92668

面经——华为联发科小米兆易创新(2020年秋招嵌入式软件)

摘自&#xff1a;2020年秋招嵌入式软件面试过程总结&#xff08;华为联发科小米兆易创新&#xff09; 作者&#xff1a;嵌入式与Linux那些事 发布时间&#xff1a;2020-12-19 21:07:27 网址&#xff1a;https://blog.csdn.net/qq_16933601/article/details/111296224?utm_medi…

【error】Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs.

前言 使用matlab通过摄像头获取图像进行处理&#xff1b; 问题描述 使用matalb调用摄像头时出现错误&#xff1a; >> imaqhwinfo Warning: No Image Acquisition adaptors found. Image acquisition adaptors may be available as downloadable support packages. Open S…