2天驾驭DIV+CSS!第二课

大家应该明白Float的作用了吧,就是为了消除块状元素“霸权主义”的一把利器!

页面布局有两种方式
1)浮动Float
2)定位Position

今天就来一个小小的练习,让大家理解Float的含义
【例子】
要求:
1)两个方块,一个红色#900,一个蓝色#009;
2)红色方块宽度和高度均为200像素,蓝色方块
宽度为300像素,高度为200像素;
3)红色方块蓝的上外边距(margin-top)和左外边距(margin-left)均为20像素;
页面效果如下:

源代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>例子2</title>
<link rel="stylesheet" type="text/css" href="css.css"/>
</head>

<body>
<div id="redBlock"></div>
<div id="blueBlock"></div>
</body>
</html>
/* CSS Document */
body,div{padding:0; margin:0;}
#redBlock{
 width:200px;
 height:200px;
 background:#900;
 margin-top:20px;
 margin-left:20px;
}
#blueBlock{
 width:300px;
 height:200px;
 background:#009;
 margin-top:20px;
 margin-left:20px;
}
大家应该注意到了,虽然红色方块的宽度并不是100%,但是蓝色并未和红色处于同一行,这就是块状元素比较“霸道”的一点,(即使块状元素的宽度不是100%,它也不允许其他元素和他同在一行)为了消除这种“霸权”,让红色和蓝色方块都处在一行,如图:

此时就需要拿出我们的利器Float!只需要在红色方块的CSS里面加上“float:left;”,这时候在IE6中可以看到蓝色方块的确跑到红色方块的后面了,并且处于一行了,但是在FireFox中却变成了如下效果:

这时候就需要注意了,FF中如果前面的区域浮动了,后面的那个区域很有可能就会和前面的区域发生重叠并错位。
怎么才能解决这个问题,解决这个浏览器兼容的问题,很容易,只需要在蓝色方块的CSS代码中也加入“Float:left;”,问题就解决了,加上试试,看看在FF中蓝色方块是不是和红色方块处于一行了~
到这里,大家应该明白Float的作用了吧,就是为了消除块状元素“霸权主义”的一把利器!在布局页面的时候有时候是需要消除块状元素霸权主义才能布局好哟.
细心的同学会注意到,在IE6中红色方块距离浏览器的左边距并不是CSS代码中定义的20像素,而是40像素,如下图:

其实这是IE6的一个BUG,(IE6双倍边距BUG),只要满足下面3个条件才会出现这个BUG: 
1)要为块状元素;
2)要左侧浮动;
3)要有左外边距(margin-left);
解决这个BUG很容易,只需要在相应的块状元素的CSS树形中加入“display:inline;”,代码如下:
#redBlock{
width:200px;
height:200px;
background:#900;
margin-top:20px;
margin-left:20px;
float:left;
display:inline;
}
现在再看看,是不是IE6和FF显示一样了呢~

呵呵,这节课也比较容易吧,如果大家有不明白的可以留言,我会做进一步解释。
下节课,我们讲讲“浮动清除(Clear)”问题!
最终代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>例子2</title>
<link rel="stylesheet" type="text/css" href="css.css"/>
</head>

<body>
<div id="redBlock"></div>
<div id="blueBlock"></div>
</body>
</html>
/* CSS Document */
body,div{padding:0; margin:0;}
#redBlock{
 width:200px;
 height:200px;
 background:#900;
 margin-top:20px;
 margin-left:20px;
 float:left;
 display:inline;
}
#blueBlock{
 width:300px;
 height:200px;
 background:#009;
 margin-top:20px;
 margin-left:20px;
 float:left;
}

本文来自www.cssxuexi.cn*尊重他人劳动成果,转载请自觉注明出处! 

时间: 2025-01-25 09:01:56

2天驾驭DIV+CSS!第二课的相关文章

2天驾驭DIV+CSS!第五课(下)

大家经常会进入一个误区,会认为在Web2.0时代,只要页面中用了Table就是没有技术含量,就是丢人,要是页面中没有一个table,所有元素全部用DIV做,那就是牛人!大家注意了,要是某人对你说,我的整个网站没有应用一个Table,这时候你就可以认为这个人做页面没有什么技术含量 我们接着上节课,继续学习,我把页面整体效果发出来,方便大家学习   [第七步 内容左侧板块(ContentL)布局]我们分析一下他的结构,主要包括标题和文章内容两块,并且标题和内容之间有一条虚线,而第二篇文章的内容部分是

