美文网首页
CSS 定位

CSS 定位

作者: 陈佳浩_19强化班 | 来源:发表于2019-10-27 14:55 被阅读0次

定位

相对定位

相对定位就是相对于自己以前在标准流中的位置来移动

格式:

position: relative;

示例程序

<style>

        *{

            margin: 0;

            padding: 0;

        }

        div{

            width: 100px;

            height: 100px;

        }

        .box1{

            background-color: red;

        }

        .box2{

            background-color: green;

            position: relative;

            top: 20px;

            left: 20px;

        }

        .box3{

            background-color: blue;

        }

<style>

       

<div class="box1"></div>

<div class="box2"></div>

<div class="box3"></div>

相对定位注意点:

在相对定位中同一个方向上的定位属性只能使用一个

top/bottom 只能用一个

left/right 只能用一个

相对定位是不脱离标准流的, 会继续在标准流中占用一份空间

由于相对定位是不脱离标准流的, 所以在相对定位中区分块级元素/行内元素/行内块级元素

由于相对定位是不脱离标准流的, 并且相对定位的元素会占用标准流中的位置, 所以当给相对定位的元素设置margin/padding等属性的时会影响到标准流的布局

相对定位应用场景:

用于对元素进行微调

input{

width: 200px;

height: 50px;

}

img{

width: 100px;

height: 50px;

  position: relative;

  top: 20px;

}

绝对定位

绝对定位就是相对于body或者某个定位流中的祖先元素来定位

格式:

position: absolute;

示例代码

<style>

        *{

            margin: 0;

            padding: 0;

        }

        div{

            width: 100px;

            height: 100px;

        }

        .box1{

            background-color: red;

        }

        .box2{

            background-color: green;

            position: absolute;

            left: 0;

            top: 0;

        }

        .box3{

            background-color: blue;

        }

</style>

   

<div class="box1"></div>

<div class="box2"></div>

<div class="box3"></div>

绝对定位注意点:

绝对定位的元素是脱离标准流的, 不会占用标准流中的位置

由于绝对定位的元素是脱离标准流的, 所以绝对定位的元素不区分块级元素/行内元素/行内块级元素

如果一个绝对定位的元素是以body作为参考点, 那么其实是以网页首屏的宽度和高度作为参考点, 而不是以整个网页的宽度和高度作为参考点

相对于body定位会随着页面的滚动而滚动

一个绝对定位的元素会忽略祖先元素的padding

<style>

        *{

            margin: 0;

            padding: 0;

        }

        .box1{

            width: 300px;

            height: 300px;

            background-color: red;

            border: 10px solid #000;

            padding: 30px;

            position: relative;

            box-sizing: border-box;

        }

        .box2{

            width: 100px;

            height: 100px;

            background-color: green;

            position: absolute;

            left: 0;

            top: 0;

        }

</style>

<div class="box1">

    <div class="box2"></div>

</div>

绝对定位参考点:

默认情况下所有的绝对定位的元素, 无论有没有祖先元素, 都会以body作为参考点

如果一个绝对定位的元素有祖先元素, 并且祖先元素中有一个是定位流中的元素, 那么这个绝对定位的元素就会以定位流的那个祖先元素作为参考点

如果一个绝对定位的元素有祖先元素, 并且祖先元素中有多个是定位流中的元素, 那么这个绝对定位的元素会以离它最近的那个定位流的祖先元素为参考点

<style>

        *{

            margin: 0;

            padding: 0;

        }

        .box1{

            width: 300px;

            height: 300px;

            background-color: red;

            position: relative;

        }

        .box2{

            width: 200px;

            height: 200px;

            background-color: green;

        }

        .box3{

            width: 100px;

            height: 100px;

            background-color: blue;

            position: absolute;

            left: 0;

            bottom: 0;

          }

</style>

   

<div class="box1">

    <div class="box2">

        <div class="box3"></div>

    </div>

</div>

<style>

        *{

            margin: 0;

            padding: 0;

        }

        .box1{

            width: 300px;

            height: 300px;

            background-color: red;

            position: relative;

        }

        .box2{

            width: 200px;

            height: 200px;

            background-color: green;

            position: relative;

        }

        .box3{

            width: 100px;

            height: 100px;

            background-color: blue;

            position: absolute;

            left: 0;

            bottom: 0;

          }

</style>

   

<div class="box1">

    <div class="box2">

        <div class="box3"></div>

    </div>

</div>

绝对定位水平居中

1.注意当一个盒子绝对定位之后不能使用margin: 0 auto;让盒子自身居中

2.如果想让过一个绝对定位的盒子自身居中, 可以使用left: 50%; margin-left:-元素宽度一半px;

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>74-绝对定位水平居中</title>

    <style>

        *{

            margin: 0;

            padding: 0;

        }

        div{

            width: 400px;

            height: 50px;

            background-color: red;

            position: absolute;

            /*无效*/

            /*margin: 0 auto;*/

            /*有效*/

            left: 50%;

            margin-left:-200px;

        }

    </style>

</head>

<body>

<div></div>

</body>

</html>

绝对定位应用场景:

用于对元素进行微调

配合后面学习的绝对定位来使用

相关文章

  • css定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位 (Positioning)

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • css 定位 浮动

    定位 1 . css 定位:改变元素在页面上的位置2 . css 定位机制:普通流浮动绝对布局3 . css 定位...

  • CSS定位

    CSS定位(Positioning)允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供了一些属性...

  • CSS中的几种定位

    CSS中常用的定位有 普通定位,相对定位 绝对定位、fixed定位 浮动 1、普通定位和相对定位 css中的元素有...

  • CSS 定位

    CSS定位 CSS 定位机制 CSS中一共有三种基本定位机制:普通流、浮动、绝对定位。如果不进行专门指定,所有的标...

  • 图片精灵

    div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css ...

  • 元素定位

    八大定位 Xpath定位 css定位

  • CSS定位与浮动2016/6/12

    CSS 定位 (Positioning) CSS 有三种基本的定位机制:普通流、浮动和绝对定位。 position...

网友评论

      本文标题:CSS 定位

      本文链接:https://www.haomeiwen.com/subject/mcapvctx.html