(7)盒子的的浮动

前两篇的资料介绍到仅仅按照标准流的方式进行排版限制性太大,接下来将介绍css中的float属性。

一、盒子的浮动(float)

1、浮动(float)主要功能是帮助对象在网页中对齐的,通过不同的命令使对象左右浮动,直到遇到border、padding、margin或其他对象边缘为止。别看这简单的浮动,却可以为我们的排版设计出各种靓丽的风格。

前面的资料介绍过在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界,而在垂直方向和兄弟元素依次排列,不能并排。使用“浮动”方式以后,块级元素的表现就会有所不同。

css中,有一个float属性,默认为none,也就是标准流通常的情况。若果将float属性的值设置为left或right,元素就会向其父级元素的左侧或右侧靠近,同时默认的情况下,盒子的宽度不再伸展,而是根据盒子里面的内容的宽度确定。

案例图:

<!DOCTYPE html >
<head>    <meta charset="UTF-8">
    <title>float属性</title>
<style type="text/css">
body{
    margin:15px;
    font-family:Arial; font-size:12px;
    }

.father{
    background-color:#ffff99;
    border:1px solid #111111;
    padding:5px;
    }

.father div{
    padding:10px;
    margin:15px;
    border:1px dashed #111111;
    background-color:#7FFFD4;
    }

.father p{
    border:1px dashed #111111;
    background-color:#ff90ba;
    }

 .son1{
/* 这里设置son1的浮动方式*/

}
.son2{
/* 这里设置son1的浮动方式*/

}
.son3{
/* 这里设置son1的浮动方式*/

}
</style>
</head>
<body>
    <div class="father">
        <div class="son1">Box盒子1</div>
        <div class="son2">Box盒子2</div>
        <div class="son3">Box盒子3</div>     <p>css中,有一个float属性,默认为none,也就是标准流通常的情况。若果将float属性的值设置为left或right,元素就会向其父级元素的左侧或右侧靠近,同时默认的情况下,盒子的宽度不再伸展,而是根据盒子里面的内容的宽度确定。</p>     </div> </body>

上面的代码定义了4个<div>块,其中的一个父块,另外3个是它的子块。为了便于观察,将各个块都加上了边框以及背景颜色,并且让<body>标记以及各个div之间有一定的margin值。如果3个子div都没有任何浮动设置,就为标准流中的盒子状态。在父盒子中,4个盒子各自向右伸展,竖直方向依次排列。

效果图:

(1)尝试将带有“son1”类别选择器的div设置为左浮动:


.son1{
/* 这里设置son1的浮动方式*/

float:left;
}

效果图:

上图可以看到标准流中的Box盒子2的文字在围绕着Box盒子1排列,而此时Box盒子1的宽度不再伸展,而是能容纳下内容的最小宽度。

确定这个Box盒子2范围的是由于Box盒子1脱离了标准流,而标准流中的Box盒子2会顶到原来Box盒子1的位置,因此Box盒子2的左边框与Box盒子1的左边框重合。

(2)尝试将带有“son2”类别选择器的div设置为left浮动:

.son2{
/* 这里设置son2的浮动方式*/
float:left;
}

效果图

上图解释:由于Box盒子2也变为根据内容确定宽度,并使Box盒子3的文字围绕Box盒子2排列。从下图中可以清晰的看出,Box盒子3的左边框仍在Box盒子1左边框下面 ,否则Box盒子1Box盒子2之间的空白不会是深色,这个深色实际上就是Box盒子3的背景色,Box盒子1Box盒子2之间的空白是由二者的margin构成的。

(3)尝试将带有“son3”类别选择器的div设置为left浮动:

.son3{
/* 这里设置son3的浮动方式*/
float:left;
}

效果图

上图可以清楚的看到,文字所在的盒子的范围,以及文字会围绕浮动的盒子排列。

(4)尝试一下,将带有“son2”类别选择器的div设置为右浮动将带有“son3”类别选择器的div设置为left浮动.

.son2{
/* 这里设置son2的浮动方式*/
float:right;
}
.son3{
/* 这里设置son3的浮动方式*/
float:left;
}

效果图

上图只是将Box盒子2Box盒子3交换了位置。

然后尝试将浏览器窗口慢慢变窄,当浏览器窗口无法在一行中容纳Box盒子1Box盒子3时,那么Box盒子3就会被挤到下一行中,但仍然保持向左浮动,会到下一行的左端,这时文字仍然会自动排列。

(5)尝试一下将Box盒子1、Box盒子2、Box盒子3都设置为左浮动,在“Box盒子1”中多加一层文字。结果是Box-3会被挤到下一行,那么它会在Box-1的下面,还是Box-2的下面呢?先看效果图:

上图绘制了三条红粗实线,这是Box盒子2和Box盒子3的实际分割线。Box盒子3是会被挤到下一行并向左移动的,发现Box盒子1Box盒子2高出一块儿,这样Box盒子3就会被卡住,所以停留在Box盒子2的下面。

根据上面所介绍的内容可以了解到,若某个盒子被设置为float,那么它将脱离标准流,其后面的标准流中的盒子将不再受它影响。

(6)使用clear属性清除浮动的影响

(1)、clear属性语法:
clear : none 、left、right、 both 

(2)、clear参数值说明:
none :  允许两边都可以有浮动对象
both :  不允许有浮动对象
left :  不允许左边有浮动对象
right :  不允许右边有浮动对象

若想让文字的左右两侧同时围绕浮动的盒子。首先将Box盒子1Box盒子2的浮动都改为float:left,而Box盒子3的浮动为float:right,之后再将Box盒子3的内容修改为:

