zoukankan      html  css  js  c++  java
  • 不可忽视<!DOCTYPE......>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    今天在做个登陆页面,俩个登录页面几乎一模一样,只有连接部分文字不一样,做好后上网测试,一个连接hover有效果,另一个没有效果。(在IE里,在FF正常,再次说明IE比较脆弱,好处是锻炼了前端人员的写作规范性)我就检查hover,什么伪类,什么IE6不认这个,但是一个页面有效果,一个没有,这说明与CSS无关,只有可能在html里找了,耗费了一天时间,我决定从头找到尾,第一眼,问题就来了,一个html有DOCTYPE声明一个没有。原因就在这,造成页面很多微小的不一致。

    1、什么是DOCTYPE

      DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。
      html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      表示那网页是服从W3C//标准.语言是EN , 格式是DTD XHTML ,Xhtml版本是1.0

     2、什么是DTD

      DTD 文档类型定义(Document Type Definition)
      里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。

      (1)过渡型(Transitional )
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      (2)严格型(Strict )
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      (3)框架型(Frameset )
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
      关于DTD的选用 随后再发帖子说明。

      3、什么是xmlns

      "xmlns"是XHTML namespace的缩写,叫做"名字空间"声明
      因为xml允许自己定义自己的标识,你定义的标识和其他人定义的标识有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生,XML采用名字空间声明,允许你通过一个网址来识别你的标识。

      4、xmlns="http://www.w3.org/1999/xhtml"  后面的网址可不可以换成别的呢?

      XHTML是HTML向XML过渡的标识语言,它需要符合XML文档规则,因此也需要定义名字空间。又因为XHTML1.0不能自定义标识,所以它的名字空间都相同,就是http://www.w3.org/1999/xhtml

      5、html lang 属性

      此属性常用于html标签中,代表整个文档(文件)使用了某种语言,也可以使用在某个XHTML标签中.
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
      zh-CN 表示XHTML文档使用中文 en表示 XHTML文档使用英文
      xml:lang属性可以使搜索引擎了解你的页面使用了何种语言,搜索引擎可以按语言把页面归类,或者启动某些自动翻译系统.xml:lang属性也可以使排版工具了解你的页面使用了何种语言,这样相应的排版工具就可以切换标点符号,转换格式等操作.
      webjx的原代码中 lang="utf-8"  这一句用的是否准确呢?我的理解是utf-8是一种编码格式,而lang属性的值应该是表示语言种类的字符串,还请哪位老师解释下。

    6.我们选择什么样的DOCTYPE

    理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。

    注:上面说的"表现层的标识、属性"是指那些纯粹用来控制表现的tag,例如用于排版的表格、背景颜色标识等。在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。

    打个比方:人体模特换衣服。模特就好比数据,衣服则是表现形式,模特和衣服是分离的,这样你就可以随意换衣服。而原来HTML4中,数据和表现是混杂在一起的,要一次性换个表现形式非常困难。呵呵,有点抽象了,这个概念需要我们在应用过程中逐步领会。


      这么多的东西,花费了一个多小时。伪原创也很不容易!

    经验可以积累,但梦想永远不能磨灭
  • 相关阅读:
    MyBatis学习(五)resultMap测试
    MyBatis学习(四)XML配置文件之SQL映射的XML文件
    Mybatis学习(三)XML配置文件之mybatis-config.xml
    每次回顾,总会有一点小收获!
    php数组去重、魔术方法、redis常用数据结构及应用场景
    MySQL使用可重复读作为默认隔离级别的原因
    后端程序猿标配之linux命令
    常用字符串函数
    nginx配置隐藏index.php
    MySQL的sql_mode解析与设置
  • 原文地址:https://www.cnblogs.com/lancee/p/2151730.html
Copyright © 2011-2022 走看看