推荐阅读

布局模型(2)文档流和流动模型

  当元素定义为相对定位,即设置 position:relative;属性时,它也会遵循流动模型布局规则,跟随HTML 文档流自上而下流动。下面看一个示例,请先输入下面的 CSS 布局代码:

/*[流动布局模型相对定位流动]*/
#contain
{/*<定义一个包含框>*/
border
:double 4px #999;
}
#contain h2
{/*<定义标题的背景色>*/
background
:#FFCCCC;
}
#contain p
{/*<定义段落属性>*/
borderbottom
:solid 1px #999;
position:relative; /*设置段落元素为相对定位*/
}
#contain table
{/*<定义表格边框>*/
border
:solid 1px #00CCFF;
}

  然后,输入 XHTML 结构代码:

< !--[元素流动结构]-->
<divid="contain">
<h2>标题元素</h2>
<p>段落元素</p>
<ul>
<li>列表项</li>
</ul>
<table>
<tr>
<td>表格行,单元格</td>
<td>表格行,单元格</td>
</tr>
</table>
</div>

  显示结果:


提示:您可以先修改部分代码再运行

  当我们单独定义 p 段落元素以相对定位显示时,它会严格遵循流动模型,自上而下按顺序流动显示。这是一个非常重要的特征,在后面的布局中,我们可以利用这一特征来驾驭绝对定位的一些布局难题。

  上面的示例仅定义了段落元素以相对定位显示效果,如果再给它定义坐标值,又会出现什么情况呢?这时,你会发现相对定位元素偏离原位置,不再按元素先后顺序显示,但它依然遵循流动模型规则,始终保持与原点相同的位置关系一起随文档流整体移动。

  下面看一个示例,请先输入下面的 CSS 布局代码,其中相同样式代码省略:

/*[流动布局模型相对定位偏移]*/

#contain p
{/*<定义段落元素属性>*/
borderbottom
:solid 1px #999;
position:relative; /*设置段落元素为相对定位*/
left:20px; /*以原位置左上角为参考点向右偏移20像素*/
top:120px; /*以原位置左上角为参考点向下偏移120像素*/
}

  我们会发现,当为相对定位的元素定义了坐标值以后,它会以原位置的左上角为参考点进行偏移,其
中坐标原点为新移动位置的元素左上角。

  请注意,当相对定位元素偏移后,它的原位置区域保留不变,其他元素也不会通过流动填充该元素偏移前的原位置区域。现在如果我们在标题元素前面增加多行空行,相对定位的 p 元素会随其他元素一起向下移动,同时你也会看到 p 元素原位置与偏移后的位置始终保持不变。

  所谓的相对,仅指元素本身位置,对其他元素的位置不会产生任何影响。因此,采用相对定位的元素被定义偏移位置后,不会挤占其他流动元素的位置,但能够覆盖其他元素。元素相互层叠是层布局的一个基本特征,可见用 position 属性定位的元素都会被烙上层的部分特征。有关相对定位、绝对定位和 position 属性的详细说明请参阅《布局模型(4)层模型的特征 》一文。

附:XHTML 元素分类及其含义

块元素(block element)

address - 地址
blockquote - 块引用
center - 举中对齐块
dir - 目录列表
div - 常用块级容易,也是css layout的主要标签
dl - 定义列表
fieldset - form控制组
form - 交互表单
h1 - 大标题
h2 - 副标题
h3 - 3级标题
h4 - 4级标题
h5 - 5级标题
h6 - 6级标题
hr - 水平分隔线
isindex - input prompt
menu - 菜单列表
noframes - frames可选内容(对于不支持frame的浏览器显示此区块内容)
noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
ol - 有序列表
ul - 无序列表
p - 段落
pre - 格式化文本
table - 表格


内联元素(inline element)

a - 锚点
abbr - 缩写
acronym - 首字
bdo - bidi override
big - 大字体
br - 换行
cite - 引用
code - 计算机代码(在引用源码的时候需要)
dfn - 定义字段
em - 强调
i - 斜体
img - 图片
input - 输入框
kbd - 定义键盘文本
label - 表格标签
q - 短引用
samp - 定义范例计算机代码
select - 项目选择
small - 小字体文本
span - 常用内联容器,定义文本内区块
strike - 中划线
strong - 粗体强调
sub - 下标
sup - 上标
textarea - 多行文本输入框
tt - 电传文本
u - 下划线
var - 定义变量
b - 粗体(不推荐)
font - 字体设定(不推荐)
s - 中划线(不推荐)

可变元素

applet - java applet
button - 按钮
del - 删除文本
iframe - inline frame
ins - 插入的文本
map - 图片区块(map)
object - object对象
script - 客户端脚本

作者: 发布时间:2008年10月05日 点击数: 收藏 打印文章
ed hardy nfl jerseys replica handbags christian louboutin louboutin
网站地图  |  关于站长  |  友情链接  |  版权声明top