关于网站底部信息(页脚)的写法

这两天在做几个页面的时候,关于页面底部信息(页脚)的布局遇到有几种情况,这里记录下来,以备查阅。(均以div布局)

我先说一下我遇到的两种情况吧:

第一种情况:左边有个logo,右边是页脚信息。最外边的div有2px的边框,整个div没有高度限制。

首先想到的是定义一个最外边div,并定义border-top:2px solid #a40000;将里面的内容text-align:center;然后将左边的logo浮动到左侧(float:left),这样的写法我们预览到的界面显示结果是:logo到最左边去了,页脚信息在div里居中显示。这样肯定不是我们的初衷,我们是希望logo和页脚信息都在整个div里居中显示。

所以,我想到的解决办法是:在这个div里再写一个div,并定义它的宽度(这个宽度实际上是你自己看着设置的,根据最外边div的宽度来设置个差不多的数值就就可以了),将这个div里设置margin:0 auto;也就是让它居中。然后我们再将logo浮动到左侧,并将右侧的页脚信息居中显示。

下面我们说说右边页脚的写法:右边的两行页脚信息我是用li来写的。设置li最基本的字体属性,并让它居中显示。这里注意一下行高,也就是line-height的值,其实,我们也是追求完美的,所以我们要考虑到右侧两行的页脚信息是否与左侧的logo在垂直方向居中对齐,那么我们这里就设置li的line-height,这个值呢,两行页脚的行高加在一起和logo的高度一样就可以了,比如logo的高度是48,那么我们设置li的line-height:24px;就可以了。

第二种情况:这个div里有一个x轴的平铺背景,并有高度height:100px的限制。

我先说一下我一开始的写法:定义最外边的div,设置背景x轴平铺,设置div的高度,然后是ul,ul里写li,设置li的行高。同样这个行高我们根据100px的高度来设置个33px就差不多了,问题不大。但实际预览结果你会发现:三行页脚信息确实差不多铺满了整个高度(但实际上我们是想要这样的布局:三行页脚信息在整个div里垂直居中,并且上下有等高的边距。)这样的话我们就想到设置ul的上下margin值,再改li的行高,好,那么我们设置ul的上下margin值,但是这样,问题又来了,在ie下是没问题的,但在ff下,整个div往下走了10px的高度(原因是设置了ul的上下边距)。。。那我们换个思路,既然margin不行,我们就用padding,对,我们设置padding的上下边距值,恩,试了一下,可以了!

那,我们可不可以既不用设置ul的margin的值也不用设置padding值来达到我们想要的效果呢?答案是可以的。那我们就从最外边的整个div的高度下手,我们先设置它的高度,再设置一个等值的上下边距padding,然后ul里的margin和padding都是0,其实这样也可以。

其实,还有一种写法,那就是用p写,设置p的margin和padding值都为0,并设置line-height,同样最外边的div里还是要padding上下等值边距的。同样也可以达到我们想要的效果。

下面我们再来看看sina和土豆是怎么写页脚信息的:

可以看到,sina也是用p写的,在右边可以看到它设置了p的margin和padding值都为0,并设置行高为20px。

再来看看土豆的↓

土豆呢,是把所有的页脚信息放在一个div里,加这个里面的内容居中,然后每一行用br进行强制换行。(不太推荐用这种方法,但这种方法也是最简单的)

总结:反正呢,写页脚信息的方法很多,也会遇到各种不同的情况,我们只要将最终的效果实现出来就可以了。

推荐写法:用p写,设置p的margin和padding值都为0,然后设置行高。各容器的高度设置就得视情况而定了。

Write a comment