再谈css中的相对定位以绝对定位

来源:互联网 发布:java大话设计模式 编辑:程序博客网 时间:2024/06/06 05:24

点击打开链接


在CSS中有这样的一个指令:(position)

在DW中文版中翻译为“定位”,常用的属性有relative(相对)与 absolute(绝对)。

有很多朋友对这条指令的用法还是不清楚,这里做一定细致的讲解:

position:relative; 表示相对定位,被定位了这个属性的标签在所属的范围内可以进行上下

左右的移,这里的移动与padding或是margin所产生的位置变化是不一样的。padding与

margin是元素本身的一种边距与填充距离并不是真正的移动,而被定义为relative的元素是

真正的移动,这所产生的移动距离是从margin的外围到父级标签内侧之间这一段。


position:absolute; 表示绝对定位,如果定义了这个属性的元素,其位置将依据浏览器左上

角的0点开始计算,并且是浮动正常元素之上的。那么当你需要某个元素定位在浏览器内容

区的某个地方就可以用到这个属性。


那么有个问题产生了,现在大家做的网页大部分是居中的,那么我需要这个元素跟着网页

中的某个元素位置不论分辨率是多少他的位置始终是针对页内的某个元素的,那么单纯的

absolute是不行的。


正确的解决方法就是在元素的父级元素定义为position:relative;(更正:这里可以是祖父

级,也可以是position:absolute;,多谢谢old9的提出)需要绝对定位的元素设为position:absolute; 

这样再设定top,right,bottom,left的值就可以了,这样其定位的参照标准就是父级的左上角padding的左上侧!


大家可以试试了,如果有问题请跟帖提出!  多谢OLD9对内容提出的更正




Ex:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>?????</title>
<style type="text/css">
<!--
body {
margin:0;
padding:0;
background-color:#CCC;
font-family:Verdana, Arial, Helvetica, sans-serif;
text-align:center;
}
#header {
width:760px;
margin:5px auto;
padding:0;
background-color:#00F;
height:60px;
}
#maincontent {
margin:0 auto;
padding:0;
}
#mainbh {
widows:760px;
float:right;
margin:0 12px 0 0;
background:#FFF;
padding:0;
}
#right {
float:right;
margin:0;
padding:0px;
width:560px;
background-color:#000;
}
#left {
float:left;
width:200px;
padding:0px;
background-color:red;
}


#footer{
clear:both;
width:760px;
margin-right: 5px;
margin-left: auto;
padding: 0px;
background: #EEE;
height:60px;
}
-->
</style>
</head>


<body>
<div id="header"></div>
<div id="maincontent ">
  <div id="mainbh">
    <div id="left">1111<p>1</p></div>
    <div id="right"><p>1</p><p>1</p><p>1</p><p>1</p></div>
  </div>
</div>
<div id="footer"></div>
</body>
</html>


原创粉丝点击