css 的定位,浮动和清除浮动——浅析

在下才疏学浅,不足之处,还请多多指教。

定位有这五种:

常用的是前三种,接下来上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            padding: 100px 100px;
            position: relative;
            width: 350px;
            height:350px;
            background: #cccccc;
        }
        .div1{
            width: 300px;
            height:300px;
            position: relative;
            background: red;
        }
        .div2{
            position: absolute;
            width: 180px;
            height:100px;
            background: greenyellow;
        }
        .div3{
            position: fixed;
            top: 500px;
            left:500px;
            width:300px;
            height:100px;
            border: 1px solid #00a8f3;
        }
    </style>
</head>
<body>
    <div class="box">big-relative
        <div class="div1">relative
            <div class="div2">
                absolute<br>
                absolute是跟最近的relative进行定位的。
                <div class="div3">
                    fixed<br>
                    fixed 是不受所在位置影响的,它就是死死定在距离顶500px,左边500px的位置
                </div>
            </div>
        </div>

    </div>

</body>
</html>

执行效果如下:

再看一个小demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 100px;
            height:100px;
        }
        .div1{
            background: red;
        }
        .div2{
            width:250px;
            background: greenyellow;
            position: absolute;
        }
        .div3{
            background: burlywood;
            height:100px;
            padding-top: 100px;
        }
        .div4{
            background: #1d7ad9;
        }
    </style>
</head>
<body>
    <div class="div1">div1</div>
    <div class="div2">
        div2-absolute<br>
        当为绝对定位时,会脱离文档流。
    </div>
    <div class="div3">
        div3<br>
        由于div2脱离文档流,所以div3占据之前div2的位置
    </div>
    <div class="div4">div4</div>
</body>
</html>

执行效果如下

接下来分析下浮动:

inherit是:元素从父级继承float属性的值;

left是:元素向左浮动;

none是:元素保持默认,在本该出现的位置;

right是:元素向右浮动。

看如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1{
            float: right;
            width:200px;
            height:200px;
            background: #1d7ad9;
        }
        .div2{
            float: inherit;
            width:100px;
            height:250px;
            background: rebeccapurple;
        }
        .div3{
            float:none;
            width:90px;
            height:100px;
            background: red;
        }
        .div4{
            float: left;
            width:60px;
            height:30px;
            background: greenyellow;
        }
    </style>
</head>
<body>
    <div class="div1">
        right;<br>
        此时容器为body,浮动到body的右边<br>
        <div class="div2">
            inherit<br>
            1.父元素div1是右浮动,所以div2也是右浮动(inherit继承父元素的浮动)<br>
            2.由于是浮动,所以自身比父元素高度大,也不会撑开父元素
        </div>
        <div class="div3">
            none;<br>
            出现在本该出现的位置
        </div>
        <div class="div4">
            left;
        </div>
    </div>
</body>
</html>

执行效果如下:

这里,由于浮动,所以即便子元素高度超过父元素高度,也不会撑开。

但是我们如果想让子元素的高度撑开父元素怎么做呢?即我们需要清除浮动!

看如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1{
            width:200px;
            background: #1d7ad9;
        }
        .clearfix:after{
            clear:both;
            display:block;
            visibility:hidden;
            height:0;
            line-height:0;
            content:‘‘;
        }
        .clearfix{
            zoom:1;
        }
        .div2{
            float: left;
            width:100px;
            height:250px;
            background: rebeccapurple;
        }
    </style>
</head>
<body>
    <div class="div1 clearfix">
        给父元素div1,加上clearfix的类,使用伪对象after,控制浮动元素的影响。
        <div class="div2">
            浮动的元素
        </div>
    </div>
</body>
</html>

执行效果如下:

时间: 2024-12-22 16:01:23

css 的定位,浮动和清除浮动——浅析的相关文章

css浮动和清除浮动

浮动存在的原因 在word排版中,文本可以环绕图片.在css中,想要实现文字环绕的效果,只能借助于float,没有其他的替代方式.在实际中,文档的布局经常会使用浮动. float属性 float属性,默认为none,也就是标准流通常的情况.如果将float的属性的值设置为left或right,元素就会向其父元素的左侧或右侧紧靠. inherit表示从父元素继承float属性的值. clear属性 clear 属性定义了元素的哪边上不允许出现浮动元素.在 CSS1 和 CSS2 中,这是通过自动为

