一、定位
定位:将元素在页面中重新排列,分为四类
Ⅰ 静态定位: 浏览器默认方式, 即文档流中的位置
Ⅱ 相对定位: 元素并未脱离文档流,只是相对于它原来的位置,做相对移动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="static/css/style4.css"> <title>定位与相对定位(position:relative)</title> </head> <body> <!-- 相对定位小案例: 在页面中创建一个彩色十字架--> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> <div class="box4"></div> <div class="box5"></div> </body> </html>
.box1 {
width: 150px;
height: 150px;
background-color: lightblue;
}
.box2 {
width: 150px;
height: 150px;
background-color: lightgray;
}
.box3 {
width: 150px;
height: 150px;
background-color: lightgreen;
}
.box4 {
width: 150px;
height: 150px;
background-color: lightcoral;
}
.box5 {
width: 150px;
height: 150px;
background-color: lightseagreen;
}
/*下面对每个区块进行相对定位完成目标*/
/* 相对定位 */
.box1 {
position: relative;
/* 第一个区块,向右移动150px即可 */
left: 150px;
}
.box2 {
/* 第二个区块不需要移动 */
}
.box3 {
position: relative;
/* 第三个区块: 先右移动300px, 再向上移动150px */
left: 300px;
top: -150px; /* 注: 这里必须使用负数才可以向反方向移动 */
}
.box4 {
position: relative;
/* 第四个区块: 先右移动150px, 再向上移动300px */
left: 150px;
top: -300px; /* 注: 这里必须使用负数才可以向反方向移动 */
}
.box5 {
position: relative;
/* 第五个区块与第三个区块操作完全相同: 先右移动150px, 再向上移动300px */
left: 150px;
top: -300px; /* 注: 这里必须使用负数才可以向反方向移动 */
}Ⅲ 绝对定位: 元素脱离文档流重新排列,不论元素之前是什么类型,全部转为块元素,支持宽高
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="static/css/style5.css"> <title>绝对定位小案例(position:absolute)</title> </head> <body> <!-- 定位参照物: 1. 相对定位, 是以元素在文档流中的原始位置为参照物进行定位的 2. 绝对定位, 它是脱离了文档流的, 所有必须要有一个定位父级做为参照物 position: absolute; 默认以整个窗口进行绝对定位, 定位父级是<body> --> <!-- <div style="width: 100px;height:100px;background: black;position: absolute; left:0;top:0;"></div>--> <!-- 黄色色块是红色色块的定位父级元素, 红色色块相对于父级进行定位的--> <!-- <div style="width: 300px; height: 200px;background: yellow; position: relative;">--> <!-- 绝对定位元素, 总是相对于离它最近的定位元素进行定位--> <!-- <div style="width: 100px;height:100px;background: red;position: absolute; left:20px;top:20px;"></div>--> <!-- </div>--> <!-- 绝对定位小案例: 在页面中创建一个彩色十字架--> <div class="parent"> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> <div class="box4"></div> <div class="box5"></div> </div> </body> </html>
.parent {
position: relative;
/* 也可以使用绝对定位,但推荐使用相对定位,以防止一些兼容性问题 */
/*position: absolute;*/
border: 1px dashed gray;
width: 450px;
height: 450px;
}
.box1 {
width: 150px;
height: 150px;
background-color: lightblue;
}
.box2 {
width: 150px;
height: 150px;
background-color: lightgray;
}
.box3 {
width: 150px;
height: 150px;
background-color: lightgreen;
}
.box4 {
width: 150px;
height: 150px;
background-color: lightcoral;
}
.box5 {
width: 150px;
height: 150px;
background-color: lightseagreen;
}
/*下面进行绝对定位*/
.box1 {
position: absolute;
/* 第一个区块只需要右移150px,即可 */
left: 150px;
}
.box2 {
position: absolute;
/* 第二个区块, left不用设置,只需要top=150px,将它从左上角顶下来即可 */
top: 150px;
}
.box3 {
position: absolute;
/* 第三个区块向右跨二个区块位置,并向下移一个区块位置 */
left: 300px;
top: 150px;
}
.box4 {
position: absolute;
/* 第四个区块,向右向下各移动一个区块位置 */
left: 150px;
top: 150px;
}
.box5 {
position: absolute;
/* 第五个区块,向右移动一个区块位置,向下移动二个区块位置 */
left: 150px;
top: 300px;
} Ⅳ 固定定位: 始终相对于浏览器的窗口做为定位父级,进行定位
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>固定定位小案例(position:fixed)</title> <link rel="stylesheet" href="static/css/style7.css"> </head> <body> <h1>固定定位小案例:实现广告位</h1> <div class="ads"> <button onclick="this.parentNode.style.display = 'none'">X</button> <h2>php中文网第六期线上班</h2> <h1>招生进行中...</h1> </div> </body> </html>
body {
height: 2000px;
}
.ads {
width: 350px;
height: 250px;
background-color: lightblue;
position: fixed;
right: 0;
bottom: 0;
}
button {
float: right;
margin-top: 10px;
margin-right: 20px;
border: none;
background: none;
color: red;
font-size: 2em;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号