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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

Q&A

解決済

1回答

731閲覧

投稿記事を横並びにするために500px以上あったらdivを追加したい。

M.Takeshita

総合スコア24

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

0グッド

0クリップ

投稿2021/01/10 04:48

編集2021/01/10 15:03

WordPressの投稿記事を横スクロールにしたいという依頼がありました。
しかし、コンテンツ制作者にはタグの知識がないため、最初からブロック要素を追記してもらうのが難しいため、横並びにする方法で頭を抱えています。

html

1<!-- こうなってるものを --> 2<div class="post-content"> 3<p>どのタグで書くかわからない記事...</p> 4<p>うわーっと3000文字くらい</p> 5<p>どのタグで書くかわからない記事...</p> 6<p>うわーっと3000文字くらい</p> 7省略 8</div> 9 10<!-- こうしたい --> 11<div class="post-content"> 12<div class="wrap"> ←追加 13<p>どのタグで書くかわからない記事...</p> 14<p>うわーっと3000文字くらい</p> 15</div> ←追加 16<div class="wrap"> ←追加 17<p>どのタグで書くかわからない記事...</p> 18<p>うわーっと3000文字くらい</p> 19省略 20</div> ←追加 21 22</div>

こうなればCSSでfloatなりflexboxなりで横並びは可能だと思っていますが、肝心のスクリプトの書き方がわかりません。
500px以上テキストが合った場合、divで囲いたいのです。

イメージしているCSS例

css

1.post-content{ 2 display:flex; 3 } 4.post-content wrap{ 5 width:300px; 6}

イメージ

試して挫折したスクリプト ↓

js

1<script> 2$(function(){ 3 var containerDiv = $('.post-content'); 4while(containerDiv.height() > 500){ //500 5 console.log("500まだあるよ"); 6 $('.post-content').wrapAll('<div class="wrap">'); 7} 8}); 9</script>

これだと全くダメに500pxから脱却しないのでひたすらローディングしっぱなしになってしまいます。さらにこのままだとwrapがついたとしても次の要素にもwrapを追加することができません。

どのような方法があるのか教えていただけないでしょうか?

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

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

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

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

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

Lhankor_Mhy

2021/01/10 13:04

「全くダメに500pxから脱却しないのでエラーを吐き続けています」とのことですが、エラーメッセージをご提示ください。
Lhankor_Mhy

2021/01/10 13:13 編集

.entry-container がHTMLに存在しないようですが、これは .post-content の間違いですか?
M.Takeshita

2021/01/10 13:41

ご指摘いただいたところ、修正しました!ありがとうございます! エラーに関しては、エラーというか、処理が終わらず、ずっと画面が読み込めないという感じです。
Lhankor_Mhy

2021/01/10 14:37 編集

「こうなればCSSでfloatなりflexboxなりで横並びは可能だと思っています」とのことですが、実際にお試しになりましたか? floatであれば親要素をオーバーフローしないため横スクロールが発生せず、 flexであれば、ラップしていないp要素が単独で横並びになってしまうと思うのですが、 どのようなCSSを想定されているのか、ご提示いただけますか?
M.Takeshita

2021/01/10 14:34

はい。ご指摘の通り、現状の状態ではラップができず、横並びにできません。 javascriptに関しましても、記載したものでは処理が不完全なのは理解しております。 flexboxなどで横並びにさせるための記述方法があれば、考え方などヒントをいただきたいのです。
Lhankor_Mhy

2021/01/10 14:37 編集

いえ、私が言いたいことは、要素をラップすることができたとして、その状態で横並びにするCSSをご提示いただきたい、ということです。
Lhankor_Mhy

2021/01/10 14:39

わかりにくいでしょうか? 私が懸念しているのは、「がんばって要素をラップするスクリプトが書けたものの、そのHTMLでは横並びにできなかった」ということなのですが、「ラップさえできれば望む結果を手に入れることができる」というのは確定しているのでしょうか?
M.Takeshita

2021/01/10 14:42

はい。今イメージのcssを記載したのですが、多分、wrapからもれたpタグがあるという想定ですよね? その部分に関しても、処理できる方法があればと思っているのです。 できるのかわからないのですが、 500px以下の場合、.wrapを追記する。 のようはif文を追加する。。とかでしょうか?
M.Takeshita

2021/01/10 14:48

色々考えていただき、ありがとうございます。 確定しているか?というと、確かにそれはまだわからないのですが、htmlやCSSの知識に比べて、jsの知識が低いため、jsでどこまでできて、どういった記述ができるのか?というところのヒントを探るべく、記載していますので、もし何か足りないものなどがあれば、今のようにご指摘いただけると幸いです。
Lhankor_Mhy

2021/01/10 14:57 編集

ご提示のCSSですと、要素をラップしようとしまいと横並びになると思うのですが…… どうも、やりたいことについて、私があまり理解できていないように感じます。 ご提示のスクリプトを見ると、「.post-contentの中身を高さが500px以下になるまでラップし続ける」というもののように見えるのですが、それでよろしいでしょうか? つまり、.post-contentの中身にはラップされているものとラップされていないものが混じっている結果になる、と理解しているのですが、それで合っていますか?
M.Takeshita

2021/01/10 15:12

私のスクリプトが下手くそすぎて、混乱を招いてしまって、本当にすいません。。 イメージ図を足してみたのですが、雑誌の記事のような形で横に並んでほしいのです。 なので、文字数がわからない為、所定の高さまで来たらラップしていく。みたいな事ができるかなぁと作ったのが上記のスクリプトなのですが、再三ご指摘してもらっているじゃあ余ったpはどうすんの? の部分のスクリプトはできていません。。 ただ、別の方から、cssで解決できるという回答も一ついただいたので、並行してトライしてみます。
guest

回答1

0

ベストアンサー

多分やろうとしいることはjsで頑張るより
columnsでやった方が楽な気がします

投稿2021/01/10 14:51

KazuhiroHatano

総合スコア7804

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

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

M.Takeshita

2021/01/10 15:07

ご回答ありがとうございます!テキスト量が記事によって変動するため、カラム数の指定ができないなと思っていたのですが、rem指定などであれば可能性はありそうですね。。なるほどー。 早速トライしてみます!ありがとうございます!
M.Takeshita

2021/01/21 00:53

divで囲わないとできないものがあるのですが、デザイナーと応相談でcolumnsで対応できそうです!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問