<div class="son3">
    Box-3<br>
    Box-3<br>
    Box-3<br>
    Box-3
</div>

效果图:

如果不希望文字围绕浮动的盒子,可以修改<p>标签的样式,如下:

.father p {
    border:1px dashed #111111;
    background-color:#ff90ba;
    clear:left;
}

效果图:

上面的效果图中可以看出,段落的上边界向下移动,直到文字不受左边的两个盒子影响位置,但仍然受到Box盒子3的影响。

由于Box盒子3比较高,若不想Box盒子3受到影响可以再修改<p>标签的样式,如下:

.father p {
    border:1px dashed #111111;
    background-color:#ff90ba;
    clear:right;
}

效果图:

*

**其实clear属性主要放在文字所在的盒子里,例如一个p段落的css设置中,而不要放到对浮动盒子的设置里面。

时间: 2024-10-11 07:57:15

(7)盒子的的浮动的相关文章

CSS(三)解析盒子模型的浮动

上篇博客遗留了浮动和定位两个问题,只是对他们进行了简单的描述,今天仔细透透他们的底细,此篇为浮动篇. 浮动在这个CSS排版流行的年代发挥着越来越重要的作用,如同aline对定位网页元素的重要性一样,但它比aline更加功能强大. float主要功能是帮助对象在网页中对齐的,通过不同的命令使对象左右浮动,直到遇到border.padding.margin或其他对象边缘为止.别看这简单的浮动,却可以为我们的排版设计出各种靓丽的风格,下面介绍几种. 我把它们归为了以下两大类:普通浮动和嵌套浮动. 普通

css的核心内容 标准流、盒子模型、浮动、定位等分析

1.块级元素:如:<div></div>2.行内元素:如:<span></span>从效果中看块级元素与行内元素的区别: 通过CSS的设置把行内元素转换成块级元素: 标准流:就是标签的排列方式.<div class="style2">我的未来不是梦</div><span id="st" class="style1">栏目一</span><span

css背景图片、圆角、盒子阴影、浮动

一.css背景图片 1.概述 背景是css中一个重要的的部分,也是需要知道的css的基础知识之一.这里主要介绍有关背景图片的5种常见属性,分别是: (1). background-color: rgb(0, 0, 255); background-color: #0000ff; background-color 也可被设置为透明(transparent),这会使得其下的元素可见. 3.背景图(background-image) background-image 属性允许指定一个图片展示在背景中.

Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)

一.CSS引入方式1.CSS简介:(1)CSS(Cascading style Sheets):层叠样式表.用来给html网页设置样式;(2)当多个选择器对同一个元素进行样式设计时,则该元素的样式为多个选择器叠加的效果(当有冲突时,按照优先级设置);2.引入方式:(1)方式一:行内样式(在html元素的style属性上设置样式)(2)方式二:页面内嵌样式(在head标签内部嵌入样式)(3)方式三:引入外部样式文件例1(演示CSS三种引入方式):Html代码: <!DOCTYPE html> &

盒子属性,浮动,定位

1.盒子常见属性 1)容器盒子 Box-size:设置盒子模型,CSS3标准, content-box:正常默认模式,起源于谷歌,元素的整体大小会被内边距和边框撑开 border-box:怪异模式,起源于IE,元素的整体大小不会被内边距和边框撑开 Width:宽度 Height:高度 注意:width,height会根据box-size盒子模型的不同来决定是内容的宽度和高度,还是整个元素大小的宽度和高度. 2)Padding:内边距 Padding-left,padding-right,padd

盒子模型2+浮动

盒子居中和文字居中 1.设置盒子中存储的文字/图片水平居中:text-align:center: 2.让盒子自己水平居中:margin:0 auto: 清空默认边距 1.为什么要清空默认边距(外边距和内边距)? 在企业开发中为了更好的控制盒子的宽高和计算盒子的宽高等等,所以在企业开发中,编写代码之前第一件事就是清空默认的边距. 2.如何清空? 格式:* { margin:0:padding:0:} 3.注意点:通配符选择器会找到(遍历)当前界面中所有的标签,所以性能不好.企业开发中可以从这个网址

IT兄弟连 HTML5教程 使用盒子模型的浮动布局

虽然使用绝对定位可以实现页面布局,但由于调整某个盒子模型时其他盒子模型的位置并不会跟着改变,所以并不是布局的首选方式.而使用浮动的盒子模型可以向左或向右移动,直到它的外边缘碰到包含它的盒子模型边框或另一个浮动盒子模型的边框为止.并且由于浮动的盒子模型不在文档的普通流中,所以文档的普通流中的盒子模型表现得就像浮动的盒子模型不存在一样. 1  设置浮动 在CSS中,我们通过float属性实现盒子区块框向左或向右浮动.其实任何元素都可以浮动,而浮动元素会生成一个块级框,而不论它本身是何种元素.但浮动的

锚点盒子随滚动条浮动

// 随滚动条浮动 $('.Step_points').width($('.Leftbox').width()); var Step_points_top=$('.Step_points').offset().top; $(window).scroll(function(){ console.log($(window).scrollTop()); if($(window).scrollTop()>Step_points_top){ $('.Step_points').addClass('fixe

关于盒模型的 盒子模型 、 浮动 、 定位以及高级选择器的使用

盒模型的基本组成包括:外边距(margin)内边距(padding) 边框(border)元素(element,content) 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者.这种现象被称为相邻块元素垂直外边距的合并( 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,