【发布时间】:2016-08-22 10:04:48
【问题描述】:
我如何让一个绝对定位的元素保持在引导模式模态体元素的范围内?在下面的示例中,它超出了包含 modal-body div 的范围:
.node {
width: 300px;
min-height: 180px;
position:absolute;
margin:5px;
border:3px solid black;
background-color: blue;
}
.modal-body {
position: relative;
border: 2px solid green;
background-color: black;
color: white;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" id="show-modal" data-toggle="modal" data-target="#myModal">
Launch modal
</button>
<div id="myModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
MODAL BODY
<div id="1" class="node">ABSOLUTELY</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal --
【问题讨论】:
-
将
position: relative;添加到.modal-body并将您的节点定位在至少一侧(否则它将表现得像相对定位)。 -
min-height: 180px。什么决定了.node的高度?是图片还是文字? -
@Przemysław Melnarowicz - bootstrap 的模态体已经有 position: relative,但为了清楚起见,我添加了问题 - 结果相同。
-
@Joseph Marikle - 只是文字
-
@user210757 是的。除非你能合理地预测纵横比,否则这在 CSS 中是不可能的。当然,您也可以绑定到引导程序的模态事件以判断模态何时打开并计算绝对定位元素的高度。从那里您可以明确设置高度。
标签: twitter-bootstrap css twitter-bootstrap-3