Web前端入门学习(5)——浮动原理及清除浮动

浮动原理及清除浮动

上节回顾

在上节的《Web前端入门学习(4)—— 块级元素和行内元素之特征与转换》中(http://cherry360.blog.51cto.com/12176744/1863945),介绍了块级元素和行内元素的特征,及粗略介绍了如何进行转换。加上display属性,可以指定元素的类型,如display:block、display:inline,以及display:inline-block。当然用得最多的是最后一个display:inline-block。结合例子来看:

例1:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>无标题文档</title>
<style>
    div,span{height:100px;width:100px;background:blue;border:1px solid red;}
</style>
</head>
<body>
    <div>div1</div>
    <div>div2</div>
    <span>span1</span>
    <span>span2</span>
</body>
</html>


显示结果:

例2,如果在css样式中加上display:inline-block,即把CSS样式改成:

div,span{
    height:100px;
    width:100px;
    background:blue;
    border:1px solid red;
    display:inline-block;
}

显示效果将会变成:

从上面的对比结果可以看出,属性display:inline-block的效果是,可以把块级元素在同一行内显示,而行内元素也变得支持宽高。但是使用这种方式,也有一些隐患问题,就是换行被解析。也就是说,标签之间换行之后,显示出来的效果中间是存在间隙的,并且不同浏览器之间的间隙大小不一致。此外,IE6、IE7是不支持块级元素的inline-block效果。那么有其他办法可以解决吗?这就是本节需要讨论的问题了。


浮动原理

任何元素都可以被浮动,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框位置;由于浮动框不在文档流中,所以文档流中的元素会表现得就像浮动框不存在一样。文档流是文档中可显示对象在排列时所占用的位置。话不多说,看例子最直观:

例3:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>无标题文档</title>
<style>
    div,span{height:100px;width:100px;background:blue;border:1px solid red;float:left;}
</style>
</head>
<body>
    <div class="div1">div1</div>
    <div class="div2">div2</div>
    <span class="span1">span1</span>
    <span class="span2">span2</span>
</body>
</html>


显示结果:

本例的结果和例2的结果,代码区别在于把display:inline-block改成float:left,而显示结果的区别是标签换行没有被解析。还有一些特点现在通过肉眼还无法看出来,就是使用float属性的元素会脱离文档流,现在看看下面例子:

例4:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>无标题文档</title>
<style>
    .box1{width:100px;height:100px;background:red;float:left;}
    .box2{width:200px;height:200px;background:blue;}
</style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>
</html>


显示结果:

从例4可以看出,红色块盒子使用了left浮动,而蓝色块盒子没有使用浮动元素,因此红色块脱离了文档流,而蓝色块盒子好像看不到红色块盒子一样,重叠在一起了。

综上所得,总结出浮动元素的几个特征:

  • 内联元素支持宽高;
  • 块元素可以在同行显示;
  • 宽度由内容撑开;
  • 脱离文档流;
  • 提升层级半层。

了解了浮动原理之后,我们知道使用float属性的元素会脱离文档流,那么其他没有使用浮动属性的元素会看不到它们,从而导致出现重叠这种状况,如何解决呢?那么现在就引入一个清除浮动的知识点了。

例5:

在例4的代码中,把box2的样式改成:

.box2{ width:200px;height:200px;background:blue;clear:left;}


显示结果:

属性clear把红色块盒子的左浮动清除了,所以蓝色块盒子不再和红色盒子重叠在一起。这里仅是简单介绍清除浮动的办法之一,当然还有很多办法,在此仅作入门了解。



温馨提示

float浮动属性值:left/right/none;

clear清除浮动属性值:left/right/both/none。

时间: 2024-12-28 17:03:33

Web前端入门学习(5)——浮动原理及清除浮动的相关文章

Web前端入门学习(6)——浮动例子之鉴赏

浮动例子之鉴赏 在浮动原理及清除浮动一文中(http://cherry360.blog.51cto.com/12176744/1864258),简单介绍了浮动的相关基础知识,为了巩固知识点,本篇结合代码展示关于浮动的几个常见例子. 例1:九格子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>九格子</titl

Web前端入门学习(2)——HTML常用标签

HTML标签 a标签 a标签是一个超链接标签,用于从一个页面链接到另一个页面.在<Web前端入门学习(1)>有提到过4个伪类,分别是a:link.a:visited.a:hover.a:active. a:link代表的是未访问过的链接,当访问者首次打开网页未点击链接时,所表现的形式: a:visited代表的是访问过的链接,相对于link,是访问者点击了连接后,所表现的形式: a:hover代表的是当鼠标经过链接上面时所表现的形式,鼠标经过后,链接会有所变化: a:active代表的是当用户

web前端入门到实战:css基础-float浮动

float实现文字环绕图片效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>float</title> <style> body{ font-family: '微软雅黑'; } .per{ width: 400px; border: 1px solid #CCC; padding: 5p

Web前端入门学习(1)——走进前端世界

前端基础知识 前端开发语言: HTML(Hypertext Markup Language):超文本标记语言: CSS(Cascading Style Sheets):层叠样式表: JS(JavaScript):脚本语言. 样式表: 行间样式表.内部样式表.外部样式表. 样式 样式格式:属性名:属性值: 常见样式: border:1px solid red border-width:1px border-style:solid border-color:red 常见颜色模式: 关键字:red y

Web前端入门学习(3)——CSS选择器

CSS选择器 id选择器 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> #box{width:200px;height:200px;border:2px solid #f3f3f

Web前端入门学习(4)—— 块级元素和行内元素之特征与转换

块级元素和行内元素  1.元素的定义 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为"block",成为"块级"元素(block-level):而span元素的默认display属性值为"inline",称为"行内"元素.     div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高度.宽度

web前端入门到实战:总结清除浮动的方法

方法一.在结尾处添加空div标签clear:both 在浮动的盒子之下再放一个标签,在这个标签中使用clear:both,来清除浮动对页面的影响. 注意:一般情况下不会使用这一种方式来清除浮动.因为这种清除浮动的方式会增加页面的标签,造成结构的混乱. <div class="box"> <div class="red">1</div> <div class="sienna">2</div>

web前端入门到实战:css浮动的特性,与浮动带来的影响以及如何清除浮动

块元素在文档流中默认垂直排列,所以多个div从上至下依次排开 如果希望块元素在页面中水平排列,可以使用float来使元素浮动,从而脱离文档流,元素脱离文档流以后,它下边的元素会立即向上移动 css浮动的特性 1.浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围 2.元素浮动以后,会尽量向页面的左上或这是右上漂浮,直到遇到父元素的边框或者其他的浮动元素 3.如果浮动元素上边是一个没有浮动的块元素,则浮动元素不会超过块元素 4.浮动的元素永远不会超过他上边的兄弟元素,最多一边挤 5.块元素脱离

web前端开发学习路线

首先分享一下我的经验,想做好一件事,必须要花费一些功夫,然后是多学.多思.多练.多交流.多总结,发现自己的问题,然后一定要克服,在状态不好的情况下,往往要及时调整.新手学习前端的话,一定要想想为什么要学习它,是出于一种什么心态,然后定位好自己,多向大牛请教,多教一些没有自己水平高的人,那样往往能让自己成长的快,切勿急躁.初学可以看一些入门视频教程,之后可以买一些书,做一些小项目,要学会投资,分析自己的现状及能力,实时调整,一定要有自己的想法,懂得创新.在这里一定要对自己做分析,然后找出一种适合的