美文网首页
两栏布局两个经典的bugBFC/浮动流

两栏布局两个经典的bugBFC/浮动流

作者: 开心的小哈 | 来源:发表于2018-11-23 10:08 被阅读0次

两蓝布局

.right{
    position: absolute;
    right: 0;
    background-color: aqua;
    width: 100px;
    height: 100px;
    opacity: 0.5;
}
.left{
    margin-right: 100px;
    height: 100px;
    background-color: brown;
}

垂直方向的margin父子粘合在一起,取最大值
margin塌陷
改变大盒子渲染规则

.wrapper{
    margin-left: 100px;
    margin-top: 100px;
    width: 100px;
    height: 100px;
    background-color: aquamarine;
}
.content{
    margin-top: 150px;
    margin-left: 50px;
    width: 50px;
    height: 50px;
    background-color: brown;
}

解决

<!-- bfc -->
    <!-- block format context -->
    <!-- 如何出发盒子的bfc 
    1,position:absolute
    2,display:inline-block
    3,float:left/right
    4,overflow:hidden溢出部分隐藏-->
.wrapper{
    margin-left: 100px;
    margin-top: 100px;
    width: 100px;
    height: 100px;
    background-color: aquamarine;
    /* overflow: hidden; */
    display: inline-block;
    position: absolute;
}
.content{
    margin-top: 60px; 
    margin-left: 50px;
    width: 50px;
    height: 50px;
    background-color: brown;
}

兄弟之间也会出现按

    <div class="wrapper"></div>
    <div class="content"></div>

css

.wrapper{
    width: 100px;
    height: 100px;
    margin-bottom: 200px;
    background-color: aquamarine;
}
.content{
    margin-top: 200px; 
    width: 100px;
    height: 100px;
    background-color: brown;
}

上下距离只会200px,或选取最大,不会累加
解决
写一个下面的包含他的父类设置成overflow: hidden;

<div class="wrapper"></div>
    <div class="dasf">
    <div class="content"></div>
    </div>
.wrapper{
    width: 100px;
    height: 100px;
    margin-bottom: 200px;
    background-color: aquamarine;
}

.dasf{
    overflow: hidden;
}
.content{
    margin-top: 200px; 
    width: 100px;
    height: 100px;
    background-color: brown;
}

不能因为改BUG而加结构(上面感觉白写了)
真正的解决方法通过数学计算求他俩的总距离

浮动元素float: right;和left后面有位置就去占一个

1,浮动元素产生了浮动流,所有产生了浮动元素,块级元素看不到他们,产生了bfc的元素和文本类元素(inline)以及文本都能看到浮动元素
clear: both;清除流
如果想让父级元素包住自己元素在最后一个子级加上clear:both;清除浮动,(不推荐用的方法:在浮动流元素后面添加标签如:<p>标签的属性加上清除就ok了)
推荐使用伪元素https://www.jianshu.com/p/f8d531ab4b55
在父级元素的::after伪元素使用clear:both;
如果想要clear生效的话必须是块级元素
那么after里面加上display block属性就ok了
还有一种解决就是在父级元素上面添加浮动元素的需求比如给他也添加浮动元素,float ,inline 等
浮动流都是位于他下面的元素

.mm{
    
    float: left;
    width: 100px;
    height: 100px;
    background-color: blue;
    opacity: 0.5;
}
.ww{
    display: inline-block;//删除试试看
    width: 200px;
    height: 200px;
    background-color: aquamarine;
}

设置position:abolute; float:left/right会打内部吧元素转换成inline-block
浮动可以做文字环绕图片

相关文章

  • 两栏布局两个经典的bugBFC/浮动流

    两蓝布局 垂直方向的margin父子粘合在一起,取最大值margin塌陷改变大盒子渲染规则 解决 兄弟之间也会出现...

  • 两栏和三栏布局

    1、两栏布局(左侧固定宽度,右侧自适应) 1)浮动 (1).单浮动 (2).双浮动 脱离的文档流,浮动需要在父元素...

  • CSS中的圣杯布局和双飞翼布局的实现,以及它们的异同

    首先谈谈三栏布局 三栏布局长什么样子?三栏布局是左右两侧浮动,而中间宽度自适应不浮动做出的效果。三栏布局 三栏布局...

  • CSS布局

    介绍几种简单的css布局方式。 两栏布局 两栏布局最简单的方式就是使用浮动,浮动其中一个元素,通常要给浮动的元素一...

  • CSS布局 与 元素居中

    什么是布局 现有样式的布局,不能满足需求 文档流 浮动 定位 现实需要的布局: 导航栏+内容 导航栏+内容+广告栏...

  • CSS布局

    CSS布局 什么是布局 现有样式不能满足人们的需求 文档流 浮动 定位 人们需要: 导航栏+内容 导航栏+内容+广...

  • #06-1你认真学了css?布局基础

    一、什么是布局 1、现有的布局满足不了人们的需求 文档流、浮动、定位 2、用户中所需要的: 导航栏+内容 导航栏+...

  • 几种常见的布局方式(一)

    什么是布局 ...现有的样式不能满足人们的需求 文档流 浮动 定位人们需要: 导航栏+内容 导航栏+内容+广告栏 ...

  • CSS经典布局

    CSS经典布局 本文主要对一些常见的CSS布局问题进行总结,涉及三栏布局、负margin、清除浮动、居中布局、Fl...

  • 用CSS实现布局(两栏布局,多栏布局)

    在网页上的布局比较经典的是两栏布局和三栏布局。下面简单总结自己对这两种布局的实现过程。 两栏布局 两栏布局是主内容...

网友评论

      本文标题:两栏布局两个经典的bugBFC/浮动流

      本文链接:https://www.haomeiwen.com/subject/rmidqqtx.html