DIV+CSS是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。

CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。

DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。

我们都知道,在网页上利用HTML定位文字和图像是一件“令人心痛”的事情。我们必须使用表格标签和隐式GIF图像,即使这样也不能保证定位的精确,因为浏览器和操作平台的不同会使显示的结果发生变化。

而CSS能使你看到希望的曙光。利用今天我们即将学到的CSS属性,你可以精确地设定要素的位置,还能将定位的要素叠放在彼此之上,还有...还有......你自己慢慢看吧!

Cascading Style Sheets(CSS)是 DHTML 的基础。CSS 用来设定你网页上的元素是如何展示的。Cascading Style Sheets Positioning(CSS-P)是 CSS 的一个扩展,它可用来控制任何东西在网页上或是说在窗口中的位置。请你记住这两个名词:CSS 和 CSS-P。下面四个英文网址提供了详细的关于 CSS 和 CSS-P 的文件和解释。

1.使用 DIV 标签 (div)

当我们使用 CSS-P 的时候, 我们主要把它用在 DIV(division)tag 上。当你把文字,图像,或其他的放在 DIV 中,它可称作为“DIV block”,或“DIV element”或“CSS-layer”,或干脆叫“layer”。而中文我们把它称作“层次”。所以当你以后看到这些名词的时候,你就知道它们是指一段在 DIV 中的 HTML。

使用 DIV 的方法跟使用其他 tag 的方法一样:

<DIV>This is a DIV tag .</DIV>

如果单独使用 DIV 而不加任何 CSS-P, 那么它在网页中的效果和使用 <P></P> 是一样的。

但当我们把 CSS-P 用到 DIV 中去以后,我么就可以严格设定它的位置。首先我们需要给这个可以被 CSS-P 控制的 DIV 一个 ID 或说是它的名字。比如说我们给下面这个 DIV 的名字是 truck。给名字的目的是我们以后可用 JavaScript 来控制它, 比如说移动它或改变它的一些性质等等。

<DIV ID=\"truck\">

This is a truck

</DIV>

给层次取什么名字是随意的,名字可以是任何英文字母和数字,但第一个必须是字母。有两种把 CSS-P 应用到 DIV 的方法。

Inline CSS:Inline 是最常用的方法。

<DIV ID=\"truck\" STYLE=\"styles go here\">

This is a truck .

</DIV>

External STYLE tag:使用 External 方法的结果是一样的。我们会在以后的课程里再详细解释这种方法。现在我们主要讨论Inline 方法。请注意在 External 方法里,在 STYLE 里的 ID 和 DIV 里的关系。

<STYLE TYPE=\"text/css\">

<!-- #truck {styles go here} -->

</STYLE>

<DIV ID=\"truck\">This is a truck .</DIV>

Cross-Browser CSS 性质:

我们这个课程的主要目的是让你写出的网页在 NS4 和 IE4 上都能工作, 所以我们主要讨论那些对俩者都通用的性质。下面这些性质符合由 W3C 给出的标准。

position 决定 DIV tag 是如何放置的。“relative”意思是DIV的位置是相对于其他 tag 的,而“absolute”是说 DIV tag 的位置是相对于它所在的窗口。

left 相对于窗口左边的位置

top 相对于窗口上边的位置

width DIV tag 的宽度。所有在 DIV 里的文字或html都在里面。

height DIV tag 的高度。这个性质很少用除非你想 Clip 层次。

clip 给出 layer 的 clipping(可看的见的)部分。Clip 可使得 DIV 显示为一个可以定义的很准确的方块。你可以用以下的四个值来给出这个方块的在 DIV 位置和大小。

clip:rect(top,right,bottom,left);

visibility 隐蔽或展现DIV 根据它的值“visible”,“hidden”,“inherit”。

z-index DIV tag 的立体位置。值越大 DIV 的位置越高。

background-color DIV 背景的颜色。

layer-background-color Netscape 的 DIV 背景颜色。

background-image DIV 的背景图像。

