iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法

最近iOS Safariで起きた現象とその対処法についてまとめておきます。
ブラウザ表示のトラブルといえばIEでばかり起きるもののイメージがあったのですが、最近意外とSafariで見たときに「あれ?」となることが増えてきました。
文章の最後の1文字だけ改行されてしまう
横幅が足りなくて改行されているのではなく、明らかに横幅は余裕があるのに、最後の1文字だけが改行されてしまいました。
原因としては下記のようなことがあるみたいなのですが、自分の場合はdisplay: inline-block;でフォントサイズを14pxで文字数が全角13文字のときに発生しました。
display: inline-block;を指定しているfont-feature-settings: "palt"を指定している- 文字列が全て全角文字
- 前後に空白がある(コード上の空白も含め)
しかも、iPhone長押しでテキストの選択をすると1行で選択されるので、あくまで要素としては1行になっていて、最後の1文字だけ改行された位置に表示されているような気持ち悪い現象です。
現時点で取れる対処法は下記のどれかです。
- 文章の最後に文字を入れて透明にする
white-space: nowrap;で改行できないようにする- フォントサイズを微妙に変える(やりたくない)
ボタンラベルなどの短い文章であればwhite-spaceがラクですが、文章の場合は空白を入れる必要がありそうです。
文章の最後に文字を入れる
疑似要素を使って、文章の最後に文字を入れ、それを透明にしてあげます。
.paragraph::after {
content: '.'; // 文字を設定
display: inline-block;
width: 0;
color: transparent;
pointer-events: none;
}pointer-events: none;を付けておけば、選択もできなくなります。
これで最後の文字である「.」が改行されたとしても、透明なので見た目は何も変わらないようになります。
改行できないようにする
white-space: nowrap;を使えば、改行できないようになります。
この指定をしておけば、1行に揃ってくれました。
.btn {
white-space: nowrap;
}シミュレーターを使えば試行錯誤しながら調整できる
この現象は実機でないと確認できないので、修正 → 実機で確認を繰り返さないといけないのは少し面倒です。
そこで、MacユーザーであればiOSシミュレーターを使うのがオススメです。
iOSシミュレーターを使えば、開発者ツールで実際にCSSをいじりながら表示を確認できます。
詳細な使い方は過去に記事にしているので、そちらをご覧ください。


選択テキストをHTMLタグですぐ囲めるようになるVisual Studio Code拡張機能「htmltagwrap」
Webサイト制作の基礎の基礎、HTMLって何?
「DevTools z-index」でz-indexがかかっている要素をChrome開発者ツールに一覧表示させる
コーディング時に「アノテーションコメント」を使ってコードを見やすく管理する
CSSで::placeholderにスタイルを設定する方法
Dart Sassの変数の基本的な使い方|Dart Sass入門
CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する
npm-scriptsでSCSSをコンパイルする環境を構築する方法
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」
.htaccessを使って、httpからhttpsへリダイレクトする設定方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Figmaで図形の分割をして簡単にレイアウトを作成する拡張機能「Split shape」
macOSのシステム環境設定「Siri」の設定見直し
Alfredで複数のアプリケーションを一括で起動するWorkflowの作成方法
テキストを画面いっぱいに表示できるAlfredのLarge Type機能の設定項目
resizeイベントを使用する場合は、iOS Safariでの挙動に注意
Node.jsのバージョン管理をnodebrewからnodenvに移行する方法
macOSの環境をすぐに復元したり、別Macと同期するために必要な情報をまとめた「アプリ設定フォルダ」を作る
作業効率化に大きく貢献してくれているMacのアプリ達
Hazelで「ゴミ箱」の中身を空にする作業を自動化してしまう
BetterTouchToolのウインドウスナップ機能とBetterSnapToolの細かい違い