相对div没有包装其绝对内容......任何人都知道解决方案?

时间:2015-04-12 17:07:23

标签: css twitter-bootstrap absolute relative responsiveness

我正在尝试将响应的绝对定位图像放在相对div中。我已将边界放置在两次潜水周围以显示问题。右边的那个不包裹。另外,我想将图像导航保留在图像的中间。

主要目标是保持包装div响应和包装图像的大小 - 当图像大小在窗口调整大小时更改。

您可以在此处查看codepen中的问题 - http://codepen.io/GlupiJas/pen/PwrLbb


enter image description here

advert.css

body{

}
.wrapper{
    width: 80%;
    margin: 100px auto;
}
.advert{
    position: relative;
    height: 100%;
}
.advert img{
    position: absolute;
}

.advert button{
    position: absolute;
    visibility: hidden;
}
.advert:hover button{
    visibility: visible;
}

.advert button#advertCloseButton{
    top: 0px;
    right: 0px;
}
.advert button#advertNextButton{
    bottom:50%;
    left:0px;
}
.advert button#advertPreviousButton{
    bottom:50%;
    right:0px;
}
.advert button#advertStopButton{
    bottom:0px;
    right:0px;
}
.advert button#advertPlayButton{
    bottom:0px;
    right:0px;
}

.border{
    border: 1px solid gray;
}

的index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title of the document</title>
    <!-- jQuery -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <!-- Bootstarp 3 Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <!-- Bootstarp 3 Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
    <!-- Bootstarp 3 Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <!-- custom css -->
    <link rel="stylesheet" type="text/css" href="advert.css">
    <script src="js/advert.js"></script>
</head>

<body>
  <div class="wrapper">
    <div class="row">
      <div class="col-xs-12 col-md-8 border">
        .col-xs-12 .col-md-8
      </div>
      <div class="col-xs-12 col-md-4 border">
        <div class="advert">
            <img class="img-responsive" src="http://placehold.it/300x300.jpg" alt="Smiley face" height="" width="100%">
            <img class="img-responsive" src="http://placehold.it/300x300.jpg" alt="Smiley face" height="" width="100%">
            <img class="img-responsive" src="http://placehold.it/300x300.jpg" alt="Smiley face" height="" width="100%">
            <button id="advertCloseButton" type="button" class="btn btn-danger">X</button>
            <button id="advertNextButton" type="button" class="btn btn-danger">></button>
            <button id="advertPreviousButton" type="button" class="btn btn-danger"><</button>
            <button id="advertStopButton" type="button" class="btn btn-danger">pause</button>
            <button id="advertPlayButton" type="button" class="btn btn-danger">play</button>
        </div>
      </div>
    </div>
  </div>
</body>

<script>
$(function(){
    advert({
        closeButton: true,
        navButton: true,
        timeToShow: 100,
        timeDelay: 1000,
        timeToFade: 100
    }); 
});
</script>

</html>

1 个答案:

答案 0 :(得分:0)

我很快就嘲笑了一个演示,但你遇到的问题更多是因为你添加了很多div(一个为边框增加了一个div而另一些则不需要 - 所以我必须设置高度:每个100%其中之一)并没有为所有图像和按钮的容器设置高度。

当然,如果容器设置了高度,并且确保您的播放按钮包含在同一个div中,position:relative;对其子级position:absolute;将起作用。

在这个演示中,我快速将所有父容器的高度设置为高度:100%;向您展示高度如何影响问题。

注意要让height:100%正常工作,每个家长需要拥有一个高度固定的设置,或者每个家长需要从html开始,身体需要有100%的高度。

如果您向容器添加固定高度,或者将html,body设置为100%高度,然后确保所有子项都有100%,则可以解决您的问题。

<强>样本 http://codepen.io/alexincarnati/pen/RNzvmw