登陆 免费注册 提交网站
站长资讯 >> 站长学院 >> 网页制作
 2011-11-05 08:37浏览: 2953 次

DIV+CSS布局的十点技巧

下面通过十点来讲讲DIV CSS的一些布局技巧方法:

第一点.超链接访问过后hover样式就不出现的问题?

被点击访问过的超链接样式不在具有hover和active了, 解决方法是改变CSS属性的排列顺序: L-V-H-A

a:hover ,一直也没出现什么问题,后来发现ie6下a:visited 和 ff下的颜色不一致,这才发现这一个问题。看来没有问题也不代表书写正确。

第二点.IE6的双倍边距BUG

例如:

body {margin:0}

div { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red }

浮动后本来外边距10px,但IE解释为20px,解决办法是加上display:inline

ps:刚开始接触这一工作的时候真的是不知道怎么回事,还以为是各个浏览器之间的解释不同,制作的时候只能小心意义的以ie6的宽度来定义,可惜ff 和ie经常预览效果不一致,被某些人抓住不放,当时很是气氛和郁闷,一气之下疯狂百度和谷歌,可惜那时候抓不住关键词,走了不少弯路才找到问题答案,好在现在解决了。Y(^_^)Y

第三点.为什么FF下文本无法撑开容器的高度?

标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉he ight设置min-height:200px; 这里为了照顾不认识min-height的IE6 可以这样定义:

div { height:auto!important; height:200px; min-height:200px; }

第四点.为什么web标准中IE无法设置滚动条颜色了?

原来样式设置:

body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee; scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; }

解决办法是将body换成 html

ps: 当时被要求要重新定义滚动条的时候,我查到了两个方法,一种如上,一种是js仿制滚动条,我应用的是上面的这种,但是发现不兼容IE,后来不了了之了,再后来偶然间才发现了这个解决办法。

第五点.为什么无法定义1px左右高度的容器?

IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px

第六点.怎么样才能让层显示在FLASH之上呢?

解决的办法是给FLASH设置透明:

第七点.怎样使一个层垂直居中于浏览器中?

这里使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二

ps:margin的值就是div宽度的1/2;

第八点、 firefox嵌套div标签的居中问题的解决方法

假定有如下情况:

如果要实现b在a中居中放置,一般只需用CSS设置a的text-align属性为center。这样的方法在IE里看起来一切正常;但是在 Firefox中b却会是居左的。

解决办法就是设置b的横向margin为auto。例如设置b的CSS样式为:margin: 0 auto;。

第九点、DIV起初布局和CSS的大方向规划

* {margin:0; padding:0;word-break:break-all;}

body {background:#eeeeee url(../images/QZZT_head_bg.jpg) top center no-repeat;padding:0; margin:0; color:#333333; font-family:”宋体”; }

a {color:#333333;text-decoration:none; }

a:hover {color:#ba2636;text-decoration:underline; }

ul, li, span, img{ padding:0; margin:0; list-style:none; }

img{border:none;}

.F12 { font-size:12px; }

.F12 { color:#333333; }

.red { color:#CC0000; }

a.red { color:#CC0000; text-decoration:none; }

a.red:hover { color:#CC0000; text-decoration: underline; }

/*——-边框————–*/

.border3 { border:1px solid #e6e6e6; }

.border2 {border-left:1px solid #d78327;border-right:1px solid #d78327;border-bottom:1px solid #d78327;}

.border1 {border-left:1px solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;}

/*通用样式*/

.divline { height:10px; line-height:10px; width:auto; overflow:hidden; clear:both; }/*分割空间 折行*/

.clearboth { width:auto; height:1px; margin-top:-1px; overflow:hidden; clear:both; }/*清除浮动实现自动折行 无高度*/

页面起初的CSS设定一定要关系到你后面再操作中的便利和出错,所以这段代码的使用,是防止后面可能出现的错误。

“*”这个大家都知道,是通配符,也就是所有的页面内定义的对象,都会配置这一样式,里面的word-break:break-all是要求必须在限定范围内折行,这样你做出的框内文字才会在限定范围内折行。当然,如果不折行,而是自动适应,那就没有必要用这段样式了。

body中的定义我想就不用多说了,padding,margin,border不特殊情况下,都为0。

整体的链接样式,大方向的,也就是默认的,可以设定一个a和a:hover,这个是你页面中出现最对颜色的链接样式。

ul,li.span,img这些也最好把padding和margin的值设为0,另外ul和li中的列表标记设成none,便于后续操作中可以自己调整。

文字的大小,文字的颜色,可以用组合样式,比如上面的F12,代表12px字体,如果我现在用12px的红色字体,那么class=”F12 red”。

边框也是单独设定,然后用组合样式。注意:再具体限定高度和宽度的div时用到组合边框,一定要考虑边框所占得1px。

关键来啦,有人可能遇到这样的问题,就是为什么我的页面是按照块做的,可惜两块怎么叠加到一起了呢?而不是一块块按照顺序向下排列的呢?那就就用这个来调,把divline的样式附加在一个空白div上,然后放在两个块中间,这样就不会使块与块之间干扰了。如果是无缝的,就用clearboth这个样式,它是无高度的。这个方法可能笨点儿,但是很奏效。

下面我们讲DIV的布局

第十点、把握大方向 布局有技巧

两部分,上边两块的为一部分,下边一大一小为另一部分。布局很简单都是两列。要求就是先做外围的大框。

我给写一下div中的css,以及DIV的顺序。

明白没?这就是第一块的div写法,同样,第二块也属于两列布局,div也可以这些,这样的目的就是先顾全整体,然后再调节细节,这就是div布局。

这是我们再添加你要明确的div的css

CSS样式写法要明确,这样便于以后维护查找方便。而且要写好注释。

大家应该都注意到上边的图片中,四个块块的标题样式都一样,对吧?那就写一个通用的,拿来用。这也是大方向的布局之一,也就是title通用时,写一个可以通用的样式。在这里,我就不详细写了。

另外要注意的是,当div样式中存在float:left或者是float:right时,如果它其中有padding和margin,而且值不为0,那么一定要加一个display:inline;防止产生双倍距离,如果有的li中插入图片之后会长一些,加一个overflow:hidden,这个就是让溢出的东西隐藏起来。

网站首页 - 关于我们 - 联系我们 - 友情链接 - 帮助中心
Copyright ©2007-2022 www.Aisila.com All Rights Reserved
苏ICP备20008864号-4