layer-background-image Netscape 的 DIV 的背景图像。

2.绝对定位和相对定位 (position)

绝对定位:

定位属性将是网虫们打开幸福之门的钥匙:

H4 { position: absolute; left: 100px; top: 43px }

这项CSS规则让浏览器将<H4>的起始位置精确地定在距离浏览器左边100象素,距离其顶部43象素的位置。注意这里唯一设置了的是左边和顶部,也就说,文字将从左到右,从上到下载入浏览窗口。

左边和顶部属性很直观,左边(left)设定要素距浏览器窗口左边的距离,顶部(top)设定距离浏览器窗口顶部的距离。设定这些距离时,你可以使用所学过的各种度单位或比例值。使用比例值时,比例值的是相对于母体要素的尺寸。

你可以定位什么呢?任何东西!段落、单词、GIF和JPEG图像、QUICKTIME电影等等。

相对定位:

绝对定位使你能精确地定位要素在页面的独立位置,而不考虑页面其它要素的定位设置。相对定位指你所定位的要素的位置相对于在文件中所分配的位置。例:

I { position: relative; left: 40px; top: 10px }

相对定位的关键在于定位了的要素的位置是相对于它通常应在的位置进行定位。相对定位单元出现在普通的静态定位单元的行间,定位时没有把自己和静态定位单元完全分开。如果你停止使用相对定位,则文字的显示位置将恢复正常。使用相对定位时要小心,否则容易将页面弄得非常乱。

除了相对定位和绝对定位,你还可以使用static(静止)参数值。Static 是 position 特性的缺省值。它的使用方法同普通HTML中的定位方法,不能附加特殊的定位设置。也就是说,除了边距特性,或通过使用 float 特性来浮动单元可影响单元的定位外,其它均不可以。

3.定位单元的控制 (width、height、visiblility)

除了控制定位单元的左上角位置,你还可以控制单元的宽度和高度,及单元在页面的可视性。

宽度:定位了的要素在页面上显示时仍然会从左到右一直显示。利用宽度属性就可以设定字符向右流动的限制,即设定要素的宽度。

DIV { position: absolute; left: 200px; top: 40px; width: 150px }

浏览器接到这项规则时,它将文字按照规则规定的效果显示,还将段落的最大水平尺寸限制在150象素。

宽度属性只适用于绝对定位的要素。你可以使用我们学过的任何一种长度单位,或使用比例值设定宽度,比例值指相对于母体要素的比例。IE 4中,这项属性还可用于图像。你可以通过宽度设置人为地拉宽或压缩图像。

高度:理论上讲,高度应该和宽度的设置类似,只不过是在垂直方向上:

DIV { position: absolute; left: 200px; top: 40px; height: 150px }

这里我用了“理论上讲”,因为有些浏览器不支持高度属性。

可视性:利用CSS,你可以隐藏要素,使其在页面上看不见。这条属性对于定位了的和未定位的要素都适用。

H4 { visibility: hidden }

选项:

visible 使要素可以被看见

hidden 使要素被隐藏

inherit 指它将继承母体要素的可视性设置。

值 inherit 为缺省值。这使单元继承父单元的可见性。所以,如果某一段是隐藏的,则它包含的任何行间单元也都被隐藏。这一继承性可被明确指定的可见性取代。例如,段内的 EM 单元被指定为可见,这时如果该段被隐藏,则段内的所有其它内容都将消失,而唯有 EM 单元中的文本是可见的。

当一个要素被隐藏后,它仍然要占据浏览器窗口中的原有空间。所以,如果你将文字包围在一幅被隐藏的图像周围,那么,其显示效果将是文字包围着一块空白区域。此新闻

这条属性在编写语言和使用动态HTML时很有用,比如你可以使某段落或图像只在鼠标滑过时才显示。

4.单元层次 (z-index)

