css的定位方式

本文详细介绍了CSS中的四种定位方式:z-index决定元素层级,relative相对定位,absolute绝对定位脱离文档流,fixed固定定位与页面固定,sticky粘性定位。通过实例展示了它们在布局中的应用和特点。
摘要由CSDN通过智能技术生成

   z-index值的大小决定层级高低,决定相同位置的元素谁会被覆盖,定位元素的z-index值默认是0但是都比普通元素要大,所以默认情况下相同位置的元素,定位元素可以覆盖在普通元素上。

1.相对定位

position: relative
相对定位是相对自己原来的位置来进行偏移,但是没有脱离文档流它所在的位置仍然被它占据着

lef: 相对原来位置向左偏移量:

right: 相对原来位置向右偏移量:

top: 相对原来位置向上偏移量:

bottom:相对原来位置向下偏移量

2.绝对定位

position: absolute

绝对定位是脱离文档流的

绝对定位是相对距离自己最近的开启定位的父类元素一级一级的往上找直到找到第一个开启定位的父元素如果一直找不到则默认为<html>,称之为包含块

left: 距离包含块左边的距离:

right:  距离包含块右边的距离:

top:  距离包含块上边的距离:

bottom: 距离包含快下边的距离:

同一个水平方向只写一个:如left和right只能写一个

演示:在没有开启定位时子元素inner1和inner2是块级元素各自占用整个宽度

<!DOCTYPE html>
<html lang="ZH-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .outer {
            width: 500px;
            height: 500px;
            background-color: aqua;
            margin: 0 auto;
        }
        .inner1 {
            width: 100px;
            height: 100px;
            background-color: brown;
        }
        .inner2 {
            width: 100px;
            height: 100px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner1"></div>
        <div class="inner2"></div>
    </div>
    
</body>
</html>

当给父元素开启相对定位时再给子元素开启绝对定位并且定位距离父元素left: 200px,top: 0px

<!DOCTYPE html>
<html lang="ZH-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .outer {
            width: 500px;
            height: 500px;
            background-color: aqua;
            margin: 0 auto;
            position: relative;
        }
        .inner1 {
            width: 100px;
            height: 100px;
            background-color: brown;
            font-size: 20px;
        }
        .inner2 {
            width: 100px;
            height: 100px;
            background-color: yellow;
            font-size: 20px;
            position: absolute;
            left: 200px;
            top: 0;
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner1">inner1</div>
        <div class="inner2">inner2</div>
    </div>
    
</body>
</html>

效果图可以说明绝对定位是脱离文档流的并且是相对第一个开启定位的父元素而言的

3.固定定位

position: fixed

固定定位,相对与网页是固定的,你滑动网页它也不会动,视口,列如广告

直接写距离网页边框的距离

left: 距离网页左边框的距离:

right:  距离网页右边框的距离:

top:  距离网页上边框的距离:

bottom: 距离网页下边框的距离:

4.粘性定位
position: sticky
是相对最近的一个可滑动的块内生效(一般是指body元素)当滑动到它时它会固定在网页直到划过它的父元素。注意开启粘性定位后父元素不能overflow不能设置为hidden和auto

通常只用写top值即可就是距离网页上边框距离为多大时黏住

直到所在的父元素结束。

开启定位的都是定位元素定位元素,定位元素不影响其他元素的布局
大小由内容撑开,可以写大小,但是一个绝对定位的元素没有写大小(由内容决定的)不能撑满整个包含块时,需要设置left :0;right:0;撑满 

定位可以解决块内元素布局的问题,可以实现二级菜单下次再说如何只利用css实现二级菜单

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值