2011-09-08 10 views
0

マスターページを持つASP.NETページがありますが、これは何らかの理由でtop:0; left:0がマスターページの直下にあるためです。私の生成したDOMを調べると、<body>がページの一番上にあることが分かりました。ここでは<div>を配置する必要があります。私の<div>の位置をJQueryを使って<body>タグと全く同じ場所に配置するにはどうすればいいですか?divの位置をHTML <body>開始タグと同じ位置に設定するにはどうすればよいですか?

+2

何かの左上と左端?いくつかのhtml/cssが参考になります。 TopとLeftは、相対的な最後のコンテナを基準にしています(デフォルトでは静的です)。これは、それが適切に配置されていない理由です。 jQueryを使ってそれをハッキングすることは、最良の解決策のようには聞こえません。 – mrtsherman

答えて

2

top:0が実際にトップではないことを理由は、div要素がposition: relativeまたはposition: absolute(可能性が高いを持っている要素内に含まれなければならないことです、相対)。

これを修正する最も簡単な方法は、divを直接ボディに追加することです。

$("#yourdiv").appendTo("body"); 
0

使用.offset()

$("#myDiv").offset({ top: 0, left: 0 }); 

あなたのdivがposition: relativeまたはposition: absoluteと最も近い祖先に対して配置されています。ページとの相対的な位置を決めるには、オフセットを計算してdivに適用する必要があります。 .offset()はあなたのためにすべてを行います。ここで

は何が起こっているかを示すデモです:http://jsfiddle.net/gilly3/trSkC/

0
$("div").css($("body").offset()); 
+0

'$(" body ").offset()'は本体マージンが何であれ(本質的に)返します。あなたが 'body {margin:25px; } '、' $( "body")。offset() 'は' {top:25、left:25} 'を返します。 divに相対的な位置にある祖先がある場合(これがそうであるように見える)、これはページではなく、その祖先の左上から25pxの位置に配置されます。 – gilly3

0

CSSでこれを試しましたか?

html, body { 
    margin: 0; 
    padding: 0; 
} 
関連する問題