且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

DotNetNuke(DNN)皮肤制作--如何居中内容

更新时间:2022-08-16 22:25:50

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

DotNetNuke(DNN)皮肤制作--如何居中内容
DotNetNuke(DNN)皮肤制作--如何居中内容#wrappter
DotNetNuke(DNN)皮肤制作--如何居中内容DotNetNuke(DNN)皮肤制作--如何居中内容
{DotNetNuke(DNN)皮肤制作--如何居中内容}{
DotNetNuke(DNN)皮肤制作--如何居中内容   width
:720px;
DotNetNuke(DNN)皮肤制作--如何居中内容   margin
: 0 auto;
DotNetNuke(DNN)皮肤制作--如何居中内容   text-align
: left;
DotNetNuke(DNN)皮肤制作--如何居中内容
}
修改完再试一试,在IE里面也表现完美!

第二种方法是使用负的margin,这种方法也会带来版式上的问题,且听下回分解!