当前位置: 代码迷 >> HTML/CSS >> CSS_浮动与驱除
  详细解决方案

CSS_浮动与驱除

热度:358   发布时间:2013-08-23 15:57:36.0
CSS_浮动与清除

浮动

把元素从常规文档流中取出。是元素脱离常规文档流

浮动的作用:

①实现文本绕排图片效果

②让原本在上下方向上堆叠的块级元素可以变成左右并列,从而实现多栏布局

文本绕排图片

首先HTML代码如下

<!DOCTYPE html>
<html>
<head>
    <title>浮动与清除</title>
    <meta charset="utf-8">
    <link href="in_css/floatandclear.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>文本绕排图片效果的实现</h1>
<img src="pic/myPic.jpg" >
<p>
    孙悟空是中国明代小说家吴承恩的著作《西游记》中的角色之一。<br>
    孙悟空,诨名行者,是唐僧的大徒弟,猪八戒、沙悟净的大师兄。会七十二变、腾云驾雾。<br>
    有一双火眼金睛,能看穿妖魔鬼怪的伪装;一个筋斗能翻十万八千里;使用兵器如意金箍棒,能大能小,<br>
    随心变化。他占花果山为王,自称齐天大圣,与如来佛祖斗法,被压在五行山下五百多年。<br>
    后经观世音菩萨点化,保护唐僧西天取经,历经九九八十一难,取回真经终成正果,被封为斗战胜佛。<br>
    代表了古代中国人善良、正义、不阿的情怀和追求。<br>
    孙悟空出生于东胜神洲傲来国花果山。感盘古开辟,三皇治世,五帝定伦,海外有一国土,名曰傲来国。<br>
    国近大海,海中有一座山,唤为花果山。此山乃十洲之祖脉,三岛之来龙,自开清浊而立,鸿蒙判后而成。<br>
    那座山正当顶上,有一块仙石。其石有三丈六尺五寸高,有二丈四尺围圆。三丈六尺五寸高,按周天三百六十五度;<br>
    二丈四尺围圆,按政历二十四气。上有九窍八孔,按九宫八卦。<br>
    出世
    盖自开辟以来,每受天真地秀,日精月华,感之既久,遂有灵通之意。<br>
    内育仙胞。一日迸裂,产一石卵,似圆球样大。因见风,化作一个石猴。<br>
    五官俱备,四肢皆全。便就学爬学走,拜了四方。目运两道金光,射冲斗府。
    <br>之后度过光景,因为成功闯入水帘洞,被花果山诸猴拜为“美猴王”。
</p>

</body>
</html>

?

CSS样式如下:

img{width: 200px;height: 200px}
P{margin: 0;border: 1px solid red;}
img{float: left;}

?

运行效果

image

从上图,我们可以看到图片浮动到了左侧,而文本绕排到右侧。当元素浮动了之后,浏览器会把它往上面推,直到它碰到父元素的内边界。而它后面的元素则不再认为浮动的元素在它前面。很显然如果想要创建多栏布局,只需要再一次浮动。我们现在就把p段落也浮动起来

p{width:500px;float:left;margin: 0;border: 1px solid red;}

image

由此可见:如果几个相邻的元素都有设定宽度,都是浮动并且水平空间足够容纳它们。它们就会并列排在一行,在就是利用float创建多栏布局的关键

三种围住浮动元素的方法:

首先修改下上面的HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>浮动与清除</title>
    <meta charset="utf-8">
    <link href="in_css/floatandclear.css" rel="stylesheet" type="text/css">
</head>
<body>
<section>
<h1>文本绕排图片效果的实现</h1>
<img src="pic/myPic.jpg" >
<p>
    孙悟空是中国明代小说家吴承恩的著作《西游记》中的角色之一。<br>

</p>
</section>
<footer>
    位于页脚的说明文字
</footer>


</body>
</html>

?

CSS样式:

img{width: 200px;height: 200px}
section{border: 2px solid navy;margin: 0 0 30px 0}
p{margin: 0}
footer{border: 2px solid red}

下图是在常规文档流中的显示

image

?

图片浮动之后效果:

image

方法一:给父元素添加overflow:hidden

事实上overflow有两个作用

①防止包含元素被超大内容撑大

②迫使父元素包含其浮动的子元素

方法二:同时浮动父元素

?

?

image

下文待续

  相关解决方案