元素的定位

CSS定位也叫做定位布局,是继文档流,浮动布局之后的第三大布局方式,定位的意思是指定一个元素/盒子在网页上的位置  

定位的基本格式

定位模式:边偏移量属性

边偏移量属性:

偏移量:相对于原点的距离

5种定位模式

(1)静态定位 也是定位的默认值 表示的是没有开启定位

         元素会按照正常的位置显示、此时top  bottom  left right4个定位的属性也不会被应用

         position: static; 

(2)相对定位  可以使用top  bottom  left right这四个值 

         position: relative; 

(3)绝对定位  以使用top  bottom  left right这四个值

          position: absolute; 

(4)固定定位  以使用top  bottom  left right这四个值

         固定定位的元素 就是在页面中 不动的那个元素

         position: fixed; 

(5)粘性定位  粘滞定位 相当于relative和fixed的结合体

         position: sticky;

属性值  auto  length  percent百分比 

top: 100px;   从顶部的那个线开始计算 

top:50%;

top: auto; 

 -代表的是向上  +代表的是向下

right:从右往左计算 

bottom:从下到上计算

静态定位

使用静态定位的时候元素会按照正常的位置显示、并且不会受到top bottom left right等属性影响

特点:静态定位按照文档流的位置摆放 他没有边偏移量

相对定位

相对定位就是元素相对于自己默认的位置来进行的偏移

如果没有标签嵌套 那么就是相对的是浏览器

(1)不管标签嵌套不嵌套  都相对于的是原来的位置

(2)同时使用left和right left生效,同时使用top和bottom top生效

(3)不会脱离文档流 也不会对其他的元素产生影响、原来的位置依然在文档流中存在

(4)可以和外边距联合使用 但是不建议  因为定位可以直接实现

         外边距的修改会直接影响原来的占位  不建议把外边距和边偏移量一起使用

(5)也可以浮动  不允许写浮动

(1)相对定位 是相对的是自己原来的位置

                那么他存在跑出父元素的问题吗? 这个问题不成立

                因为相对的是自己。

(2)元素的类型

                       只要添加了定位 那么就变成了定位元素

                       块级元素

                       行内元素

                       行内块元素

                       所有的添加了定位的属性都是定位元素

绝对定位

绝对定位就是元素相对于第一个非静态定位的父级元素进行的定位

如果找不到符合条件的父级元素的话 则会相对的是[浏览器]进行定位

(1)脱离文档流 

(2)同时使用left 和 right的话 left生效、同时使用top  和 bottom的话 top生效

(3)实际的企业级开发中 一般都使用的是子绝父相(小盒子是绝对定位 父盒子是相对定位)

           子绝父不相的时候 相对的是谁?

            初始化包含块---就是浏览器的第一屏

            他的大小比body要小 更比html小

            html  body  初始包含块

(4) 绝对定位与浮动不能共存

固定定位

(1)脱离文档流

(2)参照的浏览器的可视化窗口  视口

(3)同时使用left right的话 left生效、同时使用top bottom的话 top生效

(4)跟父元素无关

(5)不随着滚动条而滚动的

        bug:ie8以下的浏览器 我们称之为低级浏览器  

        ie6以下 包含ie6的浏览器不支持固定定位

粘性定位

它是 relative 和 fixed 的结合体,能够实线类似吸附的效果,当滚动页面时它的效果与 relative 相同,当要滚动到屏幕之外时则会自动变成 fixed 的效果。  

总结

定位模式是否脱标移动位置是否常用
static 静态定位不能使用边偏移很少
relative 相对定位否 (占有位置)相对于自身位置移动基本单独使用
absolute绝对定位是(不占有位置)带有定位的父级要和定位父级元素搭配使用
fixed 固定定位是(不占有位置)浏览器可视区单独使用,不需要父级
sticky 粘性定位否 (占有位置)浏览器可视区当前阶段少

z-index

在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用 z-index 来控制盒子的前后次序

所有的定位元素 都有z-index属性  默认情况下:z-index  auto

(1)z-index的值 可以是正数  负数  0  

                很多的时候 都说默认值是0  其实际底层是auto

                值越大  盒子 越靠上

(2)数字后面不能加单位  

(3)如果什么都不写 按照顺序覆盖

特殊情况

特殊情况1:

元素的显示的层级会受到父元素的显示层级的影响

            老子牛     儿子就牛

            老子不牛   儿子牛 也没用

            没有老子   那就靠儿子自己

特殊情况2:

(1)没有定位的小盒子:

            小盒子没设定宽度,则其宽度继承父盒子的宽度

            内部元素的宽度会根据外部元素的宽度 自动计算

            如果添加了边框和内边距 就会压缩这个宽度

(2)相对定位的小盒子:

            在小盒子中添加了相对定位并没有任何的变化

            相对定位和没有添加相对定位的小盒子没有区别

         绝对定位的小盒子:

            定位元素的默认宽度  如果定位方式是绝对定位,小盒子会脱标

            不会根据父元素的内容来计算  而是根据小盒子的内容的本身来计算

        子绝父相的盒子:

        让小盒子撑满父盒子

        小盒子没有宽高时:

                                top:0;bottom:0;上下撑满父盒子

                                left:0;bottom:0;左右撑满父盒子 

        与宽高同时存在时,宽高生效

        固定定位的盒子:

         固定盒子脱标,以浏览器为参照

特殊情况3: 

元素居中的几种方式

(1)行内元素和行内块元素(在其父盒子上添加属性)

        text-align:center            左右居中

        line-height:height          上下居中 

(2)块级元素的居中(给自身添加属性)

        margin:0 auto                左右居中

        子盒子在父盒子中心居中      

(1)       left: 0;

                right: 0;

                top: 0;

                bottom: 0;

                margin: auto;

(2)       left:50%;

                right:50%

                padding-left:盒子宽度的一半

                padding-top:盒子高度的一半

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值