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

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

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

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

Q&A

解決済

1回答

1071閲覧

Bootstrap4、「.rounded-0」で角ボタンにしたが、iPhoneだと丸まってしまう問題を解決したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

1グッド

1クリップ

投稿2019/12/30 03:10

bootstrap4で以下のようなボタンを作成しました。

html

1<a type="button" class="btn btn-outline-primary nav-item nav-link rounded-0" href="#" role="button">サンプル</a>

html

1<div class="btn-group d-flex" role="group" aria-label="..."> 2 <a type="button" class="btn btn-outline-primary w-100 rounded-0" href="#" role="button"></a> 3 <a type="button" class="btn btn-outline-primary w-100 rounded-0" href="#" role="button">真ん中</a> 4 <a type="button" class="btn btn-outline-primary w-100 rounded-0" href="#" role="button"></a> 5</div>

パソコン及びgoogleChromの検証機能によるiPhone表示で閲覧した際には期待通りのボタンなのですが、実際に本番環境のiPhoneから閲覧すると、なぜか丸まってしまいます。
原因について分かる方がいましたら教えて頂きたいです。
よろしくお願いします。

s8_chu👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTML

1<a class="btn btn-outline-primary nav-item nav-link rounded-0" href="#">サンプル</a>

と言うようにtype="button"を削除してみてください。手元のiPhoneとiPadではこれでうまくいきました。


a要素のtype属性はリンク先のMIMEタイプを助言するものです。例えば、リンク先がHTMLのページであれば、text/htmlを指定します。これは必須ではなく、また、ブラウザはその情報を過信してはいけません。(つまり、間違っていたとしても、それをもとにリンク先のコンテンツを決定すべきではない)

参考: HTML Living Standardおよび翻訳

つまり、input要素とは違って、ボタンだからと言ってtype="button"とする必要はありませんし、むしろ、ブラウザはリンク先がbuttonというMIMEタイプ(そんなものはありません)と解釈すべきであり、ボタンであるという情報に何の足しにもなっていません。単に無視されるべき情報と言えますが、設定しない、または、リンク先のMIMEタイプを設定するのが正しいとなります。決してtype="button"としてはいけません。


さて、そこで問題はどうしてこんな感じになるのかと言うことです。各ブラウザのソースコードまでは追っていないので、ここからは推測になります。

BootStrapはいくつかのモジュールから構成されています。その中に標準的な表示にするRebootというもの(ファイル名としては_reboot.scssであり、Normalize.cssを元にしている)というのがあります。そこには、次のようなCSSが設定されています。

CSS

1[type=reset], [type=submit], button, html [type=button] { 2 -webkit-appearance: button; 3}

classを指定しない標準状態で、ボタンがボタンの表示になるようにするためのようです。type="button"が設定されていたら、ボタンになるようにと言うことなのですが、input要素のみを指定するというものでありません。つまり、質問のようなコードのa要素もこのCSSの対象となってしまいます。どうやら、これが悪さをしているらしいです。input要素であれば、その後のrounded-0で指定されている方が優先されるはずなのですが、無理矢理しているせいか、Safariでは変なボタンとして認識されてしまい、指定が別のものになってしまうようです。Safariのバグと言うより、想定していないCSSの使われ方と言った方が良いかもしれません。

投稿2019/12/30 04:57

raccy

総合スコア21735

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

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

退会済みユーザー

退会済みユーザー

2019/12/30 05:08

丁寧なアドバイス有り難うございました。期待通りの挙動に修正されました! 大変勉強になりました。 今後ともよろしくお願いします。 ちなみに、「role="button"」も必要はないのでしょうか?
退会済みユーザー

退会済みユーザー

2019/12/30 11:51

非常に勉強になりました! 有り難うございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問