teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

書式の改善

2016/05/04 01:09

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -1,8 +1,9 @@
1
1
  ざっと、質問者さんの質問を読んだところ、
2
2
  BoxBをBoxAに対して上下左右中央揃えにしたいのですよね?
3
+ それであれば、2つの方法があります。
4
+ 1つ目にmidway.jsという便利な物を利用することで出来ます。
3
- それであれば、midway.jsという便利な物があります。[参考](http://coliss.com/articles/build-websites/operation/javascript/js-midway.html)
5
+ [参考](http://coliss.com/articles/build-websites/operation/javascript/js-midway.html)
4
6
  jquery.jsもいるので、忘れずに。
5
-
6
7
  BoxBは、position absolute
7
8
  height autoのままで構いませんが、
8
9
  widthを指定するべきかと思います、
@@ -10,7 +11,8 @@
10
11
  top 50%
11
12
  right 50%とすると
12
13
  BoxBから上に50%、右に50%となるので、BoxBが中央より右下に表示されます。(説明下手ですいません)
14
+
13
- で、理想としてはBoxAのheight50%-BoxBのheight50%の値をtopに指定すれば良いのですがcssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
15
+ 2つ目方法としては、htmlに直接javascriptで記述することで出来ます。
14
16
  ```JavaScript
15
17
  <script>
16
18
  $(function(){

5

変更

2016/05/04 01:09

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -1,10 +1,11 @@
1
1
  ざっと、質問者さんの質問を読んだところ、
2
2
  BoxBをBoxAに対して上下左右中央揃えにしたいのですよね?
3
- それであれば、midway.jsという便利な物があります。[参考](http://coliss.com/articles/build-websites/operation/javascript/js-midway.html)
3
+ それであれば、midway.jsという便利な物があります。[参考](http://coliss.com/articles/build-websites/operation/javascript/js-midway.html)
4
4
  jquery.jsもいるので、忘れずに。
5
5
 
6
6
  BoxBは、position absolute
7
- height autoで構いません
7
+ height autoのままで構いませんが、
8
+ widthを指定するべきかと思います、
8
9
  よくある間違いとしては、
9
10
  top 50%
10
11
  right 50%とすると

4

みす

2016/05/03 04:37

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  top 50%
10
10
  right 50%とすると
11
11
  BoxBから上に50%、右に50%となるので、BoxBが中央より右下に表示されます。(説明下手ですいません)
12
- なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
12
+ なので、理想としてはBoxAのheight50%-BoxBのheight50%の値をtopに指定すれば良いのですが、cssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
13
13
  ```JavaScript
14
14
  <script>
15
15
  $(function(){

3

変更

2016/05/03 04:22

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -9,4 +9,21 @@
9
9
  top 50%
10
10
  right 50%とすると
11
11
  BoxBから上に50%、右に50%となるので、BoxBが中央より右下に表示されます。(説明下手ですいません)
12
- なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
12
+ なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
13
+ ```JavaScript
14
+ <script>
15
+ $(function(){
16
+ var right = Math.floor(($("#BoxA").width() - $("#BoxB").width()) / 2);
17
+ var top = Math.floor(($("#BoxA").height() - $("#BoxB").height()) / 2);
18
+ //質問者さんの質問を見る限りBoxAはページ全体にかかっていると思うので別のやり方を記載します
19
+ // var right = Math.floor(($(window).width() - $("#BoxB").width()) / 2);
20
+ // var top = Math.floor(($(window).height() - $("#BoxB").height()) / 2);
21
+ $("#BoxB")
22
+ .css({
23
+ "top": top,
24
+ "right": right
25
+ })
26
+ });
27
+ </script>
28
+ ```
29
+ こちらの方がmidway.jsを使うより直感的で分かりやすいのではないかと思います

2

変更

2016/05/03 04:09

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -9,4 +9,4 @@
9
9
  top 50%
10
10
  right 50%とすると
11
11
  BoxBから上に50%、右に50%となるので、BoxBが中央より右下に表示されます。(説明下手ですいません)
12
- なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけでは無理ですので、midway.jsかhtmlに直接javascriptで記述する必要があります。
12
+ なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけではわかりにくいのですので、midway.jsかhtmlに直接javascriptで記述する必要があります。

1

追加変更

2016/05/03 03:45

投稿

kolon.m
kolon.m

スコア69

answer CHANGED
@@ -1,7 +1,12 @@
1
1
  ざっと、質問者さんの質問を読んだところ、
2
2
  BoxBをBoxAに対して上下左右中央揃えにしたいのですよね?
3
- それであれば、midway.jsというの便利な物があります。参考http://coliss.com/articles/build-websites/operation/javascript/js-midway.html
3
+ それであれば、midway.jsというの便利な物があります。[参考](http://coliss.com/articles/build-websites/operation/javascript/js-midway.html)
4
4
  jquery.jsもいるので、忘れずに。
5
5
 
6
6
  BoxBは、position absolute
7
- height autoで構いません。
7
+ height autoで構いません。
8
+ よくある間違いとしては、
9
+ top 50%
10
+ right 50%とすると
11
+ BoxBから上に50%、右に50%となるので、BoxBが中央より右下に表示されます。(説明下手ですいません)
12
+ なので、理想としてはBoxAのtop50%-BoxBのheight50%の値を指定すれば良いのですが、cssだけでは無理ですので、midway.jsかhtmlに直接javascriptで記述する必要があります。