从来没有仔细研究html,因为觉得整个东西太简单。
结果现在我才知道根本不是这样,一个简单的语法很有深意啊,首先要探讨的是:dtd,然后探讨与此相关的一个css应用:可以输入的下拉菜单
DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。
要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
DOCTYPE声明
开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。
查看很多使用XHTML标准开发的网站,第一行就是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
打开一些符合标准的站点,例如著名web设计软件开发商Macromedia,网页陶吧,会发现同样的代码。
而另一些符合标准的站点的代码则如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
那么这些代码有什么含义?一定要放置吗?
什么是DOCTYPE
上面这些代码我们称做DOCTYPE声明。DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。
其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。
要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
XHTML 1.0 提供了三种DTD声明可供选择:
* 过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法),完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
* 严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
* 框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
我们选择什么样的DOCTYPE
理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。
注:上面说的"表现层的标识、属性"是指那些纯粹用来控制表现的tag,例如用于排版的表格、背景颜色标识等。在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。
补充
DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。
CSS属性中有个裁剪属性clip,其实我对这个属性一点都不感冒,因为我感觉它好像没啥用处,但是前几天我同学问我这个属性是啥意思,我就是说裁剪的意思,后来他又问我更具体的我就不大知道了,于是我就研究一番,发现此属性的兼容性很有问题,下面详解一下。
clip 属性:
clip : auto | rect ( number number number number )
参数:
auto:对象无剪切
rect ( number number number number ) :
依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值,其中任一数值都可用auto替换,即此边不剪切
说明:
检索或设置对象的可视区域。区域外的部分是透明的。
必须将position的值设为absolute,此属性方可使用。
以上解释的很清楚吧,但是用来起你就会发现此属性并不那么听话。
比如 你要裁剪一个div,你这样写 clip:rect(0 100 100 0),大眼一看没什么错吧,在Dreamweaver里也正常,但是当你浏览的时候,才发现裁剪不管用,因为这个我研究了半个小时,终于发现:
在一个网页声明文档类型的情况下:
clip:rect(0px 100px 100px 0px) (空格单位)这种写法兼容所有浏览器(IE、Firefox、Chrome)
clip:rect(0px, 100px, 100px, 0px) (逗号空格单位) 这种写法只适用于Firefox
clip:rect(0px,100px,100px,0px) (逗号单位) 这种写法不兼容任何浏览器
clip:rect(0,100,100,0) (逗号) 这种写法不兼容任何浏览器
但是一个没有声明文档类型的浏览器以上的所以写法都可以实现,奇怪吧,我想可能问题就处在文档类型上,跟他们的标准有关系,具体一点我就不知道了,毕竟水平有限,呵呵
网页文档类型:
就是类似这样的代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ok,上面这些都是抄的,下面就说说如何写可以可以输入的下拉菜单。
<select style="position:absolute;width:120px;clip:rect(auto auto auto 100px);height:20px;display:block; clear:both; overflow:hidden;" onchange="hydm.value=this.value;">
<option value="ru0901">ru0901</option>
<option value="ru0903">ru0903</option>
<option value="ru0905">ru0905</option>
</select>
<input class="ipt_hydm" type="text" name="hydm" id="hydm" value="" style="position:absolute;width:100px;" />



