头痛的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,这时两
相关文档:
在asp.net中,有的时候要动态变换CSS,比如有的时候做个性化页面,可以这样做
<head>
<link id="MyStyleSheet" rel="stylesheet" type="text/css" runat="server" />
</head>
之后,在要更换CSS的页面中,使用如下代码
Sub Page_Load(Sender As Object, E As EventArgs)
If Not (IsPostBack) ......
模块:module.css
基本共用:base.css
布局、版面:layout.css
主题:themes.css
专栏:columns.css
文字:font.css
表单:forms.css
补丁:mend.css
打印:print.css
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度: ......
由下往上的:
<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 ......
JavaScript代码
<mce:script type="text/javascript"><!--
function imageOver(e) {
e.style.border="1px solid red";
}
function imageOut(e) {
e.style.borderWidth=0;
}
// --></mce:script>
<img src="phplamp.gif" onmouseover="imageOver(this)" onmo ......
图片自动适应大小的问题在平时制作的时候是比较常见的问题,下面提供一个比较简单的解决方法:
div img {
max-width:600px;
//IE7、FF等其他非IE浏览器下最大宽度为600px;
width:600px;
//所有浏览器中图片的大小为600px;
width:expression(document.body.clientWidth>600?"600px":"auto");
//当图片大小大于6 ......