关于css的定位属性

关于css的定位属性

一、什么是定位

css中的定位属性为position,它规定元素的定位类型,选择不同的参照物和定位方式。分为五种:默认 绝对 相对 固定 黏性

二、属性值逐一描述

1、默认属性值

position:static;

. 不特别设置的情况下,每个元素默认的属性值

. 不会识别left right top bottom指定坐标

.不能通过z-index进行层次分级

2、绝对定位

position:absolute;

. 通过 left right top bottom 指定坐标,选取其有定位设置的父元素作为参照物进行移动,若父元素没有设置定位则选取其最近的有定位设置的“爷爷”辈作为参照物进行移动

假如父辈们都没有设置定位的情况下,则以整个页面作为参照物

. 脱离整个文档流,不再占据原来位置,原来位置由后面元素补上,即破坏本来文档流

实例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>

.father{

width: 900px;

height: 300px;

position: relative;

}

.child-1{

width: 200px;

height: 150px;

text-align: center;

position:absolute ;

left: 500px;

bottom: 0;

}

.child-2{

width:200px;

height: 150px;

text-align: center;

}

</style>

</head>

<body>

<div class="father">

<div class="child-1">a</div>

<div class="child-2">b</div>

</div>

</body>

</html>

效果:

解释:我们在效果图中可以看到a脱离了文档流,影响到了b的位置

3、相对定位

. 通过 left right top bottom 指定坐标,选取其自身作为参照物进行移动

. 不脱离文档流,依然占据原来的空间

. 对象不可以进行层叠

实例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>

.father{

width: 900px;

height: 300px;

}

.child-1{

width: 200px;

height: 150px;

text-align: center;

position:relative;

left: 500px;

bottom: 0;

}

.child-2{

width:200px;

height: 150px;

text-align: center;

}

</style>

</head>

<body>

<div class="father">

<div class="child-1">a</div>

<div class="child-2">b</div>

</div>

</body>

</html>

效果:

解释:我们在效果图中可以看到,a元素相对于自身原来的位置进行了调整,但并没有影响到b元素。

4、固定定位

position:fixed;

. 通过 left right top bottom 指定坐标,选取整个浏览器窗口做为参照物,不会随滚动条的移动而发生位置变化,固定在浏览器的某个位置

. 脱离文档流,不再占据原来位置

实例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>

.father{

width: 900px;

height: 300px;

}

.child-1{

width: 200px;

height: 150px;

text-align: center;

position:fixed;

right: 0;

bottom: 0;

}

.child-2{

width:200px;

height: 150px;

text-align: center;

}

</style>

</head>

<body>

<div class="father">

<div class="child-1">a</div>

<div class="child-2">b</div>

</div>

</body>

</html>

效果图:

解释:类似于absolute,但不随着滚动条的移动而改变位置

5、黏性定位

position:sticky;

. 通过 left right top bottom 指定坐标,选取整个浏览器窗口做为参照物

. position:relative和position:fixed的结合

实例:<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>

.father{

width: 1000px;

height: 2000px;

margin: 0 auto;

}

.child-1{

width: 800px;

height: 200px;

}

.child-2{

width: 800px;

height: 100px;

text-align: center;

position:sticky;

top: 0;

}

.child-3{

width: 800px;

height: 200px;

}

.child-4{

width: 800px;

height: 200px;

}

.child-5{

width: 800px;

height: 200px;

}

.child-6{

width: 800px;

height: 200px;

}

</style>

</head>

<body>

<div class="father">

<div class="child-1"></div>

<div class="child-2">添加position:sticky;</div>

<div class="child-3"></div>

<div class="child-4"></div>

<div class="child-5"></div>

<div class="child-6"></div>

</div>

</body>

</html>

效果图:

当元素距离页面顶口·的距离大于0px时:

当元素距离页面顶口的距离小于0px时:

解释:如果页面没超出元素范围,按照relative执行,如果页面超出窗口范围,按照fixed执行,top=0;也就是会固定在页面顶部

三、定位元素的层级关系

当为某些元素设置position值为relative/absolute/fixed后,元素发生的偏移可能产生重叠,这时元素的堆叠顺序将会产生问题

. 后写的元素会把前写的盖住

. 元素添加定位属性position:absolute;/relative;/fixed;后会激活z-index属性,通过属性z-index来控制定位元素层级关系

