前端——浮动+定位样式

一、浮动float------浮动是会使盒子脱离文档流

添加了浮动的元素

1.原本的位置不占用 脱离文档流

2.设置了浮动 就不支持auto自适应居中

3.文字会感受到浮动 跟着进行文字环绕效果 而不是浮动元素覆盖文字 文字和浮动处于同一层的关系

4.可以使行内元素支持 高宽设置 也支持上下外边距

5.可以按照自己设置 方向来进行移动

写法: 选择器{

float:属性值;

}

1.默认值: 没有浮动 none

2.left 元素向左浮动

3.right 元素向右浮动

/* 元素向左浮动 */

/* float: left; */

/* 元素向右浮动 */

float: right;

清楚浮动样式:

常用于解决父级高度塌陷问题:父级盒子不设置高度,默认是由里面的子级撑开,但是子级设置了浮动元素,浏览器在计算高度时不会把添加了浮动元素的子元素算进去 。

示例:

<!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>
        .wrap{
            width: 1000px;
            /* height: 500px; */

            /* overflow: hidden; */
            background-color: skyblue;
        }

        .box1{
            float: right;
            width: 300px;
            height: 300px;
            background-color: green;
        }

        .box2{
            float: left;
            width: 350px;
            height: 400px;
            background-color: pink;
        }

        .box3{
            float: left;
            /* float: right; */
            width: 350px;
            height: 450px;
            background-color: red;
        }

        .footer{
            width: 1000px;
            height: 500px;
            background-color: purple;
        }

        .clear{
            /* 清除浮动样式 */
            /* clear: left; 清除左浮动 */
            /* clear: right;  */

            /* 同时清除左右浮动 */
            /* clear: both; */
        }

        /* 用伪元素清除 wrap盒子的浮动 */
        .wrap::after{
            /* 开启伪元素  key */
            content: '';
            /* 伪元素是行内元素   变成块级元素  */
             display: block;
            /* 同时清除左右浮动 */
            clear: both;
        }
    </style>
</head>
<body>
      <div class="wrap">
           <div class="box1">左侧盒子</div>
           <div class="box2">中间盒子</div>
           <div class="box3">右侧盒子</div>

           <!-- 清除浮动样式 -->
           <div class="clear">

           </div>
      </div>

      <div class="footer">
         俺是底部内容盒子 
      </div>
</body>
</html>

实现效果:

二、定位样式------position

  1. 相对定位 position: relative;

a.不会脱离文档流 以自身左上角的位置来进行移动 原本的位置会继续保留

b.需要通过方位值来移动

c.不会影响元素自身 给块级元素设置相对定位 是支持auto自适应居中

/* 相对定位 */

position: relative;

  1. 绝对定位

a.脱离文档流 原地起飞

b.参考位置 以最近一个父级定位属性来移动 (如果说找不到最近的一个定位父级 那就找body 祖先元素 )

c.绝对定位 一般配合相对定位来使用 来达到一个 子绝父相 (父相子绝)的效果 子级是绝对定位 父级是相对定位 子级去参考 父级的相对定位来移动

d.可以让行内元素支持高宽 元素高宽默认不写为0 暂时不支持 auto自适应居中 (单独写不生效)

/* 绝对定位 */

position: absolute;

  1. 固定定位 position: fixed;

a.脱离文档流 参考位置是以浏览器窗口为准 来进行移动

b.使用方位值来移动 生效

c.margin:auto 失效

/* 固定定位 */

position: fixed;

  1. 粘性定位 position: sticky;

/* 粘性定位 */

position: sticky;

快速让子级盒子 在父级盒子里面 水平居中效果:

<!-- 给子级设置 -->

/* 第一种方法 */

/* position: absolute;

left: 0px;

right: 0px;

top: 0px;

bottom: 0px;

margin: auto; */

/* 第二种 */

/* position: absolute;

left: 50%;

top: 50%; */

/* 负自身宽度的一半 */

/* margin-left: -100px; */

/* 负自身高度的一半 */

/* margin-top: -100px; */

/* 这个写法相对于第二种 简写 优化写法 */

position: absolute;

left: calc(50% - 100px);

top: calc(50% - 100px);

5.定位层级 z-index 解决同级定位元素的覆盖问题 数字越大 越优先显示

  • 取值 数字越大越优先 默认值是 0/auto auto: 指的是你没写值

  • z-index 层数只允许写了定位属性元素使用

注意点: 方位值(left top right bottom ) 和 定位层级(z-index) 要配合定位属性使用

相关推荐
JuneTT2 分钟前
uniapp 常用高度状态栏,导航栏,tab栏,底部安全高度
前端·javascript·uni-app
Satan7126 分钟前
【Spring】Spring Aop基础入门
java·开发语言·jvm
A8644511 分钟前
解决在Nignx下Thinkphp路由不生效问题
开发语言·nginx·php·thinkphp
这河里吗l14 分钟前
Java每日面试题(JVM)(day15)
java·开发语言·jvm·笔记·后端
Rverdoser16 分钟前
macOS 系统中python的安装步骤
开发语言·python·macos
i801328 分钟前
delphi制作漂亮的农历窗体(IntraWeb+Layui的完美结合)
前端·javascript·layui
南瓜啊28 分钟前
【VUE】状态管理:Pinia组件、Cookie组件
前端·javascript·vue.js
AutoAutoJack31 分钟前
C#的结构体(Struct)应用示例
开发语言·数据结构·人工智能·c#
Satan71244 分钟前
【Java】JVM基本组成
java·开发语言·jvm
爱技术的小伙子1 小时前
【30天玩转python】网络爬虫开发
开发语言·爬虫·python