CSS浮动与清除浮动(overflow)例子

在css中浮动与清除浮动功能是我们开发中常用到的一个功能了,下面小编来为各位分析关于CSS浮动与清除浮动(overflow)例子吧. float脱离文本流,可是为什么文字却会有环绕的效果,这点实在是神奇,于是乎就去问了师匠: Normal flow is the way that elements are displayed in a web page in most circumstances. All elements in HTML are inside boxes which are e

CSS中的浮动和清除浮动,梳理一下!

CSS中的浮动和清除浮动,梳理一下! 第一篇就整理整理CSS中很常见的浮动以及清除浮动的一些方式吧. 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目的并没那么多事儿,就只是用来实现文字环绕效果而已,如下所示: 文字环绕效果 但是早期的前端开发者发现:浮动的元素可以设置宽高并且可以内联排列,是介于inline和block之间的一个神奇的存在,在inline-block出来之前,浮动大行其道.直到inline

【转】CSS中的浮动和清除浮动

以下转自<CSS中的浮动和清除浮动,梳理一下!> 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目的并没那么多事儿,就只是用来实现文字环绕效果而已,如下所示: 文字环绕效果 但是早期的前端开发者发现:浮动的元素可以设置宽高并且可以内联排列,是介于inline和block之间的一个神奇的存在,在inline-block出来之前,浮动大行其道.直到inline-block出来后,浮动也有它自己独特的使用场景.

关于浮动与清除浮动,你应该知道的

我在做页面布局的时候,多多少少总会受到来自浮动的困扰,因此专门通过实践来总结一下浮动与清除浮动. 首先总结几个基础的概念: 浮动:设置浮动的元素会脱离文档流,不会影响块元素的布局,但是会影响内联元素的排列[通常是文本]: 文档流:在文档流中,块元素会单个元素独占一行 接下来我们通过实际演示来看看关于浮动的那些事儿. 下面是5个div块元素在文档流中一次排列 我们知道浮动元素有几个规律 如果浮动元素的上一个元素也是浮动,那么该元素会与上一个元素排列在同一行,如果行宽不够,后面的元素会被挤到下一行

css浮动及清除浮动

1. 浮动 1. 特点: 1.不占原来的位置(脱标) 2.可以让块级元素在一行上显示 3.浮动可以把行内元素转化为行内块元素 2 清除浮动 清除浮动指的是清除浮动的影响 注意: 当子元素设置了浮动,父元素没有高度的时候,造成页面布局混乱.这种情况下进行清除浮动. 3  清除浮动的几种方式 1.使用clear:left|  right  | both Clear:both; 这种方式是在需要清除浮动的父级元素内部的所有浮动元素后添加这样一个标签清楚浮动,空标签可以是div标签,也可以是P标签等,并

CSS学习摘要-浮动与清除浮动

float 浮动float CSS属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它.该元素从网页的正常流动中移除,尽管仍然保持部分的流动性(与绝对定位相反). 一个浮动元素是float的值不为none的元素. /* Keyword values */float: left;float: right;float: none;float: inline-start;float: inline-end; /* Global values */float: inherit;float

css中元素的浮动和清除浮动的影响

用float属性可以使元素浮动到包含框内的左右边使文本围绕它,这里创建一个包含框内有段落和一个小的div并被包围: <html> <head> <title><title> <style type="text/css"> div{ border:1px solid red; width:200px; height:200px; } .div1{ background-color:yellow; float:right; wid

css中的浮动以及清除浮动

对于css中的浮动问题,曾经有一段时间我是懵懵懂懂的感觉,对于float这个属性一直是似懂非懂的赶脚,对于这种让我们一直懵懵懂懂的知识点,我们就需要找个时间点,仔仔细细的去将它搞懂,从这个过程中我们也会去复习以前的知识,这是真正会让我们有所提高的一个过程,是所谓温故而知新.那么在学习的过程中也看了很多大神的博客,这里就来总结一下我个人对于float的理解; css的浮动使我们在布局的时候经常会用到的一个属性,在大量的使用过程中,我们可能只是一知半解的去使用,或者使用的时候得到了自己想要的结果就绝