前端基础——定位(position)
relative相对定位/定位偏移量
position:relative; 相对定位
a、不影响元素本身的特性;
b、不使元素脱离文档流(元素移动之后原始位置会被保留);
c、如果没有定位偏移量,对元素本身没有任何影响;
d、提升层级
定位元素位置控制
top/right/bottom/left 定位元素偏移量。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
div{
width: 200px;
height: 200px;
}
.div1{
background-color: red;
}
.div2{
/*margin-top: 200px;
margin-left: 200px;*/
position: relative;
left:200px;
top:200px;
background-color: blue;
}
.div3{
background-color: green;
}
</style>
<!--
相对定位的特征
a、不影响元素本身的特性;
b、不使元素脱离文档流(元素移动之后原始位置会被保留);
c、如果没有定位偏移量,对元素本身没有任何影响;只写position: relative;没影响
d、提升层级
-->
</head>
<body>
<div class="div1">div1</div>
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>
</body>
</html>
absolute绝对定位/定位层级
position:absolute; 绝对定位
a、使元素完全脱离文档流;
b、使内嵌支持宽高;
c、块属性标签内容撑开宽度;
d、如果有定位父级相对于定位父级发生偏移,没有定位父级相对于document发生偏移;
e、相对定位一般都是配合绝对定位元素使用;
f、提升层级
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
body{
/*margin:0;*/ /*body有个默认样式,在谷歌浏览器中margin:8px;*/
position: relative;
}
div{
width: 200px;
height: 200px;
}
.div1{
background-color: red;
}
.div2{
position: absolute;
left:200px;
top:400px;
background-color: blue;
}
.div3{
position: absolute;
top: 400px;
background-color: green;
}
</style>
<!--
绝对定位的特征
a、使元素完全脱离文档流;
b、使内嵌支持宽高;
c、块属性标签内容撑开宽度;
d、如果有定位父级相对于定位父级发生偏移,没有定位父级相对于document(指的是可视区域)发生偏移;
e、相对定位一般都是配合绝对定位元素使用;
f、提升层级
-->
</head>
<body>
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>
</body>
</html>
z-index:[number]; 定位层级
a、定位元素默认后者层级高于前者;
b、建议在兄弟标签之间比较层级
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{
width: 300px;
height: 300px;
}
.box{
margin: 100px auto;
position: relative;
}
.content{
position: absolute;
background-color: blue;
left: -6px;
top: -6px;
z-index: 2; /*提升层级,想要在前面,就要大于后面的z-index*/
}
.mark{
position: absolute;
background-color: black;
right: -6px;
bottom: -6px;
z-index: 1;
opacity: 0.5;
}
</style>
</head>
<body>
<div class="box">
<div class="content"></div>
<div class="mark"></div>
</div>
</body>
</html>
position:fixed; 固定定位
与绝对定位的特性基本一致,的差别是始终相对整个文档(即浏览器的可是区域)进行定位;
问题:IE6不支持固定定位;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
body{
height: 3000px;
}
div{
width: 100px;
height: 100px;
background-color: red;
position: fixed;
right: 0;
bottom: 0;
}
</style>
</head>
<body>
<div>返回顶部</div>
</body>
</html>
定位其他值:
position:static ; 默认值
position:inherit ; 从父元素继承定位属性的值 (不兼容)
position:relative | absolute | fixed | static | inherit;
定位清浮动方法、遮罩滤镜
position:absolute; 绝对定位元素子级的浮动可以不用写清浮动方法;
position:fixed; 固定定位元素子级的浮动可以不用写清浮动方法;(IE6不兼容)
遮罩弹窗(优酷弹窗)
标准 不透明度: opacity:0~1;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
div{
width: 500px;
height: 500px;
background-color: blue;
color: red;
font-size: 48px;
background-color: red;
opacity: 0.2;
}
p{
width: 300px;
height: 300px;
background-color: blue;
}
span{
font-size: 48px;
color: red;
}
</style>
</head>
<body>
<div>
<p></p>
</div>
<span>学习透明度opacity</span>
</body>
</html>
IE 滤镜: filter:alpha(opacity=0~100);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
div{
width: 300px;
height: 300px;
background-color: red;
filter:alpha(opacity=50);
opacity: 0.5;
}
</style>
<!--
IE6、7下的透明度设置
filter:alpha(opacity=0 ~ 100);
-->
</head>
<body>
<div></div>
</body>
</html>

浙公网安备 33010602011771号