Web中的坐标系

最近在看大漠的Canvas相关文章,看到关于Web坐标系相关介绍,深有体会。弄清楚了Web中的坐标,对CSS相关定位方面的理解,就会清晰很多。

笛卡坐标系

在数学里,我们学过一种坐标系统,叫作笛卡坐标系(Cartesian Coordinate system),这个坐标系统也称为直角坐标系,是一种正交坐标系。

二维的直角坐标系是由两条相互垂直、0点重合的数轴构成的。在平面内,任何一点的坐标是根据数轴上对应的点的坐标设定的。在平面内,任何一点与坐标的对应关系,类似于数轴上点与坐标的对应关系。

可能你对笛卡坐标系有了一定的了解,咱们在此基础上来看一个简单的示例,比如下图:

你可以看到,每个点都有一双与之关联的值。这些被称为坐标点,通常表示为(x,y)。x位于水平轴上,y位于垂直轴上。其中(0,0)点是坐标原点。x轴从原点向右方向为正值,反之为负值,y轴从原点向上为正值,反之为负值。

正如上图所示,(2,3)表示x = 2,y=3。我们从坐标原点,沿x轴向右2格位置处画一条与y轴平行的线;另外沿y轴向上3格位置处画一条与x轴平行的线。这两条线交汇处就是(2, 3)的坐标点。

Web中的坐标系统

但在Web页面中,或者说我们的浏览器中也有一个坐标系统。只是他和我们数学中的坐标系统不一样。Web的坐标系统的原点是在屏幕(浏览器屏幕)的左上角。如下图所示:

同样的它有两个坐标轴,x轴(水平轴)和y轴(垂直轴)。两轴的交汇点(左上角)为坐标原点(0,0)。原点沿x轴向右是正值,原点沿y轴向下是正值。

当然这也不是说所有情况都是不可以见的。如果一个容器div里的另一个元素做x和y负值的移动,容器div如未做overflow:hidden处理,他在屏幕中是可见的。

原文链接