簡體   English   中英

如何將div高度設置為自動調整背景大小?

[英]How to set div height to auto-adjust for background size?

我正在建立一個響應站點。 我的問題是如何獲取div以自動調整為其設置的背景大小,而無需為其設置特定的高度(或最小高度)?

<style>
#master_head{
width:99%;
min-width:640px;
border:1px solid red;
min-height:50px;
background: url(http://nokiaindiacontest.com/ashalcm/images/nokia-asha-Width-banner.png) no-repeat top;
background-size: contain;   
height:540px;
}
</style>

<div id="master_head"> </div> 

演示鏈接: -http : //jsfiddle.net/rushijogle/5fray/2/

提前感謝:)

工作演示: http : //jsfiddle.net/gKQ7e/

調整大小后,這將拉伸並使div保持在瀏覽器的頂部和底部。

移除height: 540px

加:
position: fixed;
top: 0;
bottom: 0;

#master_head{
    width:99%;
    min-width:320px;
    border:1px solid red;
    min-height:50px;
    background: url(http://nokiaindiacontest.com/ashalcm/images/nokia-asha-Width-banner.png) no-repeat top;
    background-size: contain;   
    position: fixed;
    top: 0;
    bottom: 0;
}

實際上,沒有辦法使用CSS自動調整div高度以自動調整背景大小。

但是,您可以使用javascript(在加載背景圖片之后)執行此操作。

<!DOCTYPE html>
<html>
<body>
</body>

<div id='hello' style="background:url(http://nokiaindiacontest.com/ashalcm/images/nokia-asha-Width-banner.png);">
</div>
<script type="text/javascript" charset="utf-8">
window.onload = function() {

    var imageSrc = document
    .getElementById('hello')
    .style
    .backgroundImage
    .replace(/url\((['"])?(.*?)\1\)/gi, '$2')
    .split(',')[0];

    var image = new Image();
    image.src = imageSrc;

    var width = image.width,
    height = image.height;

    document.getElementById('hello').style.height = height+'px';
    document.getElementById('hello').style.width= width+'px';
}
</script>
</html>

無論如何,通過將圖像包含在img標記下且可見性設置為隱藏的情況下,仍然可以通過不帶JavaScript的方式來實現此目的,這是一種效率低下的方法:

<div id='hello' style="background:url(http://nokiaindiacontest.com/ashalcm/images/nokia-asha-Width-banner.png);">
    <img src="http://nokiaindiacontest.com/ashalcm/images/nokia-asha-Width-banner.png" style="visibility:hidden"/>
</div>

最好的祝福:)

我已經處理了一段時間,並決定編寫一個jquery插件來解決此問題。 該插件將找到所有帶有“ show-bg”類的元素(或者您可以將其傳遞給您自己的選擇器)並計算其背景圖像尺寸。 您所要做的就是包括以下代碼,用class =“ show-bg”標記所需的元素,然后運行:

 $(document).heightFromBG();

請享用!

https://bitbucket.org/tomeralmog/jquery.heightfrombg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM