饥人谷技术博客

关于CSS定位中的位置

2016-07-10  本文已影响360人  婷楼沐熙

刚刚学习了定位,一开始还是比较晕的,特别是关于里面的各种相对位置,不知道它们的坐标具体是怎么算的。所以这里特别的记录一些影响到定位当中位置的一些东西。


一、盒模型

在聊位置之前,我们先来看看之前说过的盒模型。


盒模型

我们从内到外来看看这个盒模型。

二、定位中“位置”的计算

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
    <title>定位</title>
    <style>
    .container{
        position: relative;
        width: 200px;
        height: 200px;
        margin: 40px;
        padding: 40px;
        background: pink;
        border: 5px dashed;
    }
    .box{
        position: absolute;
        width: 100px;
        height: 10px;
        margin: 20px;
        padding: 20px;
        background: yellow;
        border: 5px dashed;
        top: 0px;
        left: 0px;

    }
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>
定位的坐标原点
在上面的例子当中,我们把box的坐标设为(0,0)。通过上面的效果图可以知道,container和box的border距离为20px,这就是box的margin。所以可以得出的结论是,在relative和absolute结合使用的情况下,构成坐标原点的是padding edge的左上角,这就是我们经常说的相对于祖先元素的左上角的那个角进行的偏移。而我们给绝对定位设置的坐标就是这个元素的margin edge的左上角。所以如果对定位元素设置了坐标(left、top、bottom、right)的话,一般不要设置margin,不然很难进行精确的定位。

三、包含块

如果祖先元素能为后代生成包含块的情况下,构成XY相对坐标系的准确来说其实是包含块,不一定是父级元素。我们先来看看包含块的定义:

CSS包含块是CSS的视觉可视化模型的一个重要的基本概念,因为每个元素都是相对于其包含块摆放的。也就是说,元素的包含块为元素的尺寸和位置的计算提供了参考,是元素的“定位上下文”。

元素的包含块与它的定位方式相关,定位方式不同,包含块也不一样,下面分情况进行说明。

四、定位当中的一些小知识点


感觉定位这一块还有许多要学习的东西,以后再来慢慢积累吧。


上一篇 下一篇

猜你喜欢

热点阅读