• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScript FireFoxでのdiv)

JavaScriptで25個の数字をランダムな配置で表示する方法

このQ&Aのポイント
  • JavaScriptで1から25までの数字がランダムに配置されたミニゲームを作成していますが、数字のピースの表示で問題が発生しています。
  • 特にFirefoxでは、数字のピースが正しい位置に表示されず、y軸方向にずれて表示されます。
  • 正しい位置に数字のピースを表示する方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

特定のブラウザだけ数ピクセルずれるというのは、ほとんどの場合デフォルトスタイルが原因だと思います。 *{margin:0;padding:0;} としておいて、必要なタグにmargin、paddingを付け直していくと、たいてい直ります。 それで直らなければ、.some div{margin:1px;}などの記述がどこかにあると思いますので、 スクリプトでspan.style.margin="0";などを指定し直していけば、直ると思います。 ------ applyの第二引数のargumentsは使えません。(ブラウザ拡張/独自実装、JavaScriptの新しいバージョンなどでは使えるかもしれませんが、そこまで調べていません。) arguments.lengthがあるのでArrayのように見えますが、argumentsはArrayではありませんので、Arrayに変換する必要があります。 SpanBox.apply( this, Array.prototype.slice.call(arguments) ); (第二引数以降がないので、callでもapplyでも、どちらでもかまいません。) >//Piece.apply( this, number, width, height, bordervalue, pobj, judgeman ); こういう書き方をする場合は、callしてください。 Piece.call( this, number, width, height, bordervalue, probj, judgeman ); apply(this, arguments)のサポートをしているかどうかの違いのようにも思えますけどね。 IEはサポートしているから"2px solid #ddffee"が機能する、Firefoxはサポートしていない(Array変換が必要)からborderが0になっている、、、 とか。 ご参考まで。

noname#173931
質問者

お礼

丁寧に解説していただきありがとうございます。 ご指摘のapply, callを中心に見直させていただきます。 わからないところが、あればまた、質問させていただくことも あるかと思いますが、そのときはよろしくおねがいします。 なお、お礼が遅れてしまい、大変申しわけありません。 貴重な時間を割いての回答、ありがとうございました。

noname#173931
質問者

補足

いろいろ教えていただきありがとうございました。 あれからしばらくたって動かしてみたのですが。 なんの問題もなく表示されていました。 またわからないことがあれば、質問させていただくことも あるかと思いますので、そのときは よろしくおねがいします。

関連するQ&A