在這個用CSS指定高度爲自動的div上,如果所包含的元素與顯示塊一起顯示,div高度纔會改變。如果沒有爲包含的元素指定顯示,則div不會調整大小。元素用javascript代碼添加。當添加元素時,帶自動調整高度的div不會調整大小
這裏是div和所附元素的CSS。
#page {
height: auto;
min-height: 83%;
padding-bottom: 20px;
}
.linkcard, .linkcard_init {
position: absolute;
padding: 0;
margin-top: 20px;
margin-left: 20px;
border: 1px solid DarkKhaki;
border-radius: 3px 3px 0px 0px;
box-shadow: inset 0px 0px 10px DarkKhaki;
z-index: 26;
}
這是HTML。元素被添加到div容器中,代碼爲$("#page").append(response);
。這會附加來自PHP腳本的回顯語句。
<div id="page"> <!-- Begin page div -->
<div id="buttons">
<a href="#" onclick="create_linkcard();"> Add LinkCard</a> <br/>
</div> <!-- End buttons -->
<script type="text/javascript">
$(document).ready(function() {
// Make ajax call to recreate linkcards from XML data
$.ajax({
url: "get_nodes.php",
type: "POST",
data: { },
cache: false,
success: function (response) {
if (response != '')
{
$("#page").append(response); /*** ADDING DIV ELEMENTS ***/
}
}
});
});
</script>
</div> <!-- End page div -->
PHP腳本回應附加到div的響應,代碼如下所示。
echo "<div id = '".$node['ID']."' class= 'linkcard ui-widget-content' style = 'top: ".$node->TOP."px; left: ".$node->LEFT."px; width: ".$node->WIDTH."px; height: ".$node->HEIGHT."px;'> \n";
echo " <p class = 'linkcard_header editableText'>".$node->NAME."</p>\n";
echo "</div> \n";
這些元素似乎浮在div(#page)之上。他們似乎沒有附加到分區。我這樣說是因爲,當我爲#page添加更多元素時,它們被放置在#page左上角的包含元素下。上述代碼中的內容可以解釋爲什麼元素浮動在頂部而不是添加到頁面中?
'position:absolute;'或'position:inherit;'是唯一的選項,允許我將這些元素放在頁面所需的位置。那我該如何讓元素成爲容器div'#page'的一部分來調整這個div的大小? – user823527
他們需要相對於父div的位置,父div被定位絕對。否則,用javascript模擬擴展。 –