質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

11375閲覧

left:50%でどうして中央になるのですか?

re97

総合スコア208

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/05/17 03:24

編集2016/05/19 04:36

left:50%でどうして中央配置になるのでしょうか?
・要素の左端はどこに合わせているの?
・どこからどこへ50%ずらすのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんんちは

leftだけでは中央配置にはなりません。
left:50%は親要素に対して自信が移動します。

しかし、それだけだと自身のwidthもあるので自身の半分ぶん飛び出してしまします。
そこでmargin-leftやtransformでネガティブな値を与えてあげることで自身の半分を左に持ってきます。

css

1 section{ 2 width:100%; 3 } 4 p{ 5 position:relative; 6 left:50%; 7 transform: translate(-50%); 8 -webkit-transform: translate(-50%); 9 display:inline-block; 10 } 11 div{ 12 position:relative; 13 display:inline-block; 14 left:50%; 15 width:200px; 16 text-align: center; 17 margin-left:-100px; 18 }

html

1<section> 2 <p>aaaaaaaa</p> 3</section> 4<section> 5 <div>bbbbbbb</div> 6</section>

投稿2016/05/17 06:06

kogure

総合スコア299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

re97

2016/05/18 03:42

・回答ありがとうございました ・内容難しかったです >自身のwidthもあるので自身の半分ぶん飛び出してしまします ・これは何を指すのでしょうか? ・pタグにはwidthを設定しいないと思うのですが… ・試しに「transform: translate(-50%);-webkit-transform: translate(-50%);」をコメントアウトしてみましたが、表示挙動を理解できませんでした(中央から少し右にズレただけ)
kogure

2016/05/19 05:02

こんにちは 返信しておらずごめんなさい。。。 >・pタグにはwidthを設定しいないと思うのですが… widthを指定しなくてもp自体に中の要素分だけ横幅がありますよね? <p>あああ</p>(「あ」3つ分の横幅) 「あ」の横幅(仮に14pxだとしたら)「あ(14px)」* 3 で42pxがpのwidthになるかと思います。 >試しに「transform: translate(-50%);-webkit-transform: translate(-50%);」 これが上記で述べたような自身(ここではpタグ?)のwidth分左に戻してる部分です。起点を中央にずらすイメージですかね。 例えば-100%にするとp要素の一番右端が画面中央に来るかと思います。 0%だとp要素の一番左端が画面中央みたいな 説明べたでごめんなさい。。。 不足していたら再度質問してください
guest

0

left:50%でどうして中央配置になるのでしょうか?

left:50%では中央配置にならないと思います。
https://jsfiddle.net/4yup7xv4/
中央配置の定義にもよるでしょうけれども。

投稿2016/05/17 04:22

Lhankor_Mhy

総合スコア37413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

re97

2016/05/18 03:37

・回答ありがとうございました ・内容難しかったです ・pタグに「text-align:left;」を指定しているのはなぜでしょうか?
Lhankor_Mhy

2016/05/18 03:57

> pタグに「text-align:left;」を指定しているのはなぜでしょうか? 別になくてもいいのですが、text-alignは親要素から継承するので、左寄せではなくなるからです。
re97

2016/05/19 04:37

・コメントありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問