CSS浮动与定位

浮动float

float是一个非标准流,即不按常规进行布局

例 当建立两个div

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
  .div1{
      width: 200px;
      height: 200px;
      background-color: red;
  }
        .div2{
            width: 200px;
            height: 200px;
            background-color: green;
        }
    </style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
</body>
</html>

结果应如下
在这里插入图片描述

给div1加个float后,就变成了如下
代码:

 .div1{
      width: 200px;
      height: 200px;
      background-color: red;
      float: left;
  }

结果
在这里插入图片描述

虽然只显示一个div 但其实这个既是div1,又是div2
只是因为div1加了浮动后变成了非标准流,而盒子中其它标准流视浮动盒子不存在而占据了它的位置,但内容会受到浮动盒子宽度的影响

消除浮动的方法

-clear:left /right/both 消除左浮动/右浮动/两边

清除浮动影响方式

-增加兄弟块元素
-通过伪类:after清除浮动的影响

定位position

1.相对定位 relative

相对于原来本身的位置定位,其所占的空间位置保留

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
  .div1{
      width: 200px;
      height: 200px;
      background-color: red;
      color: white;
      position: relative;
      top: 50px;
      right: 30px;
  }

    </style>
</head>
<body>

<div class="div1">gggg</div>

</body>
</html>

div以自身为参考偏移,其结果如下
在这里插入图片描述

2.绝对定位 absolute

相对于离它最近的有定位的元素定位(如果父元素有定位,就相对于父元素定位,如果没有,相对于整个页面定位)
一般的,如果一个元素要使用绝对定位,则先给它的父元素一个相对定位(不用写top和left),再用绝对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
  .div1{
      width: 200px;
      height: 200px;
      background-color: red;
      color: white;
      position: absolute;
      top: 50px;
      left: 30px;
  }

    </style>
</head>
<body>

<div class="div1">gggg</div>

</body>
</html>

3.固定定位 fixed

固定定位与绝对定位基本相似,但绝对定位随滚动条移动,而固定定位不随滚动条移动,所以称之为固定定位
例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
  .div1{
      width: 200px;
      height: 200px;
      background-color: red;
      color: white;
      position: fixed;
      top: 50px;
      left: 100px;
  }

    </style>
</head>
<body>

<div class="div1">gggg</div>
<p>h</p>
<p>h</p>
<p>h</p>
...
<p>h</p>
<p>h</p>
<p>h</p>
</body>
</html>

当滚动条在最上面时,结果如图,div距顶部50px
在这里插入图片描述
当滚动条向下滚动时,结果如下图,div距顶部依然是50px
在这里插入图片描述

如果两个div都用了定位,正常情况下,后定位的div的优先级会高于第一个用定位的div,但如果想让第一个div的优先级高于第二个,应该添加属性z-index来提高优先级(只能用在有定位的元素上)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值