为什么在将位置从固定更改为绝对时,div元素的大小会发生变化?

时间:2011-04-05 09:25:56

标签: html css size css-position

我有一个包含一些文字的div。这个div曾经是position:fixed,但由于某些原因,我需要它position:absolute

但是,当它从固定更改为静态时,其大小已更改(fixed显示期间的“自动调整大小”很好,应该保留)。

这是一个最小的例子:http://jsfiddle.net/ThiefMaster/yBRa9/3/

我正在寻找一种方法来保持position:absolute,而不会让元素缩小到尽可能小的尺寸。

使用JavaScript它是easy to achieve但是如果没有额外的JS就可以完成它会很好。

3 个答案:

答案 0 :(得分:3)

Here Check it.我使用inline-block的范围,似乎做你想要的(当然,如果我理解你的问题)

答案 1 :(得分:1)

具有绝对定位的元素不会继承父级的宽度。您必须设置widthmin-width

答案 2 :(得分:0)

我遇到了同样的问题。我读了Teneff的答案并通过设置宽度:100%来修复它。如果这是最好的做事方式,我不自信,因为我是新人。这是一个例子:

HTML:

<div id="slider">   
<div class="slide">
                    <div class="slide-copy">
                        <h2>Slide</h2>
                        <p>Sliding time</p>                     
                    </div>
                    <img src="http://images.clipartpanda.com/spring-clip-art-spring-clip-art.jpg" alt="an image">
                </div>
</div>

CSS:

#slider {
    width: 940px;
    height: 350px;
    position: relative;
    overflow: hidden;
    float: left;
    padding: 3px;
    border: #666 solid 2px;
    border-radius: 5px;
}

.slide-copy {
    position: absolute;
    bottom: 0px;
    left:0;
    padding: 20px;
    background: #7f7f7f;
    background: rgba(0,0,0,0.5);
}