【脱离文档流的三种方法】

简介: 【脱离文档流的三种方法】

什么是脱离文档流?

这个标签脱离文档流的管理,不受文档流的布局约束,并且这个标签在原文档流中所占的空间也被清楚掉了

脱离文档流的3种方法为:

方法1:float浮动

方法2:flexed

方法3:absolut绝对定位

方法1【float浮动】:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .main{
            width: 800px;
            height: 800px;
            border: 3px solid black;
        }
        .box1{
            width: 200px;
            height: 200px;
            border: 3px solid red;
        }
        .box2{
            width: 200px;
            height: 200px;
            border: 3px solid green;
            float: right;
        }
        .box3{
            width: 200px;
            height: 200px;
            border: 3px solid blue;
        }
    </style>
</head>
<body>
    <div class="main">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>
</html>

.float: 浮动,为元素设置float属性

让元素脱离原本的文档流独立开来,单独实现向左或向右

在设置float属性之后元素自动设置为块级元素,并且不会占据原本的位置

未设置浮动:

48e36d540e5947a5bd05458b0457e77c.png

设置浮动后:【float:right】

d21ea55965db435e8f80e676962d4266.png

方法2【fixed】:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,body{
            height: 10000px;
        }
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 200px;
            height: 200px;
            background-color:gray;
            /* position: fixed; */
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

未设置fixed

cc2f0c85bbfb48859a6f451e2b4f95dc.png

设置fixed后

e302f1c83e3240e1855855261076a9c5.png

fixed:设置此属性的元素在位置上总是相对于body标签,也就是说在网页中设计此类标签不会随着网页的上下滑动而变化总是固定在网页的一个位置

方法3【absolut】:

设置box1相对于main的位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .head{
            width: 800px;
            height: 500px;
            border: 3px solid black;
            /* position: relative; */
        }
        .main{
            width: 500px;
            height: 500px;
            border: 3px solid rgb(214, 48, 48);
            position: relative;
            margin-top: 100px;
            margin-left: 100px;
        }
        .box1{
            width: 200px;
            height: 200px;
            border: 3px solid rgb(38, 17, 224);
            position: absolute;
            left: 100px;
        }
        .box2{
            width: 200px;
            height: 200px;
            border: 3px solid rgb(17, 224, 62);
        }
    </style>
</head>
<body>
        <div class="head">
            <div class="main">
                <div class="box1"></div>
                <div class="box2"></div>
            </div>
        </div>
</body>
</html>

6533eda0964b4b4f822fc11e35552284.png

设置box2相对于head位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .head{
            width: 800px;
            height: 500px;
            border: 3px solid black;
            position: relative;
        }
        .main{
            width: 500px;
            height: 500px;
            border: 3px solid rgb(214, 48, 48);
            /* position: relative; */
            margin-top: 100px;
            margin-left: 100px;
        }
        .box1{
            width: 200px;
            height: 200px;
            border: 3px solid rgb(38, 17, 224);
            position: absolute;
            left: 100px;
        }
        .box2{
            width: 200px;
            height: 200px;
            border: 3px solid rgb(17, 224, 62);
        }
    </style>
</head>
<body>
        <div class="head">
            <div class="main">
                <div class="box1"></div>
                <div class="box2"></div>
            </div>
        </div>
</body>
</html>

adfeddc6f6064bafa50b7a210b54f6f3.png

absolut脱离的文档流是相对于其父元素的,而且这个父元素的position属性不为static(static为position默认属性), 如果absolute所在元素的父元素position属性为static则其继续向上寻找,直到找到符合要求的父元素。脱离文档流之后其他元素会无视此元素,其此元素不再占据原本的位置


相关文章
|
移动开发 前端开发 搜索推荐
详解一下HTML的语义化标签
详解一下HTML的语义化标签
378 0
C# Excel 异常HRESULT 0x800AC472
图1 图2     出现图1的问题,大部分原因是导出excel时一开始就将excel.visible=true,当数据量太大的时候,就会看到数据被一条条的写进excel里面,这个时候随意点击excel就会报出上面的错误。
6553 0
|
存储 移动开发 负载均衡
晨兴夜寐:这一次,彻底搞懂Cookie,LocalStorage,SessionStorage
晨兴夜寐:这一次,彻底搞懂Cookie,LocalStorage,SessionStorage
2005 0
|
资源调度 JavaScript
Vue + Element-ui组件上传图片报错问题解决方案
Vue + Element-ui组件上传图片报错问题解决方案
|
存储 缓存 JavaScript
当Vue.observable()遇上Vuex:选择最佳状态管理方案的指南
【8月更文挑战第27天】在构建大型Vue应用程序时,合理管理组件间共享状态至关重要。本文深入探讨了Vuex和Vue.observable()两种状态管理工具的特点。Vue.observable()以其简洁的API适用于小型至中型项目,而Vuex遵循严格的Flux架构,专为复杂的大中型应用设计,确保状态变化的可预测性和高效性。通过示例代码比较两者实现方式,展示了尽管Vuex操作更为复杂,却能带来更好的可维护性和扩展性。最终,开发者可根据项目的具体需求和规模来选择最适合的状态管理方案。
274 0
|
机器学习/深度学习 编解码 算法
《深度剖析:生成对抗网络如何实现图像风格的细腻逼真迁移》
生成对抗网络(GAN)在图像风格迁移中展现出巨大潜力。GAN由生成器和判别器组成,通过对抗训练生成逼真图像。相比传统方法,GAN能自动学习深层特征,生成多样化、细腻的风格,并实现高效处理。关键技术如多尺度训练、注意力机制及损失函数优化进一步提升了效果。GAN已广泛应用于艺术创作、游戏开发和影视制作等领域,未来有望带来更多创新应用。
458 2
|
移动开发 前端开发 搜索推荐
《前端技术基础》第01章 HTML基础【合集】
超文本标记语言(HyperText Markup Language,简称 HTML)是构建网页结构的基础标记语言。它与 CSS、JavaScript 协同,负责搭建网页“骨架”,用标签组织内容,像标题、段落、图片等元素,通过起始与结束标签(部分可单用,如`<img>`)界定层级与布局,将信息有序整合。标签含特定语义,向浏览器传达展示方式,为网页准确呈现及后续美化、交互筑牢根基。
485 25
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
135338 0
|
并行计算 PyTorch 算法框架/工具
yolov5训练太慢的解决方案
这篇文章讨论了YOLOv5训练速度慢的问题,并提供了解决方案,主要是由于没有安装CUDA和支持GPU的PyTorch版本,导致只有CPU在工作。文章建议安装CUDA和正确配置支持GPU的PyTorch以加速训练过程。
1291 1
yolov5训练太慢的解决方案

热门文章

最新文章