彻底弄懂CSS盒子模式之三

2024-04-27 11:38

本文主要是介绍彻底弄懂CSS盒子模式之三,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读:

彻底弄懂CSS盒子模式三(浮动的表演和清除的自述)


1.彻底弄懂CSS盒子模式一(DIV排版快速入门)
2.彻底弄懂CSS盒子模式二(导航栏实例)
3.彻底弄懂CSS盒子模式四(绝对定位和相对定位)


一、下面请看float的精彩表演,有请。
大家好,我是float,欢迎访问CSS家族,在CSS家族中,在当今CSS排版流行的年代,我可扮演着重要的角色哦。因为我的工作对网页设计人员很有用,就像之前align帮助你们定位网页元素一样重要,但是我的功能似乎比align强多了。接下来我将现场给你演示我的绝活,看细心点哦。当然也许我一下子不能把我所有的技巧给大家演示,因为有些技巧本人也许一下子记不起来了,那就请那些对我比较了解的人来帮我补充补充啰,比如版主等等啊。


先讲一下我主要的工作,我主要是帮助对像在网页中对齐的,一旦我发出float:left或float:right命令,被我浮动的对像就会向左或向右移动直到遇到边框( border) 、填充( padding) 、边界( margin )或者另一个块对象的边缘为止,当然也有一些看起来较特殊的情况,比如被我浮动的元素设置了一个负边界(margin)的时候。我还可以让文字流环绕在被我浮动的对像周围,这也是我的特色。另外要注意的一点是,最好给浮动对象设置一下宽度,不然会出现一些意想不到的麻烦。我主要浮动类型有两种,它们是float:left和float:right,当然我还有一个功能是float:none,不过float:none比较少用,这也是我的默认值,有时也是很有用的,我等一下会讲的。下面我开始表演了,我的舞台可以是IE(Internet Explorer),或者FF(Firefox),但是有些技巧我一定要在标准的舞台中,如FF中才能表出来做的,请注意看我的说明,不然你用IE是看不到效果的。


1.我不动声色(我的属性不设置的时候),即:float:none,或者样式中不写这一项时,网页中的元素将按照它们自身的出现方式排列,一般是靠边对齐,先出现的排在前边,下面运行框是DIV先出现,P后出现,所以P排在DIV后面,注意看DIV的右边还有很多空间,但是P的文字不会跟在它的右边去。看:



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


2.我向盒子发出float:left命令,此时盒子浮动到左边,虽然看起来我的位置与上面例子没有什么变化,但此时跟在我后面的文本可以环绕到浮动盒子的右边了,看下面:



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


哈哈,看我表演了几项是不是开始觉得有点烦了,那么简单无聊的,那下面就给你表演几项特别的,但愿你不是IE的崇拜者,因为下面效果你用IE是看不到效果的,请用像FF那样的标准浏览器来运行代码框或测试吧。


4.浮动对象有负边界的情况,这时浮动对象可能会漂浮到其所在父对象外边去,这有点像绝对定位的效果,但又与绝对定位不同,它还能影响它所在地方的文本流,请用标准浏览器FF看下面代码效果:



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


5.如果一个较宽的子盒子在一个较窄的父盒子中拥有浮属性,子盒子漂浮后不会影响到父盒子的宽度,子盒子超出父盒子的部分会越到父盒子外面,但越出父盒子外的部分不会引起外边文本流的移动,而会直接覆盖在外边文字上面的,请用标准浏览器FF看下面代码效果:



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


6.如果父盒子不设定高度或者高度为自动,而其子盒子设定了浮动,并且高度超过了父盒子,在标准浏览器中,父盒子高度是不能自适高度,但是这种高度自适应常是我们需要的,如何做到让高度自适应呢,常见的办法是在父级内,浮动子盒子后边加入以下代码:

清除掉那个小盒子的浮动。请自行把代码中我注释部分消除注释再看效果,现在是没有自适应的情况, 请用标准浏览器FF预览和测试代码效果:



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


7.下面这个例子很重要,可以说明浮动元素的很多特性,大家运行代码框后再手动调整浏览器窗口大小,看版面有什么变化,下面我给你解释常见的问题和技巧。



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


(1)在一个盒子内的浮动对像左右浮动时,它的左右边界不一定就会靠在父对象的内补白上或边框上,上面9个盒子都是左浮动的,但在窗口最大化的情况下,只有第一个盒子和最后一个盒子的左边界靠在父盒子左边内侧。
(2)浮动对象之间不会重叠。上面有讲到浮动对像越出外边去的情况,那么一个浮动盒子又会不会越到另一个浮动对象上面去呢,实质上它们是不会重叠的,即使用了负边界看起来像重叠在一起。
(3)并排的同一浮动方向的对像在一行中放不下时,可以自动换行。大家在浏览下面代码时,改变一下浏览器窗口,就会看到我所说的情况。
(4)浮动盒子在本文流中出现的位置会影响它的水平浮动位置,就像下面运行框效果,那些盒子并不是紧跟着一起出现的,之间有文本存在,所以结果造成所有等高的盒子并不是同一直线排列出现,而变成有一定的梯度。如果两个盒子之间文本流区块高度大于前边浮动元素高度时,紧接着的同一浮动方向的对象将会被自动换行显示。在下面实例中,如果调整浏览器窗口尽量小时,所有盒子可能会出现全部靠在父盒子左边的情况,因为缩小浏览器同时,盒子右边的文本流高度随之增高。


