别忘了文档类型声明

2024-01-12 16:32
文章标签 类型 文档 声明 别忘了

本文主要是介绍别忘了文档类型声明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以前在做网页的表格数据展示的时候,我曾经也想做一个固定Header,滚动内容的Table,但是用css的方法没有成功,而脚本的方法太麻烦,就没有用。前几天看到一个网页,也就是用固定Header滚动Body的Table,它是纯粹采用css实现的。难得的不是只用css实现了这种效果,而是它让多种浏览器能够兼容,它支持IE6/5.x、Opera7.x、Mozilla1.x、Konqueror 3.x等。他的地址是:http://www.imaputz.com/cssStuff/bigFourVersion.html
增强版本是:http://www.imaputz.com/cssStuff/bulletVersion.html

我打算按照他的方法在我现在的工作中应用。因为写的是ASP程序,所以用InterDev,先是创建了一个html文档,然后按照网页中的方法创建了table和css,但是发现它失败了,header照样滚动,我以为我的css漏掉了些东西,就把它全部copy到我的网页中,但是还是不成功。
执行原来的网页css能够让table成功滚动,而我的网页就是不行,检查了半天没有发现什么问题,后来突然看到源文件头有一行文档类型声明:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
我想我找到原因了,于是直接把这行DOCTYPE的声明复制到我的网页中,用IE6打开浏览,成功了。
这行文档类型声明要求浏览器将网页文档准循严格标准的XHTML1.0进行分析,我最初创建的网页没有文档类型声明,所以IE浏览器采用兼容模式分析文档,这时有些css定义是无效或者不完全的。兼容模式中position: relative这个css声明无效。使table header固定的css定义正是这个声明。
我尝试了HTML4.01过渡标准的文档声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
它也能够成功的运行,这是几乎是最宽松的标准html文档类型声明。Dreamweaver2004创建新网页默认就是按照这个标准定义来声明的。InterDev创建的新网页是没有文档类型声明的,在IE浏览器中,没有声明的则采用向下兼容的Quirk标准分析网页,我建议在创建网页的时候都加上一个HTML4.01过渡标准或者XHTML1.0过渡标准的文档类型声明,首先这使识别DOCTYPE声明的浏览器分析你的网页的时候,能够按照标准创建界面效果,而不是按照非标准的、兼容的方式来分析网页,而这也不会影响低版本的浏览器对网页的分析。其次如果你不是很熟悉严格的XHTML标准,网页中产生了某些非标准代码,浏览器将无法兼容(比如你无法使用<a>中的target属性)。

后来同事发现扩展版本如果没有声明也能够执行,那是因为这个版本它增加了一个IE5.x之后独有的css属性
top: expression(document.getElementById("tableContainer").scrollTop)
expression能够动态的返回css属性的值,所以IE6浏览器不按照标准模式分析网页也能够成功。

这篇关于别忘了文档类型声明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598467

相关文章

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word