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

虽然使用绝对定位可以实现页面布局,但由于调整某个盒子模型时其他盒子模型的位置并不会跟着改变,所以并不是布局的首选方式。而使用浮动的盒子模型可以向左或向右移动,直到它的外边缘碰到包含它的盒子模型边框或另一个浮动盒子模型的边框为止。并且由于浮动的盒子模型不在文档的普通流中,所以文档的普通流中的盒子模型表现得就像浮动的盒子模型不存在一样。

1  设置浮动

在CSS中,我们通过float属性实现盒子区块框向左或向右浮动。其实任何元素都可以浮动,而浮动元素会生成一个块级框,而不论它本身是何种元素。但浮动的元素要指定一个明确的宽度,否则它们会尽可能地窄。

在图1所示的两张图片中,左边图片是按普通的文档流布局的三个盒子区块框,它们从上到下一个接一个地排列,位置由元素在HTML中的位置决定。而在右边的图片中,当把第一个区块框向右浮动时,它脱离普通文档流并且向右移动,直到它的右边缘碰到包含框的右边缘,而其他两个区块框就会在普通流中上移。

图1  CSS浮动属性的应用

另外,在图2.4所示的两张图片中,当将第一个区块框设置向左浮动时,它就会脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。这样,第一个区块框就不再处于文档流中,所以它也不占据空间,则第二个区块框就会在文档流中自动上移,但被设置左浮动的第一个区块框覆盖住了,从而使第二个区块框从视图中消失。解决这种情况可以对布局中的所有东西进行浮动。如果把所有三个区块框都向左移动,那么第一个区块框向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框,呈现在一行中排列,如图2右图所示。

图2  浮动设置的对比演示

假如在一行之上只有极少的空间可供区块框浮动,那么这个区块框会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。而如果浮动元素的高度不同,那么当它们向下移动时,可能被其他浮动元素“卡住”,如图3所示。

图3  空间不足的区块浮动演示

2  行框和清理

在进行页面布局时,经常需要设置多个区块框并列在一行中排列。最常见的方式就是使用float属性,再通过left或right值移动区块框向左或向右浮动。但当前面并列的多个区块框总宽度不足以包含框的100%时,就会在行框中留出一定的宽度,而下面的某个区块框又恰好满足这个宽度,则很可能会向上提,和上一行并列的区块框在同一行排列。而这并不是我们想要的结果,所以可以使用clear属性解决这一问题。该属性的值可以是left、right、both或none,它表示框的哪些边不应该挨着浮动框。如下所示:

如果不清除浮动,那么第三个区块框就会和第一、第二个区块框显示在一行中,又因为第一、第二个区块框设置了浮动就脱离了文档流,所以第三个区块框会在第一个区块框的下面,如图4所示。如果我们在第三个区块框的样式中加一个清除浮动clear:both,则设置第三个区块框两边都不能挨着浮动框,如图5所示,所以第三个区块框就会在下一行独立出现。代码如下所示:

图4  没有设置清浮动

图5  设置清浮动

对于以上这种情况,我们使用最多的方法还是会将“清除浮动”单独定义一个CSS样式,然后使用单独一个区块框来专门进行“清除浮动”。代码如下所示:

原文地址:https://www.cnblogs.com/itxdl/p/12020232.html

时间: 2024-08-11 01:25:48

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

IT兄弟连 HTML5教程 使用盒子模型设计页面布局

布局所涉及的技术非常很多,足以另写单独的一本书了.在本节中主要介绍网站中最常用的布局方案,包括区块框居中.两列浮动.三列浮动及多列浮动的区块框. 1  居中设计 区块框居中的设计是在网页布局中常用的技术,例如将网页内的主体内容设置为一定的宽度,然后在页面内居中占据屏幕的一部分显示,而不是横跨整个屏幕宽度.这样设计的目的是因为现在的显示器尺寸越来越大,网页的可读性问题就变得越来越重要,因而需要创建比较短的.容易阅读的行.另外,不要让使用分辨率比较低的显示器用户,通过反复拖动浏览器的水平滚动条来查看

IT兄弟连 HTML5教程 HTML5的学习线路图 第一阶段学习网页制作

学习HTML5技术可并不是简单学会几个新增的标签而已,HTML5现在可以说是前端所有技术的代名词.需要学习的语言和工具不仅多,对于刚接触他们的新人会感觉很乱.另外,前端开发也会细分很多个开发岗位,不同的岗位所涉及的技术也会有差别,所以先要确定自己的发展定位,收集要学习的内容,整理好学习的顺序.很多时候,成功除了勇气.坚持不懈外,更需要方向.也许有了一个好的方向,成功来得比想象的更快.如果在错误的路上奔跑,再怎么努力也是白搭.学习Web前端也是如此,首先应该选择一个正确的学习路线.HTML5学习线

这些HTML、CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML、CSS、盒子模型、内容布局)

这些HTML.CSS知识点,面试和平时开发都需要 No1-No4 系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置.设置背景.数据列表) 这些HTML.CSS知识点,面试和平时开发都需要 No8-No9(知识点:媒体操作.构建表单) 这些HTML.CSS知识点,面试和平时开发都需要 No10-No11(知识点:表格操作.代码编写规则)

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

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

前端开发:css基础知识之盒模型以及浮动布局。

前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把它写到我的博客中,想知道自己过来翻就好啦 ^_^  下面楼主把当前的自己对css的基础认知一一给大家道来...... 盒模型 谈到盒模型,有经验的小伙伴一定滚瓜烂熟,无非就是 内容(content).填充(padding).边框(border).边界(margin): 这些属性我们可以把它转移到我们

CSS速成教程—CSS盒子模型——6

1.CSS 盒子模型概述 我们先来看看盒子的组成包括: margin(外边距);border(边框);padding(内边距);content(内容) 正文框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素. 内边距.边框和外边距都是可选的,默认值是零.从上面的图中可以看出,宽度(width) 和 高度(height) 指的是内容区域的宽度和高度.增加内边距.边框和外边距不会影响内容区域的

IT兄弟连 HTML5教程 DIV+CSS网页标准化布局的优势

标准的网页都需要对内容进行布局,以前都是采用表格的定位技术,从2005年开始逐步转向DIV+CSS的布局方式,目前绝大多数的网站都是采用这种布局方式.使用DIV+CSS对网站进行布局符合W3C标准,采用这种方式布局通常是为了说明与HTML表格定位方式的区别.通过使用DIV盒子模型结构将各部分内容划分到不同的区块,然后用CSS来定义盒子模型的位置.大小.边框.内外边距.排列方式等.简单地说,DIV用于搭建网站结构(框架),CSS用于创建网站表现(样式/美化).该标准简化了HTML页面代码,获得了一

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

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

CSS之盒子模型及常见布局

盒子模型的综合应用 CSS提高1 Div   ul    li 的综合应用很多的网页布局现在都用到这种模式 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>homework2.html</title> <meta http-equiv="keywords" content=&quo