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

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

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

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

CSS

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

受付中

iPhone(safari, chrome)で縦書きフォームを表示したい

east-end
east-end

総合スコア0

HTML

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

CSS

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

0回答

3評価

4クリップ

3閲覧

投稿2018/02/01 08:03

編集2022/01/12 10:55

前提・実現したいこと

現在、「縦書きで入力できるフォーム」を作っています。
Windowsのchrome, IE11,Edge,Firefoxでは表示がうまくいったのですが、
MacのSafari, iPhoneのsafari,chromeではフォーム内の文字が「横向き」になってしまい直せないでいます。もし方法をご存知でしたらお答え頂きたいです。
よろしくお願いいたします。

該当のソースコード

以下のコードでsafariに対してフォーム(input, texytarea)を縦書きにするよう、CSSハックを書いています。

css

_::-webkit-full-page-media, _:future, :root input, textarea { -webkit-writing-mode: vertical-rl; writing-mode: vertical-rl; }

試したこと

ブラウザごとに以下をCSSハックで記述。
これでWindows上ではブラウザごとの対応ができました。
しかしMacのsafari、iPhoneのsafari, Chromeでは横書きのままでした。

・IE11

css

@media all and (-ms-high-contrast:none) { *::-ms-backdrop, input, textarea { -ms-writing-mode: tb-rl; writing-mode: tb-rl; } }

・Firefox

css

@-moz-document url-prefix() { input, textarea { -moz-writing-mode: vertical-rl; writing-mode: vertical-rl; } }

**・Chrome **
chromeはフォームが縦書きにならないので、フォーム自体を回転し文字をwriting-mode: initalで戻しました。

css

@media screen and (-webkit-min-device-pixel-ratio:0) { input, textarea {    position: absolute; writing-mode: initial; transform: rotate(90deg); transform-origin: top left; } }

**・Edge **
chromeのcssハックが適用されてしまうため、上書きしています。

css

@supports (-ms-ime-align:auto) {   input,  textarea { position: static; -webkit-writing-mode: vertical-rl; writing-mode: vertical-rl; transform: none; transform-origin: none; } }

補足情報

Mac
safari 10.1.2

iPhone
safari 11.0 Mobile

参考にさせて頂いたサイト
HTML/CSSだけで縦書きの入力フォームをつくる

縦書きweb普及委員会 CSS WritingModeの仕様解説

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

kszk311
kszk311

2018/02/17 12:12

特に手助けできるわけでもないのですが、難しいんですよね…CSSハックとかでできるのかどうか…。今考えられるのは、JSで整形し直して、floatとかflexとかで、ゴリゴリ書いていくぐらいしか…。
east-end
east-end

2018/02/22 10:32

コメントありがとうございます。そうなんですね、やはりJSで整形していくしかないのでしょうか…。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

HTML

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

CSS

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