css学习提高篇笔记实录.docx
- 文档编号:24591330
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:47
- 大小:201.54KB
css学习提高篇笔记实录.docx
《css学习提高篇笔记实录.docx》由会员分享,可在线阅读,更多相关《css学习提高篇笔记实录.docx(47页珍藏版)》请在冰豆网上搜索。
css学习提高篇笔记实录
盒模型、块状元素与内联元素、CSS选择器
【例子】
要求:
1)宽度、高度均是200像素;
2)颜色为红色#900;
自己做做,看看能不能作出来?
先不要看我的代码,如果真的做不出来,就下载下来,跟着我下面说的一步一步修改。
下面是我的代码:
在IE6和FF中显示效果如下图:
怎么样,比较容易吧~,但是你们有没有发现,红色区域离浏览器的顶部和左边的边距IE6和FF的不一样,有没有发现?
这样的话,我们作出来的页面浏览器就不兼容了,效果不一样了?
为什么会这样?
这是因为每个浏览器都有一个内置的CSS文件,当你没有对某个标签的属性设置的时候,浏览器就会应用内置的
CSS文件,怎么才能做到浏览器兼容?
不着急,你只需要在
CSS文件中,将我们目前应用到得标签body和div置零就OK了,代码这么写
body,div{padding:
0;margin:
0;}
当把这句话加上之后,是不是两款浏览器显示效果一样了吧~如下图
好,我们接着来,现在再加一个条件
3)让红色区域与浏览器的顶部和左边距离为20像素;
怎么样,有没有思路?
没有思路没关系,继续向下看
我们,只需要设置红色方块的外边距就可以了,添加如下
CSS代码:
margin-top:
20px;
margin-left:
20px;
效果如下图
这样就使红色区域定位于页面坐标(20,20)处了,与浏览器上边距和左边距都为20像素。
不过上面的这种写法我们可以精简为
margin:
20px0020px;
其中的数值顺序是:
上右下左。
而margin:
20px0;则和margin:
20px020px0;是等价的哟~只不过是更加精简而已,这样写
CSS加载速度会更快。
我们接着将问题延伸,怎样才能让红色区域水平定位于浏览器的正中间,无论浏览器窗口的大小,显示器分辨率的大小。
也很简单,刚刚加的两句话"margin-top:
20px;margin-left:
20px;"修改为
margin:
0auto;
怎么样,有意思吧,红色区域是不是位于浏览器的正中间了~
好~!
到这里第一节课结束,是不是很简单,或者太简单了!
!
!
KwooJan可以保证,后面的课程照样很简单,当你看完教程,肯定会说XHTML+CSS就这么简单!
easy!
如果你有看不懂的,赶紧点击文章最上面的课程关键词,只要你看了这些关键词,相信你绝对能明白!
第一次写教程,不知道大家能不能看懂,能不能接受,如果你觉着不错,就顶我吧,如果你有建议或者想法,就直接留言,我会在下节课改进!
第二节,浮动
页面布局有两种方式
1)浮动Float
2)定位Position
今天就来一个小小的练习,让大家理解Float的含义
【例子】
要求:
1)两个方块,一个红色#900,一个蓝色#009;
2)红色方块宽度和高度均为200像素,蓝色方块
宽度为300像素,高度为200像素;
3)红色方块蓝的上外边距(margin-top)和左外边距(margin-left)均为20像素;
页面效果如下:
源代码:
大家应该注意到了,虽然红色方块的宽度并不是100%,但是蓝色并未和红色处于同一行,这就是块状元素比较“霸道”的一点,(即使块状元素的宽度不是100%,它也不允许其他元素和他同在一行)为了消除这种“霸权”,让红色和蓝色方块都处在一行,如图
此时就需要拿出我们的利器Float!
只需要在红色方块的CSS里面加上“float:
left;”,这时候在IE6中可以看到蓝色方块的确跑到红色方块的后面了,并且处于一行了,但是在FireFox中却变成了如下效果:
这时候就需要注意了,FF中如果前面的区域浮动了,后面的那个区域很有可能就会和前面的区域发生重叠并错位。
怎么才能解决这个问题,解决这个浏览器兼容的问题,很容易,只需要在蓝色方块的
CSS代码中也加入“Float:
left;”,问题就解决了,加上试试,看看在FF中蓝色方块是不是和红色方块处于一行了~
到这里,大家应该明白Float的作用了吧,就是为了消除块状元素“霸权主义”的一把利器!
在布局页面的时候有时候是需要消除块状元素霸权主义才能布局好哟,比如KwooJan的博客中间内容部分,分为左边(LEFT)和右边(RIGHT),就是要用上面这个方法布局的哟,如下图
细心的同学会注意到,在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)”问题!
最终代码:
精简后的代码CSS加载更快,大家一看就明白了^_^
第三节,清除浮动
还记得第二课我们做的例子的效果么?
最后效果是,红色方块和蓝色方块都处于一行,我们使用“Float:
left”,打击了块状元素的“霸道”即块状元素不允许其他元素和它处于同一行。
我们将红色方块的CSS代码中加入了“Float:
left;”后,红色方块终于允许蓝色方块和它处于同一行。
如图:
我们换一种方法表达上面的意思,因为红色方块的“左侧浮动”,才导致蓝色方块上移至红色方块的尾后;
在上个例子中,为了达到浏览器兼容性,我们分别在红色蓝色方块CSS代码中分别加了“Float:
left;”,这样IE和FF中显示效果一样,如果此时我们还想放一个宽度400像素,高度100的绿色方块,并让其处于第二行,效果如下图:
可是这时候不管怎么放,在IE中的效果始终是
导致绿色拍到蓝色的后面这种情况就是因为蓝色方块
CSS代码中含有"Float:
left;",但是为了浏览器兼容性,又不能去掉(什么?
这句话看不明白,只能说明第二节课你没有好好学,好好品味!
),怎么办?
好办~!
只要在CSS代码中加入下面这段代码:
.clear{clear:
both;}
并在HTML代码中加入下面代码:
上面这句话究竟加在那个位置呢,要加在蓝色方块和绿色方块中间,然后看看效果是不是我们想要的了~^_^