别忘了文档类型声明

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

相关文章

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word