CSS定位机制之浮动定位float

一、浮动定位实现的效果

二、使用float实现浮动定位

三、使用clear属性清除浮动定位

四、浮动定位的应用(布局)


一、浮动定位实现的效果

(一)、块元素(div)在文档流中默认垂直排列,如果希望块元素在页面中水平排列,可以使块元素脱离文档流(使用float使元素浮动)

元素浮动脱离文档流之后,原有的位置不会保留,会被其他文档流元素占据。

(二)、 当设置了浮动定位后(float属性非none的值),元素会立即左上或右上浮动,而浮动元素会盖住文档流元素。如图一所示,框1设置浮动之后脱离文档流,会盖住顶上来的文档流元素框2。

而且浮动元素并不是无限上浮,当遇到父元素的边框或者其他浮动元素的时候就会停止上浮。如图二所示,同时给三个盒子设置向左浮动时,后面的浮动盒子就会因为遇到前面的浮动元素而停下,达到水平排列的效果。

图一     图二

假设三个盒子都向左浮动(宽度够用的情况)就会水平排列在一行(向左)

如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

二、float属性实现浮动定位

我们经常使用css样式和div标签来实现页面的排版布局。div实现横向多列布局,就要采用float属性进行浮动布局。

float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。

注意:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。

float属性(实现浮动定位)

  • left     元素脱离文档流, 向页面左侧浮动
  • right   元素脱离文档流,向页面 右侧浮动
  • none   默认值,不浮动元素默认在文档流中排列。

三、clear属性清除浮动定位
clear属性(清除浮动)clear还可以用以解决高度塌陷问题

  • 全部清除浮动   both  清除对当前元素影响最大的浮动元素(不允许出现向左浮动也不允许出现向右浮动的情况,所以盒子会单独占据一行。)
  • 单侧清除浮动   left   清除左侧浮动对元素的影响;right   清除右侧浮动对元素的影响;(清除,并不是把浮动元素去掉,而是它的左侧或右侧不会有浮动元素,所以意味着要另起一行来显示了)
  •  默认值none   不清除。

实例:

设置三个div盒子分别为1、2、3,当为三个盒子都设置向左浮动时,排成水平一行。

1、为盒子2设置clear:left时,可以发现2盒子左侧没有了浮动定位盒子,从而另起一行,盒子3也会另起一行尽量向左浮动。

1.2为盒子3设置clear:left时,3盒子左侧没有浮动。

2、为盒子2设置clear:right,盒子2文档流元素,所以被盒子1遮住,盒子3另起一行。

3、为盒子2设置清除两侧浮动clear:both时,清除左右浮动的影响。

4、更加准确的来说both是清除影响最大的浮动,盒子1和3的宽高均为100px,盒子2的宽高为200px,盒子1、2分别进行左右浮动,盒子3设置clear:both,效果如下:



四、浮动定位的应用

(一)通过设置浮动定位来实现文字环绕图片效果

注意:浮动的元素不会盖住元素,文字会自动环绕在浮动元素的周围,所以我们可以通过浮动设置文字环绕图片效果。

代码

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>浮动定位</title>
 6     <style>
 7     *{
 8         margin:0;
 9                padding:0
10            }
11     #box1{
12         width: 100px;
13         height: 100px;
14         background-color: #bfa;
15         /*浮动的元素不会盖住元素,文字会自动环绕在浮动元素的周围,所以我们可以通过浮动设置文字环绕图片效果。*/
16         float:left;
17            }
18      .p1{
19          height: 200px;
20          background-color: yellow;
21      }
22     </style>
23 </head>
24 <body>
25     <div id="box1"><img width="100px"
26         height="100px" src="t1.jpg" alt="图片"></div>
27     <p class="p1">1978年,16岁的彭丽媛从郓城来到济南,在山东五七艺术学校(1978年底改为山东艺术学院)中专部读书,进入山东艺术学院学习,彭丽媛真正走上了艺术之路。自1978年起,彭丽媛拜在王音璇教授门下潜心学习了近3年,在这段时间里,彭丽媛不仅汲取了演唱的专业营养,也逐步走出了山东、走向了全国。 [3-4] 1980年,彭丽媛代表山东济宁艺术学校到北京参加文艺汇演,凭借北京文艺汇演上的优秀表现,国家派彭丽媛出访了欧洲六国演出; [5] 同年,彭丽媛被招入济南军区前卫歌舞团,成为军队的一名文艺战士,后考入中国音乐学院声乐系攻读大专,大学本科,以及硕士研究生。</p>
29 </body>
30 </html>