2天驾驭DIV+CSS!第五课(上)

一般网站都会做到点击logo,就会回到主页,应该怎么做呢,大家首先会想到,给图片加上链接就可以了 前四节的大练习大家做的怎么样?有没有难度,如果你觉着有难度没有关系,这节课,我带着大家做一下这个练习![第一步 整体布局与公共CSS定义]我们先来分析一下这个页面页面主要分5大块,顶部的Logo.导航条Nav.Banner.Content.Footer,如下图这样HTML就很容易写出来了 <div id="Logo"></div><div id="N

2天驾驭DIV+CSS!第三课

目的就是为了清除蓝色方块的浮动对下面绿色方块的影响!是影响哟~是清除影响,而不是清楚蓝色方块的浮动,或者说清除蓝色方块的浮动对下面区域块产生的作用! 还记得第二课我们做的例子的效果么?最后效果是,红色方块和蓝色方块都处于一行,我们使用"Float:left",打击了块状元素的"霸道"即块状元素不允许其他元素和它处于同一行.我们将红色方块的CSS代码中加入了"Float:left;"后,红色方块终于允许蓝色方块和它处于同一行.如图:   我们换一种

2天驾驭DIV+CSS!第七课

平时我们在布局页面的时候,还是要以Float为主,Position为辅!这样你才能做出高质量的页面. 我们先把上节课最后总结一句话拿出来"如果用position来布局页面,父级元素的position属性必须为relative,而定位于父级内部某个位置的元素,最好用absolute,因为它不受父级元素的padding的属性影响,当然你也可以用position,不过到时候计算的时候不要忘记padding的值."如果你还是不能太明白这句话,我们就做个实例,把我们第5节页面的头部blog区域用

2天驾驭DIV+CSS!第四课(上)

其实理论都是一样的,只要你能理解并学会这节课的内容,以后再困难的导航条你都可以很应对,EASY !!! 课程开始:      前三节课,我们知道了什么是"内容块状元素和内联元素",以及XHTML+CSS布局的核心概念"盒子模型",同时又学习了一下页面布局中两种方法中的一种方法"浮动",这次我们就利用这三个概念,来制作一款,经典的导航条,别看它其貌不扬,可是网上所有的导航条都可以再它的基础上修改而来哟~,厉害吧~!其实理论都是一样的,只要你能理解并

2天驾驭DIV+CSS!第六课

如果用position来布局页面,父级元素的position属性必须为relative,而定位于父级内部某个位置的元素,最好用absolute 注:在做这节教程的时候,我又上网查了相关资料,看了大量的文章,做了大量的测试,最后总结出下面这些文字,洋洋洒洒一整篇,不过需要大家一句话一句话的看,一定要仔细喽!还有对于课程中的说的,最好一边看,一边练,不练绝对看不懂! 定位(position)布局页面说容易非常容易,只需要记住这节课最后一句话就可以了,说困难,那是相当的难理解,需要一定的耐心,不过还好

2天驾驭DIV+CSS!第四课(下)

第四课的思路就是这样的,如果吃透了这节课,那么以后什么样子的导航都很轻易作出来,如果你在和js很好的结合起来用~你就可以很自信的向老板提出加薪了!!!^_^ 上节课我们将导航条做成了下面的效果[第四步] 我们需要将上面的导航条做以下几个修改1)给上面的导航加上链接:2)链接文字大小修改为12px;3)并且规定链接样式,鼠标移上去和拿开的效果修改方法如下1)导航加链接,HTML代码如下:<div id="nav">    <ul>     <li>&l

2天驾驭DIV+CSS!第一课

当你看完教程,肯定会说XHTML+CSS就这么简单!easy! [例子] 要求: 1)宽度.高度均是200像素: 2)颜色为红色#900: 自己做做,看看能不能作出来?先不要看我的代码,如果真的做不出来,就下载下来,跟着我下面说的一步一步修改. 下面是我的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tr

JavaScript驾驭网页-CSS与DOM_javascript技巧

推荐阅读:JavaScript驾驭网页-DOM DOM是种符合万维网标准的HTML操纵方式,它能比innerHTML特性达成更多操控功能 这里有HTML代码与CSS代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style type="text/css"> span.class