可见不要小看我浮动,熟练掌握我将会给你排版带来很多意想不到效果哦。


8.再讲一则注意事项,在开始时我不是有说过要给浮动对象设定一个宽度的,不然会有意想不到结果,即没有设定宽度而又没有内容的对象浮动后宽度会趋近于0。请大家自行修改下面代码我注释前边的宽(只能删其中一个),测试看看效果就知道怎么回事了。



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


二、下面我要请我的好伙伴clear出场给你们讲讲它的故事,有请。
大家好,我是clear,能见到如此多人捧场我感到无比的荣幸,虽然在各位网页设计工作中我的作用常常被忽略,但我也有些作用是没有人能替代的,下面我将讲几项我实用作用以激发大家对我的兴趣:
1.如果你想一段文本流两边可以出现浮动对像的话,你可以用clear:none,看下面效果,蓝色背景段落两边的盒子是浮动的哦。



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


2.如果你要为一个网页准备一个页脚区块,比如

,你在设计网页的时候,你想不管你前边怎么浮动排版而又不想这个页脚跟上去,让它一直保持在前边内容后边,而且还是换行独立显示的,那么给这个页脚区块样式加个clear:both吧。
3.我还可以快速清除网页中具有浮动属性的不同对像的浮动,如果有很多的话,我的作用更能发挥出来,当然你也可以一条一条样式去删掉浮动的样式,但我肯定这样没有我来的方便,下面效果中,没有清除浮动前是横排的,但是清除后变成纵排(举此例只为说明问题,不管这实例实不实用),请自己删掉我的注释部分进行前后对比。



    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


好了,我的介绍到此完毕,各位还满意吗?有什么不满意可以提出来哦。你的意见就像一面镜子,它可以让我很清楚地发现自己的不足,然后改进它。



本文转自
http://www.webjx.com/htmldata/2007-04-02/1175497154.html

这篇关于彻底弄懂CSS盒子模式之三的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940403

相关文章

react native console.error...

Attempted to transition from state `RESPONDER_INACTIVE_PRESS_IN` to `RESPONDER_ACTIVE_LONG_PRESS_IN`, which is not supported. This is most likely due to `Touchable.longPressDelayTimeout` not being can

react-native数组删除,数组长度未变

js的数组删除方式有两种: 一、delete(数组的长度不发生变化) var array = ["我","爱","你"] delete array[0] 二、splice(数组的长度会发生相应的变化) splice(0,1);括号中的第一个数字是起始位置,后一个数字是需要删除的长度

react native 常用实用插件

调用系统打电话、发短信、发邮件、打开网址功能https://github.com/anarchicknight/react-native-communications 快速检索列表(按首字母)https://github.com/johanneslumpe/react-native-selectablesectionlistview 图表组件https://github.com/tomauty

html5 web转

一、配置移动开发环境  1.各种仿真器、模拟器的下载安装  http://www.mobilexweb.com/emulators  https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Emulators-&-Simulators  2.html5 DTD  <!doctype html>  <meta charset="utf-8">

解决html2canvas生成图片慢的问题

// 主要看那个点击事件就行<divclass="textBox-right-board-group"v-for="item in screenList":key="item.id"><!-- 获取不同分辨率下的屏幕的展示的文字大小DPI: fontSize: getFontSize(item.resolutionRatio), --><div:class="['borderContain

VUE 或 Js封装通用闭包循环滚动函数

1、vue3 闭包滚动函数的使用 js 调用也基本雷同 // 滚动Tab组件const scoreTabRef = ref()// 滚动的选项const scrollOption = ref({// 滚动的Dom元素scrollDom: null,// 滚动的时间间隔scrollInterval: 1500,// 滚动的距离scrollSep: 100,// 滚动历时时间scrollDur

HTML(3)——常用标签3

引用标签 1.<blockquote>和<q> 两者都是对文本的解释引用,<blockquote>是用较大的段落进行解释,<q>是对较小的段落进行解释。 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>hhh</title></head><body><p>孔君:<q>此是君家果</q></p><p

vue开发过程中常用手册集锦

vue-router中文文档 vue官方文档教程 vue官方API vuex官方文档 vue实例的参数说明 $route和$router的区别 为什么vuex中必须要通过commit提交mutation? vue.js -- 60分钟组件快速入门(上篇) 父组件改变props,子组件如果直接使用props,会触发子组件更新父组件改变props

js模块化之CommonJS、AMD、CMD、ES6

模块化是一种将系统分离成独立功能部分的方法,严格定义模块接口、模块间具有透明性。 Web应用越来越复杂,简单的代码组织方式已经无法满足业务和架构需求,需要通过模块化来组织代码。 CommonJS 这里的CommonJS规范指的是CommonJS Modules/1.0规范。 CommonJS是一个更偏向于服务器端的规范。NodeJS采用了这个规范。CommonJS的一个模块就是一个

vue学习总结一

1、sublime text 需安装包 Vue Syntax Hightlight vscode 安装vetur插件 2、 v-bind 缩写  v-bind指令用于响应式地更新HTML属性 <!-- 完整语法 --><a v-bind:href="url">...</a><!-- 缩写 --><a :href="url">...</a> v-on 缩写 v-on指令用于监听