float、clear、position(重点相对定位和绝对定位)用法总结
来源:互联网 发布:淘宝网茶具套装价格 编辑:程序博客网 时间:2024/05/18 13:46
先来理解CSS的定位机制。CSS
CSS
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line
一、float
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。
其默认值是none。所有主流浏览器都支持
float的属性值有四个,如下:
inherit: 规定应该从父元素继承
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
以上是W3C中对float的部分解释。
上述文字并不难理解,可以发现float实际上是将块级元素脱离普通文档流,该元素的垂直距离取决于它原来在文档中的位置,顶端与当前行的顶端对齐,而水平方向则尽可能的向容器边缘移动,且仍遵守填充距离padding的设定值。行内元素会将其环绕。
float打破了既定的框的排列顺序,将块级元素漂浮到我们希望它在的位置上。
二、clear
clear
clear
left
right
both
none
inherit
以上为W3C对clear的部分解释。
同时用overflow:hidden也可以为标签清除浮动。为什么要清除浮动在下面的例子中会提到。
三、position
position
这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对(absolute)或固定元素(fixed)会生成一个块级框,而不论该元素本身是什么类型。相对定位元素(relative)会相对于它在正常流中的默认位置偏移。
position的属性值
absolute:生成绝对定位的元素,相对于
fixed:
relative:
static:
inherit
上述W3C对position的属性值定义写的很清楚,理解起来没什么障碍。只要注意absolute是相对于父元素来进行定位,这里的父元素指的是也是绝对定位的父元素,如果不存在这样的父元素,就相对于body,即是上文中的“相对于
相对定位不会将元素脱出普通文档流,将其看做普通流定位的一部分。而设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
CSS布局是网页排版的一个重要部分,要清晰熟练的掌握这些方法属性必须多加练习,练的多了就有了自己的体会,日积月累便能运用自如。
下面举个小例子,看看各种定位方法的效果。
网页中有三块内容,每块放入一个div中,一块为空div(设置了宽高),一块为图片div,一块为文字div。我们可以分别做实验看下效果。我为div加了框便于区分。
代码:
<!DOCTYPE
<html
<head></head>
<body>
<div
<div
<div
<p>现在,猫成为了全世界家庭中极为广泛的宠物。研究表明,猫不吃老鼠,夜视能力就会有所下降,会长期丧失夜间活动的能力。德国海德堡大学有一份研究称老鼠体内有一种牛黄酸的物质,可以增强生物的夜视能力,而猫体内不能自己合成该物质,只能通过吃老鼠进行补充。</p>
</div>
</body>
CSS样式表:
1、什么效果都不加,只设置大小
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
2、将blank向左浮起来
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
6、将blank设置成相对定位
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
可以看出blank下移100像素,右移100像素,而其他元素的位置均没变;
7、将image设置成绝对定位
body{
div#blank{width:500px;
div#image{width:500px;
#intro{
可以看出image脱出文档流(因为intro元素顶上去了),出现在距离顶部100像素的地方。
在试验中发现,若两张相同的图片放在网页中,将其中一张往左边浮动,不会覆盖另一张,而如果是两块div则会覆盖起来。
你可以尝试修改html,将img标签去掉,用2中的CSS样式,可以发现两块div重叠了。
若div中有文字,文字将会环绕浮起来的那块div,你可以将图片去掉,让blank浮起来并在image中加入文字,可以发现文字环绕blank显示。
另外的各种情况就可以通过修改样式表来看效果。在这里就不赘述了。另外还有float和相对定位,绝对定位混合用的情况,可以根据实际情况进行运用,只要记住基本的规则就不会用错的。
- float、clear、position(重点相对定位和绝对定位)用法总结
- 通俗易懂CSS(一)-相对定位和绝对定位position和float
- Position 绝对定位和相对定位
- position:相对定位和绝对定位
- CSS position 相对定位和绝对定位
- css关于position属性的用法(绝对定位和相对定位的混淆)
- position定位,相对定位和绝对定位的区别?
- 相对定位和绝对定位总结
- CSS之Position相对定位和绝对定位
- CSS中position绝对定位和相对定位
- CSS中position绝对定位和相对定位
- css中position的绝对定位和相对定位
- css中的float和相对定位,绝对定位,z-index
- css position相对定位绝对定位
- 定位的分类,相对定位和绝对定位的总结
- 相对定位和绝对定位
- 绝对定位和相对定位
- 绝对定位和相对定位
- mule transports
- hadoop的find
- 实现SQL SERVER 下的PadLeft函数
- Linux man命令的使用方法 http://zj258.xicp.net:8528
- htaccess
- float、clear、position(重点相对定位和绝对定位)用法总结
- Cassandra
- hdu 3833
- Linux Gadget的一点研究之例程分析
- 类的构造函数、析构函数与赋值函数示例
- 使用EasyBCD完美实现Windows7与Linux双系统
- Oracle表的创建.表空间创建删除,导入导出等
- Effective STL——选择一个合适的容器
- 您的应用还没有任何应用内商品。 要添加应用内商品,您需要对 APK 添加 BILLING 权限。