flexで横並びにした時、文字(テキスト)が
縦1列になってしまった時にこの方法で治りました。
CSSコーディングでボタンを作成中、ボタンの中の要素を
横並び指定 display: flex; を指定したが下図のようになった。
こんな場合は、display: flex;をあててる中に、
width: 45px;のような固定設定がある場合が
ほとんどなので、確認してサイズ変更すると横並びに
なります。
今回の場合も、ボタンを囲むところで、
max-width: 300px; という指定があったのが
原因でした。
この指定の為、画像と文字を横並びにしたら入り切らないので
文字部分が折り返して縦に並んでた状態です。
max-width: 600px;に変更したら下図のように並びました。
今回実際に書いたコード記載します。
今回の設定は、パソコン表示中は丸いお問い合わせボタンで
画面サイズが1000px 以下になると、四角いボタンに変更
する設定で起こった失敗です。
成功した時のイメージ
丸いボタン
HTML
1 2 3 4 5 6 7 8 |
<div class="n-btn"> <a href="#"> <div class="btn"> <img src="./imgs/mail.svg" alt="メール"> <p class="header-btn-button">お問い合わせ</p> </div><!-- /.header-list-box --> </a> </div> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
.n-btn a { display: block; color: #ffffff; padding: 0; } .btn img { padding: 35px 41px 0; } .btn { background-color: rgb(0, 0, 0); max-width: 150px; height: 150px; border-radius: 50%; text-align: center; box-shadow: 0 3px 5px rgb(0 0 0 / 50%); } |
1000px以下で表示変更 失敗した時の表示
HTML
1 2 3 4 5 6 7 8 |
<div class="n-btn"> <a href="#"> <div class="btn"> <img src="./imgs/mail.svg" alt="メール"> <p class="header-btn-button">お問い合わせ</p> </div><!-- /.header-list-box --> </a> </div> |
エラーになったときのCSS
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
.n-btn p { display: block; color: #ffffff; padding: 0; } .btn img { padding: 35px 41px 0; } .btn { display: flex; background: linear-gradient(154deg, rgb(255, 255, 255) 17%, rgb(2, 2, 2) 85% ); border-radius: 25px; align-items: center; justify-content: center; padding: 35px 15px; } |
横並びになったCSS
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
.n-btn p { display: block; color: #ffffff; padding: 0; font-size: 1.5rem; } .btn img { margin-right: 10px; } .btn { display: flex; background: linear-gradient(154deg, rgb(255, 255, 255) 17%, rgb(2, 2, 2) 85% ); max-width: 300px; border-radius: 25px; align-items: center; justify-content: center; padding: 25px 50px; } |
今回は、btn の横幅を変更でうまくできました。
こんな感じで、display: flex;は便利なんですが、
pxなどの固定する指定をしてると、思わぬ表示に
なるみたいなので、注意が必要と改めて感じました。
記事記載のコードでボタンがうまく機能しない場合
本記事作成後、別環境で同じコードでボタン作成
したら、aタグのリンク範囲の問題が発生したので、
もし、上記コードで不具合の場合下記のコードだと
うまくいったので参考にしてみてください。
このコードでは新しい環境では綺麗に作動しました。
今回は背景色は変えております。
丸いボタン
HTML
1 2 3 4 5 6 7 |
<div class="space"> <div class="sotowaku"> <a class="rinkubox" href="#"> <img src="./imgs/mail.svg" alt="メール"></a> <a href="#" class="senter-text">お問い合わせ</a> </div> </div><!-- /.space --> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.sotowaku { display: flex; flex-direction: column; justify-content: center; text-align: center; width: 150px; height: 150px; border-radius: 50%; background-color: blueviolet; } .senter-text { letter-spacing: 1.5px; font-size: 1rem; color: rgb(255, 255, 255); } |
四角いボタン
HTML
1 2 3 4 5 |
<div class="sotowaku-flex"> <a class="rinkubox" href="#"> <img src="./imgs/mail.svg" alt="メール"></a> <a href="#" class="senter-text b-flex">お問い合わせ</a> </div> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.sotowaku-flex { display: flex; align-items: center; justify-content: center; width: 300px; height: auto; border-radius: 20px; padding: 10px 0; background-color: blueviolet; } .b-flex { font-size: 1.2rem; margin-left: 10px; } |
リンク
リンク
リンク
コメント