将图像调整到屏幕高度但保持比例

时间:2011-06-28 03:31:57

标签: javascript html css

我有一些相对简单的事情。我有一张应该显示在网页左侧的图片&它的高度应该是用户的屏幕尺寸。

我使用javascript将图片大小调整为用户屏幕高度。但它根本没有调整它的大小。功能运行但图像大小没有变化。

有没有办法将图片大小调整为用户屏幕高度&保持透视(使宽度成比例)?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/homepage.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Kamalei - Home Page</title>
    <style type="text/css">
    <!--
        html, body, div, form, fieldset, legend, label, img {  margin: 0;  padding: 0;  }  table {  border-collapse: collapse;  border-spacing: 0; }  th, td {  text-align: left;  }  h1, h2, h3, h4, h5, h6, th, td, caption { font-weight:normal; }  img { border: 0; } 

        body { text-align: center;  background-color: RGB(255, 255, 255); margin: 20px; }

        #outerContainer { background-color: #DCFF9A; width: 100%; height: 100%; }
        #midContainer   { width: 100%; height: 100%; }
        #innerContainer { min-width: 1200px; }

    -->
    </style>

    <script type="text/javascript">
    <!--
        function getBrowserSize()
        {
            var res = {"width": 630, "height": 460};

            if (document.body) 
            {
                 if (document.body.offsetWidth)  res["width"]  = document.body.offsetWidth;
                 if (document.body.offsetHeight) res["height"] = document.body.offsetHeight;
            }

            alert( "A: "+res["height"] );
            if (window.innerWidth)  res["width"]  = window.innerWidth;
            if (window.innerHeight) res["height"] = window.innerHeight;
            alert( "B: "+res["height"] );

            return res;
        }

        function getScreenSize()
        {
            var res = {"width": 630, "height": 460};

            if ( parseInt(navigator.appVersion)>3 ) 
            {
                res["width"]  = screen.width;
                res["height"] = screen.height;
            }
            else if ( navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled() ) 
            {
                 var jToolkit    = java.awt.Toolkit.getDefaultToolkit();
                 var jScreenSize = jToolkit.getScreenSize();
                 res["width"]  = jScreenSize.width;
                 res["height"] = jScreenSize.height;
            }

            return res;
        }

    -->
    </script>

</head>
<body>

    <div id="outerContainer">

        <div id="midContainer">

            <img id="kamaleiText" src="images/kamaleiText.png" alt="" />

            <div id="innerContainer">
                <p>abcd</p>
            </div>

        </div>

    </div>

    <!-- Run page load scripts -->
    <script type="text/javascript">
    <!--
        //window.onresize = setBackgroundImgWidth;
        alert("C: "+document.getElementById( "kamaleiText" ).offsetBottom);
        document.getElementById( "kamaleiText" ).offsetBottom = getBrowserSize()["height"] + "px";
        alert("D: "+document.getElementById( "kamaleiText" ).offsetBottom);

        // after this the pictures height hasn't changed, its the same size when it should be the height of the users screen.
    -->
    </script>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

请参阅CSS-Tricks中的这篇文章*:Perfect Full Page Background Image

答案 1 :(得分:-1)

这实际上非常简单。只需使用:

<img src="http://image_url" style="height: 100%;" />

如果需要,您可以绝对定位图像或其他任何内容。我们的想法是,如果您指定widthheight而不是另一个,则会自动按比例调整其他属性。不需要javascript。

注意:一般来说,发布整个代码是不好的做法。