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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

4回答

4586閲覧

リンクを中央に配置したい

kama_111

総合スコア19

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2019/04/25 15:50

前提・実現したいこと

リンクを中央に配置したいのですが、左に寄ってしまいます。

該当のソースコード

html

1<a href="#" class="btn btn01">リンク</a>

css

1.btn { 2 padding: 6px 15px; 3 margin: 0 auto; 4 text-align: center; 5 font-weight: bold; 6 display: inline-block; 7 text-decoration: none !important; 8 font-size: 1.2em; 9 border-radius: 5px 10} 11.btn01 { 12 background-color: #11A9B5; 13 border: 2px solid #11A9B5; 14 color: #fff !important; 15 -webkit-box-sizing: border-box; 16 -moz-box-sizing: border-box; 17 box-sizing: border-box; 18 -webkit-transition: all .3s; 19 transition: all .3s; 20} 21.btn01:hover { 22 background-color: transparent; 23 border: 2px solid #11A9B5; 24 color: #11A9B5 !important; 25}

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/04/25 15:51

提示された情報だけでは回答者は再現できません。 必要最低限の情報を提示してください。
guest

回答4

0

ベストアンサー

要素を真ん中寄せさせる方法は何通りもあります。
コードを拝見すると試行錯誤されたようで、いろんな指定が混ざっているのが見受けられます。

以下、手法ごとに3パターン記載しますので、お時間あるときに試してみてください。

①text-align: center; で真ん中寄せ

・HTMLのaタグをdivで囲む
・親要素をblockにし、text-align: center;を指定

以下のコードを追加してください。

HTML

1<div class="btnarea"> 2 <a href="#" class="btn btn01">リンク</a> 3</div>

CSS

1.btnarea { 2 text-align: center; 3 display: block; 4}

.btnのtext-align: center;は削除して大丈夫です。

②margin: auto; で真ん中寄せ

・.btnの横幅を指定する
・さらにblock要素にし、margin: auto;を指定

以下のコードを追加してください。

CSS

1.btn { 2 width: 92px; 3 display: block; 4}

margin: auto;で指定する際は、要素の横幅を認識させることが必須です。

③flexboxで真ん中寄せ

・HTMLのaタグをdivで囲む
・親要素にdisplay: flex;を指定

以下のコードを追加してください。

HTML

1<div class="btnarea"> 2 <a href="#" class="btn btn01">リンク</a> 3</div>

CSS

1.btnarea { 2 display: flex; 3}

flexboxは親要素に指定をするので、aタグをdivで囲んています。


今回HTMLがボタン部分しかないのでbodyタグに指定しても反映されますが、本来bodyタグはコンテンツ全体を囲むものなので、親要素に指定する際は新しくdivタグ等を作成することを前提にしたほうが良いです。

投稿2019/04/26 01:38

otamunote

総合スコア281

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

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

kama_111

2019/04/26 03:55

説明が親切でとてもわかりやすかったです!!! ご丁寧にありがとうございました!
guest

0

以下を追記

CSS

1body { 2 display: flex; 3}

投稿2019/04/26 00:39

root_jp

総合スコア4666

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

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

0

inline-block の外側に block 要素が必要だと思います。
ブロックレベル要素とインライン要素について勉強されると良いと思います。

HTML

1<div class="btn-box"><a href="#" class="btn btn01">リンク</a></div>

CSS

1.btn-box { 2 text-align: center; 3}

投稿2019/04/25 16:05

編集2019/04/25 16:08
ockie

総合スコア16

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

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

0

提示の要素は、CSSでインライン要素に指定しているので、親要素(この場合はbody)のtext-alignの影響を受けます

ブラウザは、初期値でCSSのスタイルをいくつか持っています。
HTMLのbodyに対しても持っていて、最近のブラウザは、

CSS

1body { 2 text-align: start; 3}

が設定されているので、大概の環境では「左寄り(text-align: left;と同様)」が基本になります。

対策としては「CSSをリセット」するか、他の回答にもあるようにdiv等で囲み、位置指定をすると良いです。

投稿2019/04/26 02:20

yoshinavi

総合スコア3523

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問