z-index默认值为auto,在层次水平上相当于0,不会产生层叠上下文,但比普通没有添加定位属性position:absolute;/relative;/fixed;的z-index的值要大

z-index属性值为一个数字,可以为负数。数字越大,层次关系越高

四、包含块的作用

包含块就是定位参考框,或者定位坐标参考系,元素一旦定义了定位显示(absolute、relative、fixed)都具有包含块性质,它所包含的定位元素都将以该包含块为坐标系进行定位和调整。定位元素的边界是指定位元素margin外侧的边界,包含块的区域是指包含块的border内侧的padding+content的区域

原文地址:https://www.cnblogs.com/dzh-123/p/12349514.html

时间: 2024-11-06 13:56:53

关于css的定位属性的相关文章

CSS的定位属性

本文主要讲一些关于CSS布局的方法,在此之前,我看到了不少关于布局方面的好文章,也收到了非常多的启发,所以写此文章,将一些想法给记录下来. 说到布局,大多数人肯定会想到的几个常用的属性:position.float.flex等.本文主要讲述这几个属性的使用方法以及分栏布局的实现. 本文的结构如下: HTML的布局要点(盒模型.普通流) positon属性 float属性 HTML的布局要点: 对position.float等属性熟练使用的话,那么HTML的基本布局特点是要了如指掌的.HTML的基

CSS Position 定位属性

1. 介绍 1.1 说明 Position 属性:规定元素的定位类型.即元素脱离文档流的布局,在页面的任意位置显示. 1.2 主要的值 ①absolute :绝对定位:脱离文档流的布局,遗留下来的空间由后面的元素填充.定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身. ②relative :相对定位:不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域.定位的起始位置为此元素原先在文档流的位置. ③fixed :固定定位:类似于absolut

css之定位属性

定位标签:position包含的属性:relative(相对)与 absolute(绝对)1.position:relative:如果对一个元素进行相对定位,首先它将出现在它所在的位置上. 然后通过设置垂直或水平位置,让这个元素"相对于"它的原始起点进行移动. (再一点,相对定位时,无论是否进行移动,元素仍然占据原来的空间.因此,移动元素会导致它覆盖其他框) 例如:.mybox{ position:relative; left:20px; top:20px;}效果就是使这个层向下和向左

css中的定位属性position

同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来实现的一些特效经常会用到定位属性,比如鼠标滑过显示被隐藏的盒子, banner的切换,还有之前写的jquery实现京东商品分类导航的类似这样的布局也是要结合定位属性来实现,但是上一次着重只写了jquery. 那么这次我想将定位属性的运用拿来说一下. 定位属性position常用的取值:relative/absolute/fixed;一般配

前端学习(14)~css学习(八):定位属性

CSS的定位属性有三种,分别是绝对定位.相对定位.固定定位. position: absolute; <!-- 绝对定位 --> position: relative; <!-- 相对定位 --> position: fixed; <!-- 固定定位 --> 相对定位 相对定位:让元素相对于自己原来的位置,进行位置调整(可用于盒子的位置微调). 格式: position: relative; left: 50px; top: 50px; 相对定位的举例: <!do

css定位属性的运用

position定位属性,检索或设置对象的定位方式 CSS的定位属性有分为静态定位.绝对定位.相对定位.固定定位.黏性定位. position:static;                 <!-- 静态定位 --> position:absolute;            <!-- 绝对定位 --> position:relative;              <!-- 相对定位 --> position:fixed;                  <

深入理解css中的定位属性:position

深入理解css中的定位属性:position 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共有四种不同的定位方法,分别是static.fixed.relative.absolute. 第一部分:static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到top,bottom,left,right的影响. 如html代码如下: <div class=&qu

CSS定位属性之间的相互作用

0. 目录 目录 引言 正文 1 DISPLAY NONE 2 POSITION ABSOLUTE OR FIXED Float DISPLAY 3 FLOAT LEFT OR RIGHT DISPLAY 4 POSITION STATIC 偏移值 声明 1. 引言 原文:bitsofcode的HOW POSITIONING CSS PROPERTIES INTERACT 译者:爱前端,乐分享的FedFun,前端痴王海庆的博客. 译言:来看下CSS标布局情况下,定位相关属性之间的相互作用,意译为

Css中Position定位属性与层级关系

今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Css中Position定位属性与层级关系</title> 6 <style type="text/css"> 7 #W{ 8