来源:自学PHP网 时间:2018-02-08 10:48 作者: 阅读:次
[导读] CSS position属性用于设置一个元素在页面中的位置。position属性规定了一个元素的定位方式,为将要定位的元素定义定位规则。...
CSS position属性用于设置一个元素在页面中的位置。position属性规定了一个元素的定位方式,为将要定位的元素定义定位规则。该属性对脚本编写动画特效十分有用。 通过 页面中的所有元素默认状态下都是“静态”的。在正常的页面文档流中,元素的默认定位方式是static定位。当一个元素使用了 除了上面介绍的5个元素定位方式,在CSS3中新增了2个元素定位方式:page和center。 当一个元素使用 偏移属性只能够在被position定位后的元素上使用,而在静态元素上是没有效果的。它们用于设置元素相对于它们的定位上下文的位置。定位上下文可以想象为决定元素偏移位置的坐标系统。 relative定位(相对定位)当元素的定位被设置为相对定位( 相对定位(position: relative)的元素仍然被认为是处于文档流之中。一个相对定位的元素会从它原来在文档流中的位置移动到新的位置上,它的新位置不会对页面元素产生影响,元素会和页面的其它元素重叠在一起。 相对定位的元素,即使它已经被移动到新的位置上,但是它的原始位置仍然会被保存在文档流中,也就是说,元素原本所在的位置留下空白,如上图所示。 absolute定位(绝对定位)当一个元素使用绝对定位( 通常我们会在一个父元素上使用 绝对定位的元素不会占据页面的空间,也就是说,一个元素被绝对定位之后,它原来的位置会被页面的其它元素占据,不会留出空白。 例如,在页面中一个元素默认是静态定位方式,对它使用 灰色的线框代表红色块元素的父元素,它被设置了相对定位 如果一个元素被设置为绝对定位,但是又没有明确指出任何它的父类元素为它的定位上下文,那么它的定位上下文元素为 fixed定位(固定定位)
和绝对定位不同的是,固定定位使元素相对于浏览器视口定位,而不是相对于其它元素。固定定位的元素会“静止”在页面的某个位置,滚动页面不会对它的位置产生任何影响。 Sticky定位(粘性定位)Sticky定位方式目前还处于测试阶段,没有得到各个浏览器的广泛支持。Sticky定位是相对定位(relative)和固定定位(fixed)的混合定位方式:一个元素开始时会被当做相对定位来处理,直到页面滚动到某个位置之后,它会被当做固定定位来处理。例如: .element { position: sticky; top: 50px; } 上面的代码使元素开始时被当做相对定位来处理,当向下滚动页面,元素距离视口顶部小于等于50像素的时候,元素会固定定位在这个位置上。如果向上滚动页面,元素距离视口顶部的位置大于了50像素,元素又会重新被当做相对定位来处理。 在使用Sticky定位时需要注意的是,一定要为元素设置一个“临界值”,例如
目前只有Firefox、Safari和iOS Safari浏览器支持元素的Sticky定位。 Center定位Center定位也处于测试阶段,没有得到各个浏览器的广泛支持。正如其名,Center定位方式使一个元素相对于另一个元素居中定位。使用了 Page定位Page定位方式目前也处于测试阶段,它的具体行为目前还不清楚。它和分页媒体()或使用创建的块元素有关。 注意事项对于相对定位元素, 对于绝对定位元素, 一个绝对定位的元素会占用它的父元素的水平和垂直空间。如果你想绝对定位元素占据整个父元素的空间,可以设置偏移属性 position: absolute; left: 0; right: 0; 同样,在垂直方向上,可以通过 绝对定位元素的定位值发生冲突时的解决方法如下:
官方语法position: static | relative | absolute | sticky | center | page | fixed 参数:
应用范围
示例代码下面是一些元素定位的示例代码。 /* 父元素设置为相对定位*/ .parent { position: relative; } /* 子元素使用据对定位,它位于父元素左上角向下10像素,向右30像素 */ .child { position: absolute; top: 10px; left: 30px; } /* 一个固定定位的元素 */ .element{ position:fixed; top:0; left:0; } /* 一个粘性定位的元素 */ .element{ position: sticky; top: 50px; } 在线演示相对定位:下面的例子演示了相对定位的效果。第二个元素设置了相对定位,偏移属性top和left都是20像素,可以看到第二个元素向右和向下分别移动了20像素,但是文档中仍保留它原来的位置,其它元素不会占据它的位置。 蓝色虚线框是一个虚拟的元素(实际是第二个元素的伪元素),它代表元素原来的位置。 绝对定位:下面的例子演示了绝对定位的效果。第一个元素设置了相对定位,第二个元素是它的子元素,它使用绝对定位方式,此时第二个元素相对于第一个元素绝对定位。 由于第二个元素采用了绝对定位方式,它会脱离文档流,它原来的位置会被其它元素占据。 更多的demo请下载下面的文件来查看。
浏览器支持所有的现代浏览器都支持 但是, 支持 支持 目前没有浏览器支持 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com