实现效果

(二)利用浮动定位进行页面布局

1、四行三列布局

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>四行三列</title>
 6     <style>
 7     *{
 8         padding:0;
 9         margin:0;
10     }
11     body{
12         font-size:30px;
13     }
14     #container{
15         width:1000px;
16         height:500px;
17         margin:auto;
18     }
19     .header{
20         width:1000px;
21         height:100px;
22         background: #f775a9;
23         margin-bottom: 5px;
24     }
25     .nav{
26         width: 1000px;
27         height:50px;
28         background: #8fdbd8;
29         margin-bottom: 5px;
30     }
31     .content{
32         width:1000px;
33         height: 600px;
34         margin-bottom:5px;
35     }
36         .asider{
37             width: 200px;
38             height:600px;
39             float:left;
40             margin-right:5px;
41             background:#b8dea4;
42         }
43         .main{
44             width:590px;
45             height:600px;
46             float:left;
47             margin-right: 5px;
48             background:#10b48e;
49         }
50         .asider2{
51             width:200px;
52             height:600px;
53             float: left;
54             background: #ace4cb;
55         }
56     .footer{
57         width: 1000px;
58         height:100px;
59         background: #79e0c3;
60         margin-bottom: 50px;
61     }
63     </style>
64 </head>
65 <body>
66 <div id="container">
67     <div class="box header">header</div>
68     <div class="nav">nav</div>
69         <div class="box content">
70             <div class="asider">asider</div>
71             <div class="main">main</div>
72             <div class="asider2">asider2</div>
73         </div>
74         <div class="box footer">footer</div>
75 </div>
76 </body>
77 </html>

 使用浮动定位进行页面布局的时候,不可滥用浮动。

 (三)使段落首字母浮动于左侧

段落中,文本的第一个字母包含在一个 span 元素中。再对span元素设置向左浮动,这个 span 元素的宽度是当前字体尺寸的 0.7 倍。span 元素的字体尺寸是 400%,行高是 80%。span 中的字母字体是 "Algerian"

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>首字母浮于左侧</title>
 6     <style>
 7     span{
 8         float:left;
 9         font-size:400%;
10         font-family:algerian,courier;
11         line-height:80%;
12     }
13     </style>
14 </head>
15 <body>
16 <span>T</span>his is some text.
17 This is some text. This is some text.
18 This is some text. This is some text. This is some text.
19 This is some text. This is some text. This is some text.
20 This is some text. This is some text. This is some text.
21 This is some text. This is some text. This is some text.
22 This is some text. This is some text. This is some text.
23 This is some text. This is some text. This is some text.
24
25 </body>
26 </html>

表现效果

原文地址:https://www.cnblogs.com/nyw1983/p/11311918.html

时间: 2024-11-05 14:53:51

CSS定位机制之浮动定位float的相关文章

CSS彻底研究(3)-浮动,定位

CSS彻底研究(3)-浮动,定位 一 . 浮动float I . 定义及规则 float默认为none,对应标准流的情况.当float : left;时,元素就会向其父元素的左侧靠紧,脱离标准流,同时宽度不再伸展至充满父容器,而是根据自身内容来确定. II . 演示规则 准备代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type&qu

