设计皮肤我们遇到的第一个问题就是如何居中内容,一般使用CSS+DIV布局有两种方法,
第一种方法是使用 auto margins,第二种方法是使用负margins
翻翻资料,使用auto margins的一般都是这么写的:
假设HTML部分如下:
这是为什么呢?原来,IE 5.x/Win是不支持auto margins的,而DNN默认的DOCTYPE会触发IE6进入quirks模式( 如何解决),这种模式下也是不支持auto margins的,看样子这个经典居中方法是没法用在DNN上了,幸运的是,IE错误的理解text-align:center这个定义,IE会把所有的东西都居中而不仅仅是text,我们可以利用这一点来解决问题。修改后的代码如下(只需要修改CSS部分):
第二种方法是使用负的margin,这种方法也会带来版式上的问题,且听下回分解!
第一种方法是使用 auto margins,第二种方法是使用负margins
翻翻资料,使用auto margins的一般都是这么写的:
假设HTML部分如下:
<
body
>
< div id ="wrapper" >
</ div >
</ body >
现在使用auto margins居中id为wrapper的DIV,
< div id ="wrapper" >
</ div >
</ body >
#wrapper
{
width: 720px;
margin: 0 auto;
}
但你却发现,按照这种“标准”写法,皮肤安装到DotNetNuke中后,在IE 5.x/Win、IE 6/Win中里面却怎么也没法把内容居中,auto margins方法失效了,
{
width: 720px;
margin: 0 auto;
}
这是为什么呢?原来,IE 5.x/Win是不支持auto margins的,而DNN默认的DOCTYPE会触发IE6进入quirks模式( 如何解决),这种模式下也是不支持auto margins的,看样子这个经典居中方法是没法用在DNN上了,幸运的是,IE错误的理解text-align:center这个定义,IE会把所有的东西都居中而不仅仅是text,我们可以利用这一点来解决问题。修改后的代码如下(只需要修改CSS部分):
body
{
text-align:center;
}
#wrappter
{
width:720px;
margin: 0 auto;
text-align: left;
}
修改完再试一试,在IE里面也表现完美!
{
text-align:center;
}
#wrappter
{
width:720px;
margin: 0 auto;
text-align: left;
}
第二种方法是使用负的margin,这种方法也会带来版式上的问题,且听下回分解!