动态HTML教程(二)
作者:佚名 发布时间:2024-07-12 21:30:58
动态HMTL网页利用串接样式表布局,并利用Javascript控制网页元素。
实际并不复杂或有很多的规定。我们所需要作的只是要给网页加入样式,
能使其运动,并且在两种主要的浏览器中都能正确显示。
精通我们将用CSS-P布局网页,这是学习动态HTML的第1步。学习完定位
元素之后,我们将接着学习编写使其动态显示的脚本。
大多数用于设计和页面布局的程序或文件格式必须现生成box,它们的
宽度和高度可以改变,它们还能使你控制将对象叠放在对象之上。CSS-P
的原理与其相似,你先用HTML定义一个容器(为了便于具备跨平台应用的
兼容性,你最好实用<DIV>或<SPAN>标签),设置其水平和垂直位置,然
后设定哪个对象应该叠放在哪个对象之上。
真的很简单,它能象大多数人(尤其那些利用表格定位和布局的人)希
望的那样让HTML发挥功能。你只需以一种不同的思维角度来思考网页的布
局,本教程将重点讲述一些基本的布局技巧明天我们将利用Javascript控
制你的网页布局。
动态HTML中大多数的内容都要用到<DIV>标签作为容器。(在 串接样式
表和CSS定位的规范草案中规定可以将任何对象 定位,但Netscape的浏览
器还不支持这项规定。所以你必须 用<DIV>标签作为类属容器),在容器
内加入对象然后再 定位。
我们先为本教程中的范例生成一个box。在本教程的范例中 我们将用网
猴的一个编辑Tim作为范例中的主角:
<html>
<head>
<title>dramatis personae</title>
<style>
<!--
#tim {position: absolute;left: 10px; top: 10px; width: 140px;
height: 91px; }
-->
</style>
</head>
<body>
<div id="tim"></div>
</body>
</html>
这里是box的显示结果(为了辨认的方便,我给它加了一个 红色边框)
现在我们有了一个空的box,其ID名称为tim,其位置在距窗 口左边10个
像素,距窗口顶部10个像素的位置。现在它还没 有体现出动态HTML的魅力,
所以我们在这个box中填入Tim的 图片,并给它加一点说明:
<img src="http://www.webmonkey.com.cn/ ;dynamic_html/tutor/
day2_2btim01.gif" width="41" height="79" align="LEFT"> Tim,
the hero. Webmonkey editor and resident banjo-picker.
在3.2版本的HTML的网页(即不能支持动态HTML的网页) 中,你将会注意
到文字一直流到屏幕边缘之外,而Tim的图 片朝左浮动。
Tim, the hero. Webmonkey editor and resident banjo-picker.
实际上是它浮动到了本文所在的表格单元的左边。这是一个 重要的区别。
当你将HTML放在一个已经被定位了的<DIV>之 内时,你可以把它看作是放在
了一个表格单元中(或者象在 其他出版系统之内的制作方法那样)。
在支持HTML 3.2以后的版本的网页中,你可以看到文字自动 回行:
Tim, the hero. Webmonkey editor and resident banjo-picker.
现在这个<DIV>标签里已经填充了内容,让我们利用CSS-P 的LEFT和TOP选
项技将其定位。
<html>
<head>
<title>dramatis personae</title>
<style>
<!--
#tim {
position: absolute;
left: 300px;
top: 10px;
width: 140px;
height: 91px;
}
-->
</style>
</head>
<body>
<div id="tim">
</div>
</body>
</html>
显示结果:
Tim, the hero. Webmonkey editor and resident banjo-picker.
你可能会注意到在本例中我使用了相对定位。在相对定位和绝对定位中
有一个很微妙但确确实实的区别。
当你将一个对象用绝对定位指令定位时,你实际将其从你的HTML文件流
中抽了出来,将其直接根据网页的左上角的位置进行定位。这种情况下各
个对象有可能互相重叠在一起。
相对定位并不指根据百分比值或其他某个元素的位置来定位这个元素的
位置。它实际占据的就是它在这个HTML文件中的位置,它的定位起点基于
HTML页所在的位置,这里是一个例子:
Tim, the hero. Webmonkey editor and resident banjo-picker.
Tim, the hero. Webmonkey editor and resident banjo-picker.
这两个句子中,单词Webmonkey都定位在距左边200像素的位置。第1个句
子用的是绝对定位,第2个用的是相对定位。注意相对定位的句子中空出了
相当于单词Webmonkey长度的空间,而绝对定位了的句子中没有这个空间,
如果我给两个句子都加一个"top"参数值,则你会看到绝对定位了的句子将
飘在文章的顶部,而相对定位的句子则就在它所在的句子的位置之下:
Tim, the hero. Webmonkey editor and resident banjo-picker.
现在我们已经了解了两种定位的不同。我们作一个小练习。我们用CSS-P
作一个网页。试着做网页,然后我们将制作更复杂的布局(提示:你可以用
这个屏幕快照中的图象作为网页背景图象来帮助你定位。注意将字体采用
Comic Sans MS)。
你可以注意到上面的那个布局用表格就能很轻易地做到。但是串接样式表
比表格有一项独特的优势:分层。
你肯定注意到你无法用表格将几幅图片或文字叠放在一起。一般情况下,
如果人们希望实现这种效果只有制作一幅位图,在图片中制作出文字或图
象叠放在一起的效果,然后将图片放在网页中。
而利用动态HTML,则可以利用分层顺序将叠放显示各个对象,例:
Here is Aaron in front of a desk.
Here is Aaron behind a desk.
在这个例子中,Aaron在他的桌子后面,Aaron的图片首先出现在源代码中:
<div id="aaron">
<img src="http://www.webmonkey.com.cn/
dynamic_html/tutor/aaron.gif">
</div>
<div id="desk">
<img src="http://www.webmonkey.com.cn/
dynamic_html/tutor/extraDesk.gif">
</div>
但是如果我们想让Aaron站在桌子前面,我们可以这样写HTML代码:
<div id="desk">
<img src="http://www.webmonkey.com.cn/
dynamic_html/tutor/extraDesk.gif">
</div>
<div id="aaron">
<img src="http://www.webmonkey.com.cn/
dynamic_html/tutor/aaron.gif">
</div>
这种类型的分层在HTML暗示编写。所以搭建动态HTML网页的方法之一就
是将各个对象按照显示的前后层次顺序排列排在显示底层的对象最先列出,
而排在显示最上层的对象在源代码顺序的最后列出。但是这种方式不一定
不出问题。很多时候象在源代码中的顺序和它最后的显示顺序必须没有任
何关系。而此时就需要用到z-index CSS属性。
这里是重新制作后的例子。这次的HTML标识和一起一样,但是对象采用
了明示的z-index。
Aaron has a z-index of 2. The desk has a z-index of 1.
Aaron and the desk have an implied z-index.
两个例子的HTML都是相同的,但CSS不同。
<style type="text/css"> #aaron {position:absolute; left: 8px;
top: 31px; width: 79px; height: 73px; z-index: 2 } </style>
z-index可以是一个正值或一个负值(带负值的元素将位于母体元素的下面)
,它所造成的显示效果为:如果一个对象的z-index比另一个元素大,则
z-index为1时的视觉效果和Z-index为2时的视觉效果的区别相当于1和1000Z
之间的区别。
这些定位的基本知识是你搭建跨平台动态HTML的第1步。明天我们将学习到
动态HTML的精华之处以及目前所受的局限。
明天我们将陶醉在JavaScript的神奇魅力中。