特性 z-index 用于堆叠屏幕上的单元。缺省情况下,单元堆叠的顺序为它们出现在HTML标记的顺序——也就是说,后出现单元堆叠在早出现单元的上面。Z-index 特性实际上定义同属(sibling)单元的堆叠顺序以及单元相对父单元的堆叠。按照规范草案,具有正 z-index 值的单元群都堆叠在父单元之上,它们自己的堆叠顺序则按其取值的大小来决定(值大的单元在上层)。同样,具有负 z-index 值的单元群都堆叠在父单元之下,它们自己的堆叠顺序也按取值的大小来定(值大的单元在上层,例如值为 -1 的单元在值为 -2 的单元的上面)。

该参数值使用纯整数。z-index用于绝对定位或相对定位了的要素。你也可以给图像设定z-index。(对于Communicator,最好将 <IMG>标签包在<SPAN>或 <DIV>标签内,然后将z-index应用到<SPAN>或 <DIV>。)

5.剪辑绝对定位单元 (clip)

绝对定位单元可以被剪辑——也即剪辑显示给用户的区域,只显示单元的一部分而把其余部分作透明处理。对于传统的基于文本和图像的网络页面,这并不是一个很有用的特征。但若要求多媒体页面,这是很有用的。如 Netscape Communivator 4 和 Internet Explorer 4 都支持多媒体页面,它们通过文档的脚本接口动态地调整单元周围的剪辑区,从而实线文本“划入”和图像渐显等显示特征。

在CSS中,剪辑通过 clip 特性来控制,这一特性只能用于绝对定位单元,其缺省值为 auto,按单元的外边缘来剪辑单元(实际上等于没有剪辑)。另外,可通过如下表达式设置剪辑框:

clip : rect(top,right.bottom,left) ;

其中 top、right、bottom 和 left 分别是矩形剪辑框的上边、右边、下边和左边相对于被剪辑单元左上角的位置。Top、right、bottom 和 left 的值可以为任意绝对或相对长度值(但不能为百分比值),或者是关键字 auto。取值为 auto 意味着剪辑区域的各边放好以后,被剪辑单元中的任何内容都不会超出这个区域。

6.控制单元溢出 (overflow)

固定绝对或相对定位单元的 width 和 height,很可能会因为指定的区域不能满足单元实际内容的需要,而造成单元内容溢出。这时可使用 overflow 来指定浏览器如何处理溢出:值 none(缺省值)允许浏览器显示溢出的内容,因此单元可溢出指定的区域。而值 clip 要求浏览器在单元底部和右边剪辑单元内容,这样,超出指定区域的单元内容将不显示。值 scroll 也同样要求浏览器在单元底部和右边剪辑单元内容(同 clip),不过,浏览器应该(如果可能的话)为单元提供滚动条以使用户能通过滚动来浏览被剪辑的内容。

和webpage打交道起页面布局就一直是我关注的内容,从早期table构架页面到DIV再到DIV+Table,可以说我们的需求一直在变,但是目 的一直没有改变。为什么这么说,很明显从简单到复杂,再从复杂到简单;从简单运用到复杂运用;一切都是围绕需求性来做的。很多开发设计人员在从事页面布局 开发的时候都要考虑到几点:布局是否合理,结构是否紧凑,是否有充分的扩展性,可读性是否强。而合理使用Table和DIV来构架我们的web是我们探讨 的一个重要问题。对此要从几个不同的方位来看待:

一. 定位

首先,严格意义来说,table和div都是可用合理的布局方法,你不能否认table的价值,或者div只有优点没有缺点。可以说web架构即可以使用table也可以div。那么关键就是你对你的web需求的定位。

我们需要考虑到web页面给我们的site会带来多大的影响。如我们的site针对的海量的访问,海量的数据,(当然cache问题这里不讨论)那么在 构架上通常会减少table使用量,尤其是大量的循环的时候,当然table也是有用的。对于复杂的site来说,div+css有时候很难准确定义出我 们所表达的内容这时候table就是很好的选择。这也是开发前要考虑的问题,在要达到开发目的的同时保证所需要的成本。同样用div+css来实现一个结 构复杂的page时往往不如用一个table就能简单得搞定。

