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をいじりながら表示を確認できます。
詳細な使い方は過去に記事にしているので、そちらをご覧ください。


Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法
HTML・CSSでWebサイト制作を行う際に必要なツール
Google Maps APIでマップの見た目をカスタマイズする方法
webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法
既存プロジェクトにCompassが導入されている場合に備えて、最低限Sassのコンパイルだけでも行えるようにしておく
Visual Studio Codeの基本|概要やインストールから日本語化など最低限の設定方法
WordPressのカスタムメニューでは、内部リンクに対してカスタムリンクは使わない!
JavaScriptで配列内から特定条件の要素を探す方法
gulp 4.0から新しく加わったseriesとparallelについての備忘録
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
FinderやPath Finderでタグ(ラベル)を設定するショートカットキー
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
Google Chromeをショートカットキーで操作できるようにする
FigmaのAuto Layout入門|繰り返しのレイアウトやコンテンツに応じて横幅可変するボタンをラクに作る
Keyboard Maestroでウインドウのリサイズや移動をするときに使う「SCREENVISIBLE」についてのまとめ
Finderで選択したフォルダを特定のアプリケーションで開くAlfred Workflowの作り方
Macのエイリアスとシンボリックリンクの違いや作成方法
iOSアプリ版の1Passwordで「パスワード自動補完」機能を利用するための設定
Hazelを使って、最近使用していないアプリケーションやフォルダにラベルを貼って可視化する