头痛的css(div)布局
我所用的主题fstos在制作和测试阶段都用的ie6,因为是参照wordpress自带的几个主题写的,当时没有考虑css的兼容性问题,犯了“大跃进”错误(用firefox浏览简直是惨不忍睹),但由于工作很忙也没有时间修理它。这两天抽了些时间好好对他来了个大清理,出顺便将我遇到的主要问题总结一下,希望对大家有所帮助。
问题现象:ie中显示正常,firefox中却支离破碎。可大致总结为:有的本来居中的没有居中;本来在最下面的跑到上面来了;本来在一侧的结果到了别处;有的在100px处,可看起来像在105px(举例而已)处;同在一个父层中的两个子层,一个内容多些从高度上来说自然拉伸,但另一个子层却不跟着拉伸;一串英文过长超出了原设定的边界。接下来一个一个说:
1、本来居中的没有居中
在ie中显示是居中的(只需要设置body的text-align:center;不知道为什么感觉这样设置很奇怪。),在firefox中显示是靠左的即没有居中,重新检查了下发现需要设置margin来使相应对象居中:margin:0 auto; 设置的值的含义我就不说了。
2、本来在最下面的跑到上面来了
我采用的是footer单独一个行的布局,也就是说,在footer的左右是没有其他层的。在ie中显示为最下面(css同样也没有特别设置),在firefox中显示跑的上面来了,这个问题是因为没有设置clear,需要设置为clear:both; 即不允许该层两边有浮动对象。
3、本来在一侧的结果到了别处
在ie中sidebar显示在正常的页面中部的右侧(我的布局分为上中下三部分,上下分别为header和footer,中部为帖子列表和sidebar,sidebar在中部的右侧),在firefox中sidebar跑到了中部的下面,footer的上面。
起初我认为可能是sidebar设置为float:right;的缘故排除后,我将sidebar的float设置去掉,转而通过设置margin来使sidebar显示在中部的右侧,但它还是顽固的待在下面,最后通过反复的检查发现之前我在sidebar的一个ul样式中有一个clear:both;的设置,将它去掉后sidebar在firefox中回到上面了,但在ie中还是在下面(检查发现是因为刚才调试的时候将margin的值设置的太大了,firefox显示为继续的右移,而在ie中就转到下一排了,修改margin值后没有这个问题了)。
但是这样却发现ie中和firefox中有几个象素的差别,在ie设置为合适的位置,可在firefox中就靠左了些。这个问题我没有分析清楚,暂时认为是浏览器间的处理不同吧。最后我还原sidebar的float设置为right,这时两
相关文档:
dt 和dd中可以再加入 ol ul li和p,理解这些以后,在使用div布局的时候,会方便很多,其实w3c提供了很多元素辅助布局都是有它的用处的,而不尽是div。
块级元素div尽量少用,其实和table一样,嵌套越少越好,它也是会影响速度的!
ol 有序列表。
<ol>
<li>......</li>
<li>......</li& ......
由下往上的:
<div id="demo" onmouseover="ij=1" style="border:1px solid gray; overflow: hidden; height: 119px; width:211px " onmouseout="ij=0">
<div id="demo1">1<br />2br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>
可以是任何的HTML内容<br&g ......
1. CSS Reset/重置
你也许需要先了解什么是css重置。然后怎么样写css重置呢。
你可以copy Eric Meyer Reset, YUI Reset或其它css reset, 但你接下来应该根据你的项目改成你自己的reset.
不要使用* { margin: 0; padding: 0; } 。我个人很爱用,原作者提到使用这句并不适用一些元素比如单选按钮。不过俺博客里面也没有单 ......
减少网站HTTP请求这是加快网站访问速度的关键,而CSS sprites技术是把多张图像组合成一张图像,这样用户在访问网站时一次性把多张图片加载完,而不需要一张张图片的加载,这样减少了组件的页码,建立更丰富的内容的网站,同时也取得了快速的反应
时间。
&n ......
绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素, ......