二. 特性

table和div有其各自得特征。这也意味着他们价值取向有不同,对于开发设计的人员来说很重要的。

table可以很容易建立起结构化的界面,通过table自身的参数定义,我们能把页面布局很快定义成我们所需要的效果。当然css的配合就可以相对减 少。缺点就是扩展性和可读性相对较差,扩展性差表现在维护和修正上面,一个复杂的table布局的site,她的海量页面在随着需求变化下,开发人员将一 筹莫展,大量的修改需求会把web的界面开发工作彻底粉碎。可读性差,这个也是相对来说,来看个例子:我们用同一效果table和div来显示一个 page :

----table----

<table width=\"300\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">

<tr>

<td rowspan=\"3\" bgcolor=\"#FF0000\"> </td>

<td> </td>

<td rowspan=\"3\" bgcolor=\"#0000FF\"> </td>

</tr>

<tr>

<td> </td>

</tr>

<tr>

<td> </td>

</tr>

</table>

----table----

----div 1----

<div style=\"width:100px;\"></div>

<div style=\"width:100px;\">

<div></div>

<div></div>

<div></div>

</div>

<div style=\"width:100px;\"></div>

----div 1----

----div 2----

<div style=\"display:inline-table; width:300px;\">

<div style=\"float:left; width:200px; clear:left\">

<div style=\"display:inline-table;\">

<div style=\"float:left;clear:left;width:100px; \"></div>

<div style=\"float:right; clear:right; width:100px;\">

<div></div>

<div></div>

<div></div>

</div>

</div>

</div>

<div style=\"float:right; width:100px; clear:right; \"></div>

</div>

----div 2----

...

table在表现上更加“严谨”,有局限性。在表现复杂的结构时会非常难懂。往往我们的website的程序内容又十分庞大,对开发人员来说要把代码马上从头脑中有清晰的轮廓十分不易。

div呢,在html语法中我们知道div的含有和作用,如果用它来实现布局页面的话,几乎完全要靠css来支撑,可以说div不能单独使用,尤其是针 对性强的web,给用户视觉上的效果要求十分严格,div的使用要配合专业的css参数来实现。从前面的例子可以看出div布局更加灵活,能简单也能够复 杂。相同的显示效果在css和div的配合上可以产生不同的搭配方式。扩展性强是她的优点,开发设计人员只要对相应的css做调整就能让布局焕然一新,这 点是table远远不及的。但在对结构相对复杂的局部,往往div+css开发难度高,一个简单效果div和css要写半天,这点table就好很多了, 用dw之类的所见即所得的软件下我们可以轻易做出用div+css写半天才能做出的东西。

三. 兼容

这是每个website的一个重要课题,浏览器的兼容问题。table和div在兼容问题中,table更具有优势。

我们常用的ie,ff浏览器对div css设置上非常挑剔,往往同一个css在2种浏览器上会有不同的结果,对开发人员来说是个可怕的问题。我们不可 能对用户的浏览器进行排斥,因此只有通过在开发的时候调整我们的语法和布局方法。div要求我们严格css支持,而table可以不用考虑这么多。 table的严谨在不同浏览器中得到了很好的表现。

在考虑我们的定位,特征,兼容问题后,如何布局,采用何种构架方案我想大家心里应 该都很清楚了,我想说对于真正的开发者来说善用其利是最重要的理念。而不是一味偏好,或者体现自己技术能力来做开发设计工作。对于div我们可以充分发挥 其灵活清晰的架构特性,配合table的严谨来实现各种webpage的需求。

转载于:https://www.cnblogs.com/yzl495/p/4997692.html

