美文网首页前端学习
标准文档流与浮动

标准文档流与浮动

作者: Yonginggg | 来源:发表于2019-08-18 09:31 被阅读0次

标准文档流

HTML制作网页的时候,要遵循 从左到右,从上到下的顺序

空白折叠现象

存在于文字与图片之间

解决方法: 将这些元素放在一排,紧密相连

高低不齐,底部齐平

不同的元素,大小不一样,但是底部是在同意水平线上的

浮动

标准文档流中只有两个元素: 块级元素行内元素

多个元素排在同一行: 行内元素特点

给元素设置宽高: 块级元素特点

浮动可以让元素脱离标准文档流, 就可以实现多个元素排在同一行并且可以给元素设置宽高

浮动是通过一个浮动属性来实现的

float: left向左移动, right向右移动

  • 浮动元素脱离标准文档流,不再占用空间
  • 浮动元素的层级比标准文档流里的元素层级高, 会覆盖标准文档流中的元素
  • 浮动元素会向左或者向右浮动

使用浮动之前

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            border: 1px solid black;
            margin-left: auto;
            margin-right: auto;
        }
        .div1{
            width:100px;
            height: 100px;
            background-color: red;
        }
        .div2{
            width:100px;
            height: 100px;
            background-color: blue;
        }
        .div3{
            width:100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
    </div>
</body>
</html>
image

使用浮动后

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            border: 1px solid black;
            margin-left: auto;
            margin-right: auto;
        }
        .div1{
            width:100px;
            height: 100px;
            background-color: red;
            /*给这一个元素使用浮动属性*/
            float:right;
        }
        .div2{
            width:100px;
            height: 100px;
            background-color: blue;
        }
        .div3{
            width:100px;
            height: 100px;
            background-color: green;
            
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
    </div> 

    
</body>
</html>
image

红色块移动到右边, 不再占用空间, 飘起来了

清除HTML标签默认内填充和外边距

 <style>
        *{
            margin:0px;
            padding: 0px;
        }
    </style>

浮动的案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /*清除HTML标签默认内填充和外边距*/
        *{
            margin:0px;
            padding: 0px;
        }
        
        .nav{
            width: 960px;
            height: 40px;
            margin-right: auto;
            margin-left: auto
        }

        .nav ul{
            /*项目符号去除*/
            list-style: none;
        }
        .nav ul li{
            /*每一个li标签向左浮动*/
            float: left;
            width: 120px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="nav">
        <ul>
            <li><a href="#">网站栏目</a></li>
            <li><a href="#">网站栏目</a></li>
            <li><a href="#">网站栏目</a></li>
            <li><a href="#">网站栏目</a></li>
            <li><a href="#">网站栏目</a></li>
            <li><a href="#">网站栏目</a></li>

        </ul>
    </div>
</body>
</html>
image

清除浮动

经过浮动了元素, 会影响到下面的元素的排列布局

浮动元素的父元素没有将浮动元素包裹着

只要清除了浮动,不会影响到浮动元素下面的排版布局,浮动元素的父元素会将浮动元素包裹着

三种方法

  • 给浮动元素的父元素设置一个固定的高度
  • 使用清除浮动的样式属性 clear
  • 使用 overflow:hidden 来清除浮动

设置浮动前

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            border: 1px solid black;
            margin-left: auto;
            margin-right: auto;
        }
        .div1{
            width:100px;
            height: 100px;
            background-color: red;
            
        }
        .div2{
            width:100px;
            height: 100px;
            background-color: blue;
            
        }
        .div3{
            width:100px;
            height: 100px;
            background-color: green;
          
        }
        
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
    </div> 
    <h2>浮动与清除浮动</h2>
    
</body>
</html>
image

设置浮动后

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            border: 1px solid black;
            margin-left: auto;
            margin-right: auto;
        }
        .div1{
            width:100px;
            height: 100px;
            background-color: red;
            float: left;
        }
        .div2{
            width:100px;
            height: 100px;
            background-color: blue;
            float: left;
        }
        .div3{
            width:100px;
            height: 100px;
            background-color: green;
            float:right;
        }
        
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
    </div> 
    <h2>浮动与清除浮动</h2>
    
</body>
</html>
image

可以看到影响了底下文字的排版布局

使用clear

clear的三个值:

  • clear:left 清除左浮动
  • clear:right 清除右浮动
  • clear:both 两者都清除

这个属性一般用在最后一个浮动元素的下面, 在最后一个浮动元素的下面放一个空白的div, 作用是清除浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            border: 1px solid black;
            margin-left: auto;
            margin-right: auto;
        }
        .div1{
            width:100px;
            height: 100px;
            background-color: red;
            float: left;
        }
        .div2{
            width:100px;
            height: 100px;
            background-color: blue;
            float: left;
        }
        .div3{
            width:100px;
            height: 100px;
            background-color: green;
            float:right;
        }
        /*使用清除浮动样式clear*/
        .clear{
            clear:both;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
        <!-- 在最后一个元素的下面新建一个空白的div -->
        <div class="clear"></div>
    </div> 
    <h2>浮动与清除浮动</h2>
    
</body>
</html>
image

使用overflow:hidden

原意是将溢出的部分进行隐藏

相关文章

  • css布局—浮动float

    浮动:float,会脱离标准文档流。属性值:leftright二.浮动的特性1、浮动的元素会脱离标准文档流,不再区...

  • 标准文档流与浮动

    标准文档流 HTML制作网页的时候,要遵循 从左到右,从上到下的顺序 空白折叠现象 存在于文字与图片之间 解决方法...

  • 前端浮动与定位知识点

    浮动与定位 元素的浮动 元素的浮动属性float 什么是浮动? 元素的浮动是指设置了浮动属性的元素会脱离标准文档流...

  • 我的第一次给了你 TO:HTML

    一、浮动特点: 1.脱离标准流(脱标)---半脱离标准流(文档流) 2.文字环绕的效果:当文字周围存在浮动的元素,...

  • CSS标准文档流,浮动与定位

    标签(空格分隔): CSS 标准文档流 定义:块级元素纵向有序排列,行内块(行内)元素横向有序排列 浮动 如果想让...

  • CSS标准文档流,浮动与定位

    标准文档流 定义:块级元素纵向有序排列,行内块(行内)元素横向有序排列 浮动 如果想让四个块级元素 div 并排显...

  • css的定位机制

    css中的定位机制有3中,分别是标准文档流、浮动定位和绝对定位 1.标准文档流(Normal flow)(1)对于...

  • float与position同时使用

    float浮动与position同时使用并不会冲突,前者是使元素脱离标准流,浮动在文档流上;而后者是使元素相对自身...

  • 左边固定,右边自适应

    方法一:固定元素左浮动脱离标准文档流,右边元素设置左外边距 方法二:一样,利用定位脱离标准文档流。右元素不加左边距...

  • css之margin

    margin的塌陷现象 标准文档流中,竖直方向的margin不叠加,以较大的为准。 如果不在标准流,比如盒子都浮动...

网友评论

    本文标题:标准文档流与浮动

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