猜你喜欢
- python对XML文件的操作1、xml 创建import xml.etree.ElementTree as ETnew_xml=ET.El
- 一、简单使用入门小案例import logginglogging.basicConfig(level=logging.DEBUG, &nbs
- 前言2048游戏规则:简单的移动方向键让数字叠加,并且获得这些数字每次叠加后的得分,当出现2048这个数字时游戏胜利。同时每次移动方向键时,
- 一、概念触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。触发器可
- function randPassword() { var text=['abcdefghijklmnopqrstuvwxyz
- 前言学完语法和正在学习语法的时候,我们可以在空闲的时候,写几个简单的小项目,今天我们就用最基础的语法看两个实战语法练习猜数字游戏项目游戏说明
- 前言k-means算法是无监督的聚类算法,实现起来较为简单,k-means++可以理解为k-means的增强版,在初始化中心点的方式上比k-
- 一.axisaxis就是指定轴。三维数组可看作元素是二维数组的一维数组,二维数组可看作元素是一维数组的一维数组 。(这么理解就舒服了!)例:
- 在利用DL解决图像问题时,影响训练效率最大的有时候是GPU,有时候也可能是CPU和你的磁盘。很多设计不当的任务,在训练神经网络的时候,大部分
- 本文实例讲述了Python使用sklearn实现的各种回归算法。分享给大家供大家参考,具体如下:使用sklearn做各种回归基本回归:线性、
- Mysql的connector/net5.0下载地址: http://dev.mysql.com/get/Downloads/Connect
- 基础理论第一层:卷积层。第二层:卷积层。第三层:全连接层。第四层:输出层。图中原始的手写数字的图片是一张 28×28 的图片,并且是黑白的,
- 相关的题外话:一、操作系统window系统内部都是unicode的。文件夹名,文件名等都是unicode的,任何语言系统下都能正常显示。二、
- 测了一下django、flask、bottle、tornado 框架本身最简单的性能。对django的性能完全无语了。django、flas
- 在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。通俗来说,它就是用来存储一系列数据的。比如存储一个班级的
- 一、背景分析对想要在视觉化环境下制作复杂网页的专业网页制作者来说,Dreamweaver已经渐渐在网页编辑工具中展露头角,成为专业人士编写网
- var str='1250' ; alert( Number(str) ); //得到1250 alert(parseInt
- 事务日志记录着在相关数据库上的操作,同时还存储数据库恢复(recovery)的相关信息。收缩日志的原因有很多种,有些是考虑空间不足,有些则是
- MySQL root密码正确,却怎么也无法从本地登录MySQL,提示ERROR 1045 (28000): Access denied fo
- 前言大家好,我叫善念。这是我的第二篇博客,也是第一篇技术博客,希望大家多多支持,让我更加有动力去更新一些python爬虫类的案例教程。开始确