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

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

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

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

HTML

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

CSS

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

Q&A

4回答

5479閲覧

"white-space: nowrap" が safari では挙動が違う

退会済みユーザー

退会済みユーザー

総合スコア0

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

HTML

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

CSS

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

0グッド

0クリップ

投稿2022/04/21 06:16

編集2022/04/22 07:32

長めの文章の中で「任意の場所で改行させたい」「改行で分断させたくない」ものがあります
そこで "white-space: nowrap" を使うことにしました

html

1<style>.nbr {white-space: nowrap }</style> 2<p> 3 <span class="nbr">改行の位置を</span><span class="nbr">好きな場所で</span><span class="nbr">できるようにしたい</span> 4</p>

このような文章で、極端に横幅を狭くすると、PCブラウザ(chrome,Edge)やAndroidブラウザの場合は、下記の通り目的どおり表示されます

html

1改行の位置を 2好きな場所で 3できるようにしたい

しかし、iPhone(XS)のsafari(ver15.2)で見てみると1行になり、はみ出してしまいます

html

1改行の位置を好きな場所でできるようにしたい

<span>の間に半角スペースまたは改行をいれると、safariも目的のとおりに表示してくれます

html

1<style>.nbr {"white-space: nowrap" }</style> 2<p> 3 <span class="nbr">改行の位置を</span> 4 <span class="nbr">好きな場所で</span> 5 <span class="nbr">できるようにしたい</span> 6</p>

しかしながら、この場合、不要なスペースが入り込むので避けたいと思っています

このような現象を抑制する方法はあるでしょうか?
また挙動としては、safariが正しいのでしょうか?

よろしくお願いします。

様々な回答がありがとございます。
今のところ、次のような結果となりました。

  • nbr 英字はOK、日本語はNG
  • word-break 英字NG、日本語NG
  • white-space 英字NG、日本語OK(iPhoneSafariはNG)

PCとiPhoneの両方で「改行させたくない文章は改行させない」
という条件をみたすことができていません

テストコードを作ってみました

<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width" /> <title>TEST</title> <style> body {background-color: white;} h3 {margin:0} #box1 {width: 150px; background-color: lightblue;} #box2 {width: 300px; background-color: pink;} #box3 {width: 550px; background-color: lightgreen;} .box { font-size:0.9em; margin: 10px; padding:10px;} .keep-all {word-break: keep-all} .nowrap {white-space: nowrap} </style> </head> <body> <div id="box1"> <div class="box"><h3>なし</h3> abcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん </div><div class="box"> <h3>wbr</h3> abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそー<wbr>たちつてとなにぬねのはひふへほー<wbr>まみむめもやゆよらりるれろわをん </div><div class="box"> <h3>nowrap</h3> <span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyz</span><br> <span class="nowrap">あいうえおかきくけこさしすせそー</span><span class="nowrap">たちつてとなにぬねのはひふへほー</span><span class="nowrap">まみむめもやゆよらりるれろわをん</span> </div><div class="box"> <h3>keep-all</h3> <span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyz</span><br> <span class="keep-all">あいうえおかきくけこさしすせそー</span><span class="keep-all">たちつてとなにぬねのはひふへほー</span><span class="keep-all">まみむめもやゆよらりるれろわをん</span> </div> </div> <div id="box2"> <div class="box"><h3>なし</h3> abcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん </div><div class="box"> <h3>wbr</h3> abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそー<wbr>たちつてとなにぬねのはひふへほー<wbr>まみむめもやゆよらりるれろわをん </div><div class="box"> <h3>nowrap</h3> <span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyz</span><br> <span class="nowrap">あいうえおかきくけこさしすせそー</span><span class="nowrap">たちつてとなにぬねのはひふへほー</span><span class="nowrap">まみむめもやゆよらりるれろわをん</span> </div><div class="box"> <h3>keep-all</h3> <span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyz</span><br> <span class="keep-all">あいうえおかきくけこさしすせそー</span><span class="keep-all">たちつてとなにぬねのはひふへほー</span><span class="keep-all">まみむめもやゆよらりるれろわをん</span> </div> </div> <div id="box3"> <div class="box"><h3>なし</h3> abcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyzabcdefhijklmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん </div><div class="box"> <h3>wbr</h3> abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyZ<wbr>abcdefhijlmnopqrstuvwxyz<br> あいうえおかきくけこさしすせそー<wbr>たちつてとなにぬねのはひふへほー<wbr>まみむめもやゆよらりるれろわをん </div><div class="box"> <h3>nowrap</h3> <span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyZ</span><span class="nowrap">abcdefhijlmnopqrstuvwxyz</span><br> <span class="nowrap">あいうえおかきくけこさしすせそー</span><span class="nowrap">たちつてとなにぬねのはひふへほー</span><span class="nowrap">まみむめもやゆよらりるれろわをん</span> </div><div class="box"> <h3>keep-all</h3> <span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyZ</span><span class="keep-all">abcdefhijlmnopqrstuvwxyz</span><br> <span class="keep-all">あいうえおかきくけこさしすせそー</span><span class="keep-all">たちつてとなにぬねのはひふへほー</span><span class="keep-all">まみむめもやゆよらりるれろわをん</span> </div> </div> </body> </html>

その結果がこちらになります。
改行を期待するところを英字はZ,日本語は「ー」を入れています
イメージ説明

そして肝心のiPhone safariですが、改行してくれません
イメージ説明

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

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

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

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

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

yambejp

2022/04/21 06:18

safariはどのOSのどのバージョンをご利用ですか?
退会済みユーザー

退会済みユーザー

2022/04/21 10:45

iPhoneXS の safari 15.2 になります 質問に追記しておきます
guest

回答4

0

white-space: nowrap ではなく display: inline-block で期待する結果を得られませんか?必要があれば word-break: break-all も併記してください。

https://codepen.io/arcxor/pen/wvpZzPN

投稿2022/04/22 12:12

arcxor

総合スコア2859

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

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

0

どちらが正しい動作なのかは調べていませんが、どちらにしても white-space: nowrap は空白文字の挙動を制御するプロパティなので、使い方が不適当だと思います。

word-break: keep-all がご希望のものじゃないでしょうか。

投稿2022/04/21 06:26

int32_t

総合スコア20832

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

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

退会済みユーザー

退会済みユーザー

2022/04/22 07:06

ありがとうございます 連続指定使っているのがよくないのか、思うような動作になりませんでした
guest

0

スタイルタグの中になぜクォーテーションで囲んでいるのでしょうか?

css

1<style> 2.nbr { 3 white-space: nowrap; 4} 5</style>

投稿2022/04/21 06:23

yambejp

総合スコア114769

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

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

退会済みユーザー

退会済みユーザー

2022/04/21 06:53

あ、すみません。書き間違いです。修正します
guest

0

<wbr> はどうでしょうか。
<wbr> - HTML: HyperText Markup Language | MDN

投稿2022/04/21 06:19

Lhankor_Mhy

総合スコア36074

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

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

退会済みユーザー

退会済みユーザー

2022/04/22 07:05 編集

ありがとうございます。 英字だと改行してくれるのですが、日本語だとそのままでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問