浅谈table和DIV网页布局相关推荐

  1. 浅谈CSS3中的弹性布局

    浅谈CSS3中的弹性布局 现在的努力,只是为了实现小时候吹过的牛逼 一.什么是弹性布局? Flex是Flexible Box的缩写,意为"弹性布局",他为盒模型提供了最大的灵活性. ...

  2. 浅谈table布局和div布局的区别

    目录 背景 table布局 div+css布局 总结: table布局和div布局的区别 背景 早期的网页布局,基本都是采用table布局的.早期的网页相对来说比较的简单,类似于报纸一样,只有文字和静 ...

  3. CSS+DIV网页布局

    从1990年代初HTML被发明开始样式表就以各种形式出现了,不同的浏览器结合了它们各自的样式语言,读者可以使用这些样式语言来调节网页的显示方式.一开始样式表是给读者用的,最初的HTML版本只含有很少的 ...

  4. html网页 table布局实例,HTML用Table表格对网页布局

    HTML是用于开发网页的"超文本标记语言",今天我们一起来学习一下HTML+CSS网页布局中Table布局方式. 常见的网页布局用CSS而言一般有经典行布局.经典列布局.双飞翼布局 ...

  5. 结合html和css制作页面的布局结构,CSS Div网页布局中的结构与表现

    在Web标准中一个很重要的概念就是强调页面的结构与表现分离.说的通俗一点就是XHTML中应该没有样式化的东西,而且Web在浏览器中除内容外都应该由CSS表现,这包括布局与其它样式.一旦一个标准的XHT ...

  6. html div将页面划分,css+div网页布局

    div+css排版是最新的网页排版理念,完全有别旧的排版方式(比如说table排版).首先在页面整体上进行div标签划分内容区域,然后再用css进行定位,最后再对相应的区域添加内容.div+css这种 ...

  7. css div网页布局代码 自适应,css+div页面布局之1 -- 自适应

    浮动 float属性:定义元素在哪个方向浮动.float:left  | right |  none 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 外边距 margi ...

  8. 浅谈Winform程序的界面布局设计

    DevExpress v20.2完整版下载 DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.DevExpress WinF ...

  9. 海睿思分享 | 浅谈信创产业生态布局

    信创产业,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,保障国家信息安全.其核心是建立自主可控的信息技术底层架构和标准,在芯片.传感器.基础软件.应用软件等领域实现国产替代. 信创产业是数字 ...

最新文章

  1. 设计模式 之美 -- 简单工厂模式
  2. Windows 10 全新开始屏幕曝光
  3. Css相对定位和绝对定位实现CSDN标题栏
  4. Linux Kernel aarch64的ARM-CE aes-ecb的底层代码导读
  5. 计算机管理术语路径描述的是,directory
  6. 详解Oracle DELETE和TRUNCATE 的区别
  7. sde用户下使用sqlplus登录错误ORA-12547: TNS:lost contact
  8. linux非权限安装bioperl,Bioperl的简单安装
  9. php数字补零的两种方法
  10. FFmpeg之获取音视频信息(二十八)
  11. 《Python算法教程》——2.4 请提防黑盒子
  12. Dism++ 一款传说中的系统工具,使用简介
  13. 让自己的软件出现在选择打开列表的软件中
  14. 扑克之星网站服务器连不上,扑克之星服务器崩溃一小时引发玩家不满
  15. iTerm2使用zmodem协议上传下载文件
  16. CodeIgniter安装和入门使用(一)
  17. 遥感影像的比例尺和分辨率的关系
  18. 网站访问流程及原理分析
  19. Convex Optimization 凸优化学习 第三章 凸函数(一)
  20. 最新中国土地市场网JS逆向分析

热门文章

  1. Linux LiveCD U盘制作及演示
  2. 抖音表情包,新版UI+迭代功能说明
  3. 你应该知道的人工智能机器人 ChatGPT 提示语
  4. PS_BaseUse_颜色替换
  5. 配置支付目录 - 【微信支付】JSAPI支付开发者文档
  6. 我的世界显示java过老_《我的世界》令人崩溃的四大瞬间!老mc:你经历过恼鬼的痛苦吗?...
  7. 高德地图多边形覆盖物等间距缩小或者放大算法
  8. 关于执行力--程序员你有木有?
  9. MIDI文件结构分析及生成方法
  10. EXTJS 中 anchor 的用法