css的绝对布局问题,怎么让子元素置于底部?

尝试写个简单的banner,将div设成了relative,然后想让里面的h1置于div的底部。
为什么只把h1设为absolute就自动跑到底部了?
#banner h1{ position:absolute; }
2.我给h1设置了top:0,h1也会置于底部;但是我要是设置bottom:0,反而跑到了顶部?为什么?
3.给h1设置top:100或者设置left:100都没有效果,为什么?

完整css代码

#banner{ background:url(images/topbg.gif); height:60px; position:relative; vertical-align:central; } #banner #ad{ position:absolute; top:0; right:0; } #banner h1{ position:absolute; top:100; left:100; }

谢谢~
html代码

<body>
<div id="banner">
<h1>Travel Guide</h1>
<img id="ad" src="images/ad.gif" alt="ad">
</div>

1、首先设置要了解网页页面布局框架结构,设定宽高和边框,以及设置好class或者ID名称。


2、打开Dreamweaver CS5,点击新建HTML。

3、根据设定的网页布局,设置div网页结构。

4、添加div标签的class名称,这里也可以使用ID类名。

5、 编辑CSS控制div块的宽高和背景。

6、 这样就可以让子元素置于底部。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-16
给子元素做定位。用position标签
示例:
<html>
<head>
<style type="text/css">
p.pos_abs
{
position:absolute;
left:100px;
top:150px
}
</style>
</head>
<body>
<p class="pos_abs">通过绝对定位,元素可以放置到页面上的任何位置。这段话设定为距离页面左侧 100px,距离页面顶部 150px。
</p>
</body>
</html>

方法属性设置:positon:absolute; left:100px; top:150px;
还可以用right 和 bottom left距离左边的意思 right距离右边的意思,top距离顶部的意思,bottom距离底部的意思。
这里要解释一下position有5个值可以选择,分别对应不同的页面进行设置
absolute :生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed :生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative :生成相对定位的元素,相对于其正常位置进行定位。
因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static :默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit :规定应该从父元素继承 position 属性的值。
第2个回答  2015-04-21
你想把H1放到底部是吧?
#banner h1{
position:absolute; top:23px; left:0px;
}追问

不行的 我把top设置成0,已经放在底部了 ,再设置成23px,就从底下突出去啦

我是想问为什么设成0,就已经在底部了;而bottom设成0,反而跑到了顶部?

追答

我这里是可以的额。。。整站的内外边距你有清么?*{margin:0; padding:0;}

第3个回答  推荐于2017-12-16
还是我来解答吧。
h元素是有默认样式的。你不奇怪为什么h元素没有设字体样式也会那么大吗?

你这个问题,把h1设个margin:0去掉它的默认边距就解决了本回答被网友采纳
第4个回答  2015-04-21
请问你的html代码呢?你这样写出来条理不明啊追问

已加 求帮忙看看 就是一个div 里面一个h1 和一张广告图片 但是广告我不纠结 我纠结的是h1位置 谢啦~

追答

#banner h1{
position:absolute;
top:100;
left:100;
}
我想跟你说的是,请问你的单位呢?

追问

。。。哦哦 单位单位 好~

1和2求解~

追答

对于你的

“为什么只把h1设为absolute就自动跑到底部了?

#banner h1{
            position:absolute;
        }

”我想说的是,你这样写的时候没有自动跑到底部,默认为top:0;left:0;并没有被背景图压住,不信你可以自己试试。


“我给h1设置了top:0,h1也会置于底部;”这个问题同上,不再解释,

“要是设置bottom:0,反而跑到了顶部?为什么?”这里h1只要绝对定位了不管是top值还是bottom值都会在div的上面,不会再div的下面。top是针对div最上面来说的距离,而bottom则是针对div最下面那一线来说的相对于底部的距离。画个图给你看或许更好理解:

所以一般定位只有两个值要么上下一个,左右一个


另外,若是你要定位在背景图之外,可以给bottom负值或者给top值大于div高度的值

追问

你这样写的时候没有自动跑到底部,默认为top:0;left:0;并没有被背景图压住,不信你可以自己试试

什么叫没有被背景图压住?h1本来就是在背景图上层的啊 这个我没有问题的 我是想问 为什么没有处于背景的底部

后面的话 基本上看不懂。。。 我没有讨论层 就是z轴

追答

你是想让h1里面的内容显示还是不想让h1里面的内容显示?