关于relative和absolute的总结
对于定位这个性质我原理上来说自己是明白的,但是在实践的过程中,总会出现各种稀奇古怪的情况,加relative或是absolute就可以解决,但是遇到这些情况总是不明白为什么!!!难道是脑容量太小的原因吗!!!=_=!!
还是先记基础知识好了,因为里面还是有很多坑!!
相对定位:
内联元素加相对定位也不支持宽高!!
relative并不会使元素脱离正常文档流!
以上两点说明加上相对定位不影响元素本身的特性,内联元素和块元素依旧保持原来本身的特性!就是说原来是内联加上relative以后还是内联啦!
如果不设置偏移量,相对定位本身并没有什么卵用~ 所以,相对定位要加偏移量,left/top/bottom/right是相对于该元素原来的位置设置偏移量的哦哦哦~ 绝对定位:
内联元素变得支持宽高啦~如果没有设置宽度,则内容撑开宽度!!(类似于float,内联元素加上float以后也支持宽高滴!!)
会使该元素完全脱离文档流
如果有父级定位则是相对于父级发生偏移,没有定位父级则是相对于body发生偏移!
也是要搭配偏移量使用啦~ 如果直接在body里添加文字和一个<div>标签,
1. 给<div>设置absolute定位,不设置偏移量,则<div>定位在紧接着文字的下面
2. 给<div>设置absolute,并且设置偏移量,则<div>是按偏移量相对于body定位
3. 给<div>设置relative,不论是否设置偏移量,都是相对于自己的原来的位置定位。
<style>
body{ height:100%; margin:0;}
.shadow{ position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:0.5; filter:alpha(opacity=50);}
.filter{ width:300px; height:200px; border:2px solid #000; background:yellow; position:absolute; top:50%; left:50%; margin-left:-152px; margin-top:-102px;}
</style> <body>
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
<div class="shadow"></div>
<div class="filter"></div>
</body>
这里阴影部分是相对于body定位的!!!(body>html>文档)
如果这个弹窗只写 position:absolute; top:50%; left:50%;则表示左上角那个点是居中的!!!所以这里要设置margin-top,margin-left为整个元素高、宽的一半!
而且这里要注意!!!这里的宽高不是设置的width和height值,而是padding+border+width和padding+border+height的一半!!!!
设置透明度为:opacity:0~1;filter:alpha(opacity=0~100);但是呢,半透明对IE6不兼容!打开是一片黑呀~~
这里还有一个问题,对body要设置height:100%,不然在IE6下遮罩不会占据整个屏幕的~
这里有个问题,为什么给shadow设position:relative;以后就看不到整个半透明的遮罩啦???!!!
关于relative和absolute的总结的更多相关文章
- relative 和 absolute
relative总是相对于其最近的父层 absolute总是相对于其最近的定义为relative或absolute的父层
- position中多次用到了relative和absolute,能不能具体介绍一下这两者的区别?
position中多次用到了relative和absolute,能不能具体介绍一下这两者的区别? 一个是相对定位,一个是绝对定位. absolute生成绝对定位的元素,相对于 static 定位以外的 ...
- relative和absolute的效果
我对这样几个效果不是特别理解: 1.float的效果: 就是搞不清楚我想要什么效果的时候可以将某个标签设置为float,一直没总结出什么规律. 2.relative和absolute的效果: 也是不清 ...
- [转]关于position 的 static、relative、absolute、fixed、inherit
本文转自:http://www.56770.com/faq/list/?id=410 position 有五个值:static.relative.absolute.fixed.inherit. sta ...
- relative、absolute和float
relative.absolute和float position:relative和position:absolute都可以改变元素在文档中的位置,都能激活元素的left.top.right.bo ...
- position relative和absolute区别
看这个博客 说的很详细http://blog.sina.com.cn/s/blog_647a022e0101b2gn.html 总的来说 这两个属性都是通过增加left和right偏离原来的位置 但 ...
- 细谈position属性:static、fixed、relative与absolute
学习WEB有些时日了,对DOM中的定位概念有些模糊,特地花了一个下午的时间搜资料.整理写下这篇随笔. 首先,我们要清楚一个概念:文档流. 简单的讲,就是窗体自上而下分成一行一行,并在每行中按照从左到右 ...
- relative 和 absolute 定位关系
问题: relative 和 absolute 之间的关系是什么?有什么区别? 那,答案呢? relative 相对定位, 以自己没有设置relative 属性之前的位置来定位,占用没有设置rela ...
- position的static、relative、absolute、fixed、inherit
网上有很多关于position的讲解,也有很多他们属性之间的比较,但是比较全面的讲解还是比较少,每次看完过段时间就忘了,所以今天参考了很多网上现有的资源,自己整理一下,写下这篇文章. position ...
随机推荐
- UDP:用户数据报协议
UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报.这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数 ...
- 使用异步js解决模态窗口切换的办法
核心代码 js ="setTimeout(function(){document.getElementsByTagName('Button')[3].click()},100);" ...
- 2016年江西理工大学C语言程序设计竞赛(初级组)
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int> ...
- JAVA线程同步辅助类CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 countDown() 方法,所以在当前计数到达 ...
- iotop命令
简介: iotop – simple top-like I/O monitor iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息(requires ...
- [问题2015S02] 复旦高等代数 II(14级)每周一题(第三教学周)
[问题2015S02] 设 \(a,b,c\) 为复数且 \(bc\neq 0\), 证明下列 \(n\) 阶方阵 \(A\) 可对角化: \[A=\begin{pmatrix} a & b ...
- 在mysql数据库原有字段后增加新内容
update table set user=concat(user,$user) where xx=xxx; [注释]这个语法要求原来的字段值不能为null(可以为空字符''):
- Java开发中经典的小实例-(打印九九乘法表)
public class Test16 { public static void main(String[] args) { // TODO Auto-generated meth ...
- VB6中的引用传递 与 VB.NET中的引用传递的区别
首先注意一点,在VB6中缺省参数传递的方式是:引用传递,而在VB.NET中缺省参数传递的方式是:值传递. 然后我们看下面VB6中的引用传递与VB.NET中的引用传递的对比. VB6中的引用传递 Pri ...
- .net添加下拉框
aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DropDownL ...