3

これは私のjQueryコードです:

<script type="text/javascript" src="js/jquery.js">
</script>
<script type="text/javascript">
 $(document).ready(function() {
     get_font_size();
     set_sidebar();

});
function get_font_size()
{
var b=$(window).width();
var side_size=b*260/1440;
b=b-side_size;
$("#sidebar").css({"width":side_size});
$("#alexa-widget img").css({"width":side_size});
$(".fb-like-box").attr("data-width",side_size); 
}
function set_sidebar()
{
var b=$(window).width();
var font_size=b*65/1440;
var font_size_2=b*133/1440;
var margin_top=b*10/1440;
margin_top*=-1;
margin_top=Math.round(margin_top);
$("#my_tabs li").css({"font-size":font_size});
$("#header").css({"font-size":font_size_2,"margin-top":margin_top});

}
</script>

margin-topプロパティを除いてすべて正常に動作します。margin-topを負の値に割り当てることはできません。失敗しますが、フォントサイズやその他のプロパティは正常に動作します。jquerycss設定が負の値で失敗するのはなぜですか。 cssそれは完璧に動作します。画面の解像度に応じてウェブページを変更するためにこれが必要なので、CSS内でそれを行うことはできません。これにはjQueryの修正が必要です。コードにすでにviewportメタタグがあるので、viewportまたはメディアクエリソリューション。margin_top変数をalert(margin_top)で確認したところ、必要に応じて正しい負の値が表示されるため、計算は正しく行われ、css設定部分のみが失敗します。これを修正するのを手伝ってください。ありがとうございます。

4

4 に答える 4

1

jQueryを使用してマージントップを設定する場合は、最後に単位(この場合はpx)を追加する必要があります

例:

>>> $("body").css("margin-top");
"0px"
>>> $("body").css("margin-top", "10");
[body]
>>> $("body").css("margin-top");
"0px"
>>> $("body").css("margin-top", "10px");
[body]
>>> $("body").css("margin-top");
"10px"

編集(コードを修正する方法をより明確にするために:

次のようなコードの行を変更します。

$("#header").css({"font-size":font_size_2,"margin-top":margin_top});

$("#header").css({"font-size":font_size_2,"margin-top":margin_top + "px"});
于 2012-10-07T13:05:29.243 に答える
1

マージンの測定単位を追加する必要があります。

$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});
于 2012-10-07T13:07:18.067 に答える
1

このようにすることの何が問題になっていますか?

$('div').css({marginTop:-100});​

すべてを文字列で入力する必要はありません。

于 2012-10-07T13:10:31.757 に答える
0

を使用して修正し$("#header").css({"font-size":font_size_2,"margin-top":margin_top+"%"});ました。

于 2012-10-07T13:09:09.930 に答える