我是靠谱客的博主 还单身蜗牛,最近开发中收集的这篇文章主要介绍用了就懂的float定位,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

float布局是实际开发中用到比较多的定位方式之一,例如页面的导航栏、新闻的列表页等布局都需要用到这一个重要的css属性,这一属性的值和意义描述如下:

描述

left

元素向左浮动。

right

元素向右浮动。

none

默认值。元素不浮动,并会显示在其在文本中出现的位置。

inherit

规定应该从父元素继承 float 属性的值。


那么具体开发中除了用到float定位,还有什么定位方式?以及什么是float定位,下面就做一个使用介绍。

一、有几种定位方式?

普通文档流定位、position定位、float定位

 

二、何为文档流?

文档流是文档中可显示对象在排列时所占用的位置。比如网页的div标签它默认占用的宽度位置是一整行,p标签默认占用宽度也是一整行,因为div标签和p标签是块状对象。

网页中大部分对象默认是占用文档流,也有一些对象是不占文档流的,比如表单中隐藏域。当然我们也可以让占用文档流的元素转换成不占文档流。例如使用display:none,position:absoult或者fixed(其中relative并没有脱离文档流,它相对位置的定位标准就是该元素在文档流中的实际位置) 以及我下面所说的float方式。


<div class="position">
<div class="ps-relative" style="background-color: yellow;position: relative;top: 10px;left:10px;">123</div>
<div class="ps-static" style="background-color: bisque">123</div>
</div>

relative并没有脱离文档流

 

三、float如何定位?

float(浮动模型)是一种可视化格式模型,浮动的框可以float:left 或right,直到它的外边缘碰到包含框或者另一个浮动元素的框的边缘。浮动元素不在文档的普通流中,文档的普通流中的元素表现的就像浮动元素不存在一样。下面就通过实际的效果演示来了解float定位。

①普通文档流布局

<div class="position" style="width:300px;
border:4px solid #f63;">
<div
style=" height:50px;
width:100px;background-color: yellow;">123
</div>
<div
style=" height:50px;
width:100px;background-color: bisque">123
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue">123
</div>
</div>

div元素按照普通的文档流来定位将会独占一行显示。


②第一个元素右浮动

<div class="position" style="width:300px;
border:4px solid #f63;">
<div
style=" height:50px;
width:100px;background-color: yellow;float:right;">1
</div>
<div
style=" height:50px;
width:100px;background-color: bisque">2
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue">3
</div>
</div>


从效果图可以看出,第一个快元素浮动到右侧以后,它的位置被第二个块顶上,自己脱离文档流,浮动到了父元素的右侧

 

③浮动第二块元素

当第二个块也在进行右浮动的时候,会紧跟在第一块元素的后面,而不会遮住已经存在右浮动的元素。


<div class="position" style="width:300px;
border:4px solid #f63;">
<div
style=" height:50px;
width:100px;background-color: yellow;float:right;">1
</div>
<div
style=" height:50px;
width:100px;background-color: bisque;float:right;">2
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue">3
</div>
<div
style=" height:50px;
width:100px;background-color: red">4
</div>
</div>



④第一个块左浮动

<div class="position" style="width:300px;
border:4px solid #f63;">
<div
style=" height:50px;
width:100px;background-color: yellow;float:left;">1
</div>
<div
style=" height:50px;
width:100px;background-color: bisque;">2
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue;">3
</div>
</div>

第二个块因为覆盖了原来第一个块的位置,它将被第一个块覆盖。

⑤当所有块都右浮动时

将所有块右浮动,并在其父元素同级加上一个不同背景的块状元素,此时,所有子块都按照次序以父元素的右侧边框为起点排列起来,但是他们把父元素同级的绿快遮住了。这是因为浮动块的父元素按照普通文档流定位,而子块脱离文档流,相对父元素浮动,且不会撑开父元素的块高,顾因为高度的原因把绿快遮住,这就需要使用下面的一个属性clear

<div class="position" style="width:300px;
border:4px solid #f63;margin-bottom: 30px">
<div
style=" height:50px;
width:100px;background-color: yellow;float:right;">1
</div>
<div
style=" height:50px;
width:100px;background-color: bisque;float:right;">2
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue;float:right;">3
</div>
</div>
<div style="height: 20px;width: 300px;background-color: green"></div>

 

⑥clear清除浮动

<div class="position" style="width:300px;
border:4px solid #f63;margin-bottom: 30px">
<div
style=" height:50px;
width:100px;background-color: yellow;float:right;">1
</div>
<div
style=" height:50px;
width:100px;background-color: bisque;float:right;">2
</div>
<div
style=" height:50px;
width:100px;background-color: lightblue;float:right;">3
</div>
<div style="clear:both;height: 0;"></div>
</div>
<div style="height: 20px;width: 300px;background-color: green"></div>


Clear属性是和float对着干的属性,float干的,clear都可以去“销毁”float干出的成果。下面是其可能使用到的属性值。


描述

left

在左侧不允许浮动元素。

right

在右侧不允许浮动元素。

both

在左右两侧均不允许浮动元素。

none

默认值。允许浮动元素出现在两侧。

inherit

规定应该从父元素继承 clear 属性的值。

 

至此,float布局的问题大体上都讲了出来,但是在实际开发中会有比这些更加复杂的环境和需求,但是只要对这些基本的知识了解的足够透彻,对那些问题都是可以迎刃而解的。笔者水平有限,还望读者指出错误和不足。



最后

以上就是还单身蜗牛为你收集整理的用了就懂的float定位的全部内容,希望文章能够帮你解决用了就懂的float定位所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部