Blogger Information
Blog 16
fans 0
comment 0
visits 13593
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
定位position - 20190426
饺子°的博客
Original
747 people have browsed it

一、定位

  定位:将元素在页面中重新排列,分为四类
    Ⅰ 静态定位: 浏览器默认方式, 即文档流中的位置
    Ⅱ 相对定位: 元素并未脱离文档流,只是相对于它原来的位置,做相对移动

实例

<!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;
}
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post