0

このコードでいくつかの問題に直面しています。私はあなたが私を助けることができるかもしれないと思った.

まず、私のセクションにはパディングも境界線もないため、ピクセルは上、左、右、および幅のプロパティにのみ使用され、outerWidth() は必要ありません。

最初の問題: 最初に、ボディの「左」と「右」のプロパティを (window_width - 1100 = 180) に設定したので、ボディの幅は 920px です。問題は、そうではないということです。904 になります。chrome と mozilla でテストしました。 欠けている 16 個のピクセルがどこにあるのかわかりません。

2番目:ウィンドウのサイズを変更するときにボディを中央に配置し、ボディがウィンドウ全体を占有するまで余白を小さくします。

私の体は中心にとどまらず、余白の 1 つだけが小さくなります。

「#content」、「#mainContent」、「aside」には幅があるため、これが起こっていることがわかりました。その幅を設定する必要があります。jquery を使用してウィンドウを中央に配置し、上記のすべてのことを行う方法はありますか?

これが私のコードです:

<html>
    <head>          
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>     
        <style>
            body{
                position:absolute;          
            }
            #content{
                background-color: green;
            }
            #mainContent{
                background-color: orange; 
            }
            aside{
                background-color: blue;
            }
            .floatLeft{
                float:left;
            }
            .clear{
                clear:both;
            }
        </style>
    </head>
    <body>      
        <section id="content" class="border">
            <section id="mainContent" class="floatLeft" >   
                mainContent
            </section>                      
            <!-- End of main content -->

            <aside class="floatLeft">                               
                aside                   
            </aside>
            <!-- End of aside -->

            <p class="clear"></p>

        </section>
        <!-- End of content -->

        <script type="text/javascript">
            $(document).ready(function(){               
                change_template();
            });
            change_template = function(){

                var window_h, window_w, top, left_right, content_w, mcontent_w, aside_w;        

                window_h = $(window).height();
                window_w = $(window).width();

                top = window_h - (window_h - 100);
                left_right = window_w - 1100;

                content_w = window_w - 2*left_right;                
                $('#content').css('width', content_w);

                mcontent_w = content_w - 300;
                $('#mainContent').css('width', mcontent_w);

                aside_w = content_w - mcontent_w;
                $('aside').css('width', aside_w);               

                resize_body(top, left_right, left_right);

                //next three lines are written only for demonstration purpose
                left_right = ($(window).width() - parseInt($('body').css('width')))/2;
                alert('body width: '+$('body').css('width'));//it supposed to be 920
                alert('left propery value: '+left_right);//it supposed to be 180

                $(window).resize(function(){
                    left_right = ($(window).width() - parseInt($('body').css('width')))/2;
                    resize_body(top, left_right, left_right);
                });

            }

            resize_body = function(top, left, right){

                $('body').css('top', top+'px');
                $('body').css('left', left+'px');
                $('body').css('right', right+'px');

            }
        </script>               
    </body>
</html>
4

1 に答える 1

0

ブラウザのスタイルをリセット:

html, body {
  margin: 0 auto;
  padding: 0;
}
于 2013-01-11T11:21:08.877 に答える