2019-10-07 那些X 与 定位 和 位置指定

文章1里,提到了各种可能用到的高宽值,为我们对元素的位置的理解与设置铺垫了基础,现在来看看文档中元素的位置的相关问题。

对于定位元素,我们可以在css中设置其top、left、bottom、right 属性,对元素进行位置的指定。定位,一定要有个相对参照点,把参照点作为原点来对元素进行定位。在此基础上,我们第一想到的是 position:absolute 的元素,因为其定位就是相对于最近的定位祖先元素进行定位,那么我们就可以通过控制其祖先的位置,然后把一个 absolute 元素来相对祖先进行定位,进行一探究竟。

通过实例,我们可以看到,设置 top、left、bottom、right 属性对元素定位,其实是两个元素的最靠近的两条 border 边界线之间的距离。

而 fixed 元素,不过是把相对的定位元素换成 html 元素 罢了(即相对文档定位),计算方式还是一样。
这里有个问题?

需要注意的是,前面都是只设置了定位属性,而没有设置 margin ,默认情况下俩定位元素间 margin 为0(默认情况下body和html间存在margin)。那设置了 margin 又是什么情况呢?从上图可知,在设置了margin情况下,在 margin 计算完成后(边距融合等情况计算后),margin 视为 某一个元素的一部分,即此时 left (或其它) 代表的是完整的两个元素之间的距离,从一个元素的最 靠近另一个元素的border的一条边 到另一个元素的 margin 的外侧的距离。在我们视觉看来,此时两个元素间的距离是大于 left (或其它)的值的,原因是 margin 不可见,而 margin 是算作某一个元素的内部的,不在包含在 left (或其它)。

在对定位有了初步的了解之后,我们来看一下,涉及到位置的地方:
在多种事件对象中,包含了位置相关信息,比如:
TouchEvent 中的 Touch 类对象就包含了

Touch.screenYTouch.clientYTouch.pageY 等属性,分别指事件发生时的 相对于 屏幕 、 浏览器视口 、 文档 的坐标。

UIEvent 作为 TouchEvent 的父类,也有差不多的属性。

MouseEvent 作为 TouchEvent 的兄弟类,同样有差不多的属性。

getBoundingClientRect() 返回相对于视口坐标

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,068评论 0 0
  • 当在这一个页面上实现布局和定位有几种不同的技术。使用哪种技术,很大程序上取决于内容和目标页面,因为有很多技术比别人...
    lulu_c阅读 1,106评论 0 5
  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 2,368评论 0 7
  • 一、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征:1、浮动模型是一种可视化格式...
    青鸣阅读 1,074评论 0 0
  • "你未看此花时,此花与汝心同归于寂;你来看此花时,则此花颜色一时明白起来。 "一王阳明 微信7.0开机界面变成了这...
    黄向书阅读 216评论 0 0