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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

CSS

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

Q&A

解決済

2回答

842閲覧

textareaで改行文字が乱れているのを解決したい

tattobu

総合スコア16

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

CSS

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

0グッド

0クリップ

投稿2021/12/09 07:47

前提・実現したいこと

CSSでtextareaの文字の改行が反映されるようにしたのですが、
全て左づめで表示されず1行目の頭に空白がいくつか入ってしまいレイアウトが崩れてしまいます。
これを解決し1行目も左づめで表示したいです。

発生している問題・エラーメッセージ

textareaで入力した文字が全て左づめで表示されず
1行目の頭に空白がいくつか入ってしまいレイアウトが崩れてしまう。

該当のソースコード

show.html.erb

ruby

1<main class="main"> 2 <div class="inner"> 3 <div class="prototype__wrapper"> 4 <div class="prototype__image"> 5 <%= image_tag @song.image, class: :song__img %> 6 </div> 7 <% if artist_signed_in? && current_artist.id == @song.artist_id %> 8 <div class="prototype__manage"> 9 <%= link_to "編集する", edit_song_path(@song), class: :prototype__btn %> 10 <%= link_to "削除する", "/songs/#{@song.id}",method: :delete, class: :prototype__btn %> 11 </div> 12 <% end %> 13 <p class="prototype__hedding"> 14 <%= @song.title %> 15 </p> 16 <%= link_to @song.artist.name, root_path, class: :prototype__user %> 17 <div class="prototype__body"> 18 <div class="song__detail"> 19 <p class="detail__title">作詞</p> 20 <p class="detail__message"> 21 <%= @song.writer %> 22 </p> 23 </div> 24 <div class="song__detail"> 25 <p class="detail__title">作曲</p> 26 <p class="detail__message"> 27 <%= @song.composer %> 28 </p> 29 </div> 30 <div class="song__detail"> 31 <p class="detail__title">歌詞</p> 32 <p class="detail__lyric"> 33 <%= @song.lyric %> 34 </p> 35 </div> 36 </div> 37 </div> 38 </div> 39</main>

style.css

ruby

1/* 詳細ページ */ 2.prototype__wrapper{ 3 min-height: calc(100vh - 161px); 4} 5.prototype__hedding{ 6 font-size: 24px; 7 font-weight: bold; 8 text-align: center; 9} 10.prototype__user{ 11 display: block; 12 font-size: 16px; 13 color: #999; 14 text-align: center; 15 text-decoration: underline; 16 margin-bottom: 20px; 17} 18.prototype__user:hover{ 19 text-decoration: none; 20} 21.prototype__image{ 22 margin: 0 auto; 23 width: 250px; 24 height: 250px; 25 object-fit: cover; 26} 27.song__img { 28 width: 250px; 29 height: 250px; 30 object-fit: cover; 31} 32.song__detail{ 33 display: flex; 34 align-items: center; 35 flex-direction: column; 36 margin-bottom: 8px; 37} 38.detail__title{ 39 font-weight: bold; 40} 41.detail__lyric{ 42 white-space: pre-wrap; 43} 44.prototype__manage{ 45 display: flex; 46 justify-content: center; 47 padding-top: 16px; 48} 49.prototype__btn{ 50 display: block; 51 padding: 0.4em 1.6em; 52 font-size: 0.4em; 53 color: #999; 54 text-decoration: none; 55 user-select: none; 56 border: 1px #999 solid; 57 border-radius: 3px; 58 transition: 0.4s ease; 59 margin: 0 4px; 60} 61.prototype__btn:hover{ 62 color: #fff; 63 background: #999; 64} 65

試したこと

text-alignを試してみましたがcenterにしてもleftにしても
1行目の頭に空白が入ってしまうのは変わりませんでした。

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

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

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

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

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

int32_t

2021/12/09 08:42

現在掲載されているコードのどのあたりが「textareaの文字の改行が反映されるようにした」部分でしょうか?
tattobu

2021/12/09 12:53 編集

説明不十分で失礼いたしました。 show.html.erb ```ruby <div class="song__detail"> <p class="detail__title">歌詞</p> <p class="detail__lyric"> <%= @song.lyric %> </p> </div> ``` style.css ```ruby .detail__lyric{ white-space: pre-wrap; } ``` 以上の箇所が該当箇所です。 よろしくお願い致します。
int32_t

2021/12/10 00:28

textareaの表示の話ではなくて、別のページのtextareaで入力された何らかのデータを<p>の中に表示するときの話でしょうか? まずは song.lyric にどんなデータが入っているかの確認ですかね。
guest

回答2

0

ベストアンサー

white-space: pre-wrap が指定されているので、空白はそのまま空白で描画されます。<%= @song.lyric %> の前にある空白が描画されていると思われるので、それを消しましょう。

修正前:

html

1 <p class="detail__lyric"> 2 <%= @song.lyric %> 3 </p>

修正後:

html

1 <p class="detail__lyric"><%= @song.lyric %></p>

投稿2021/12/10 02:09

int32_t

総合スコア21695

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

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

tattobu

2021/12/10 13:49

ありがとうございます。 おかげさまで解決いたしました。
guest

0

textareaで入力した改行は\r\nです。
htmlで表示したいときは\r\nを<br />に入れ替えてください。

投稿2021/12/10 02:02

skys215

総合スコア910

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問