CSS定位机制:浮动 float及清除浮动的常用方法

CSS的定位机制 1.普通流(标准流) 默认状态,元素自动从左往右,从上往下排列 块元素的特征: 独占一行 可以设置宽高 如果不设置宽度,宽度默认为容器的100% 常见的块元素:div p h1-h6 ul ol li dl dt d 行内元素的特征: 与其他元素同行显示 不可以设置宽和高 宽和高就是文字或图片的宽高 常见的行内元素:span a b i u em 2.浮动 浮动基础 会使元素向左或向右移动,只能左右,不能上下 浮动元素碰到包含框或另一个浮动框,浮动停止 浮动元素之后的元素将围绕

定位流和浮动定位

定位流(position属性)的分类 1.相对定位(relative) 2.绝对定位 3.固定定位 4.静态定位 相对定位 什么是相对定位? 就是相对于自己以前在标准流中的位置来移动,相对定位需要配合top/left/right/bottom属性使用 相对定位注意点 1.相对定位是不脱离标准流的,会继续在标准流中占用一份空间 2.在相对定位中,同一个方向上的属性只能使用一个 3.由于相对定位是不脱离标准文档流的,所以在相对定位中是区分块级元素/行内元素/行内块级元素, 即行内元素即使设置为pos

css 定位(position)与浮动(float)

html的文档流: 元素排版布局的过程:块级元素:从上至下:行内元素:从右至左. 脱离文档流: 方式:postion和float postion 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定. 不可以与float一起用. fixed 生成绝对定位的元素,相对于浏览器窗口进

css 三种清除浮动(float)的方法

方法一:添加新的元素 .应用 clear:both .clear{ clear:both; height: 0; height: 0; overflow:hidden; } 方法二:父级div定义 overflow: auto .over-flow{ overflow: auto; zoom: 1; //处理兼容性问题 } 方法三: 伪类  :after 方法  outer是父div的样式 .outer {zoom:1;} /*==for IE6/7 Maxthon2==*/ .outer :a

【css笔记】css中的盒模型和三种定位机制(固定定位,绝对定位,浮动)

html页面上的元素都可以看成是框组成的,框通过三种定位机制排列在一起就过程了我们看到的页面.而框就是盒模型. 盒模型 1.页面上的每个元素可以看成一个矩形框,每个框由元素的内容,内边距,边框和外边距组成. 2.如果在元素上添加背景,则背景是边框, 内边距和内容组成的区域. 3.在css中width和height指的是内容区域的宽度和高度.增加内边距,边框和外边距不会影响内容区域的尺寸,但会增加元素框的总尺寸.即width=element 注意:ie的盒模型中,width指的是内容,内边距,和边

web前端css定位position和浮动float

最近做了几个项目:配资公司,ecmal商城等,客户对前台要求都很高.所以,今天来谈谈css的基础,以及核心,定位问题. div.h1或p元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span和h3等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”. 在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联. 块级元素的文本行也会发生类似的情况.假设有一个包含三行文本的段落.每行文本形成一个无名框.无法直接对无名块或行框应用样式,因为没有可以

css定位机制(布局)

css定位机制由三种:普通文档流.定位.浮动. 1,普通文档流:块级元素从上往下排列,行级元素从左到右排列. 2,定位:position属性可以对元素进行定位,有四个类型,static,relative,absolute,fixed static:元素框正常生成.块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中. relative:当设置了偏移值之后,元素相对于自身进行偏移,仍旧保持未偏移前的形状,但是它依然保留原来所占空间. absolute:元素定位

CSS框模型,浮动,定位以及其他属性

1.CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式 element : 元素. padding : 内边距,也有资料将其翻译为填充. border : 边框. margin : 外边距,也有资料将其翻译为空白或空白边. 围绕在元素边框的空白区域是外边距.设置外边距会在元素外创建额外的“空白”.设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位.百分数值甚至负值. * { margin: 0; padding: 0;}