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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

HTML

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

CSS

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

Q&A

3回答

1438閲覧

テキストの高さを合わせたい

satoko

総合スコア17

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2017/12/06 15:43

###前提・実現したいこと
ざっくりいうと自動で複数要素のテキストをjs/jquery高さ揃えをしたいです。

###具体的には

html

1<div> 2 <ul> 3 <li> 4 <p>あああああああああああああああ</p> 5 </li> 6 <li> 7 <p>いいいいいいいいい</p> 8 </li> 9 </ul> 10 11 <ul> 12 <li> 13 <p>ああああああああああああああああああああああああああああああ</p> 14 </li> 15 <li> 16 <p>いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい</p> 17 </li> 18 </ul> 19 20 <ul> 21 <li> 22 <p>あああああああ</p> 23 </li> 24 <li> 25 <p>いいいいいいいいいいいいいいいいい</p> 26 </li> 27 </ul> 28</div>

css

1div: { 2width:900px; 3} 4 5ul{ 6width:300px 7float:left 8} 9 10/*クリアフィックスは省略*/

というhtmlがあって、
「あ」はあの高さで、「い」は「い」高さで「あ」「い」共通のクラスを使って高さ揃えをJsでしたいです。
「あ」と「い」に別々のクラスを使って高さ揃えはできるのですが、「う」のliを作成・追加した場合、js/jqueryを常に更新しないといけないで、できれば共通のクラスを使って高さ揃えをしたいのです。

どういう処理内容をかけばよいのでしょうか?

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

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

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

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

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

yambejp

2017/12/07 01:07

「できれば共通のクラスを使って高さ揃えをしたい」とのことですが、クラスが設定されてるようには見えませんがなにかあるのでしょうか?
guest

回答3

0

直接の回答ではありませんが、CSS でも対応可能だと思います。

【CSS Grid Layout を極める!(基礎編) - Qiita】
https://qiita.com/kura07/items/e633b35e33e43240d363

【CSSグリッドレイアウトで、サイズが違う複数のボックスをタイル状に配置する | Webクリエイターボックス】
https://www.webcreatorbox.com/tech/css-grid-layout

【CSS Grid Layout入門。対応ブラウザが出揃った新しいレイアウト仕様 - ICS MEDIA】
https://ics.media/entry/15649

投稿2017/12/06 15:51

kei344

総合スコア69407

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

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

satoko

2017/12/06 15:54

flexでいけるのはわかるのですが、じゃあjsでは?が非常に重要なところです…
kei344

2017/12/06 15:57

flexでいけるとは回答していませんし、質問内容の状況では難しいと思いますよ。 ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
guest

0

MutationObserver

「う」のliを作成・追加した場合、js/jqueryを常に更新しないといけないで、できれば共通のクラスを使って高さ揃えをしたいのです。

MutationObserver でノード変更を監視し、変更がある度に高さを揃える処理を実行すれば良いでしょう。
ただし、MutationObserver は重い処理なので、むやみに使うものでもありません。
私がJavaScriptで監視するなら、ノード挿入処理内に高さを揃える処理を追加する事を試みます。

flexでいけるのはわかるのですが、じゃあjsでは?が非常に重要なところです…

一元管理やメンテナンスの観点からはCSSで管理する方が圧倒的にメリットが大きいと思いますが、JavaScriptで実装する必然性に何があるでしょうか。
gridやflex未対応ブラウザ用とか、実用性度外視で研究目的とか、何がしかの理由を添えると、別の最適解が出てくるかも知れません。

Re: satoko さん

投稿2017/12/07 04:51

編集2017/12/07 04:53
think49

総合スコア18162

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

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

0

こんなかんじですかね?

CSS

1div: {width:900px;} 2ul{width:300px;float:left;} 3p{border:1px solid #000000;}

javascript

1$(function(){ 2 var maxH={}; 3 $('#d ul').each(function(){ 4 $(this).find('li p').each(function(x){ 5 if(typeof maxH[x]=="undefined") maxH[x]=0; 6 if($(this).height()>maxH[x]){ 7 maxH[x]=$(this).height(); 8 } 9 }); 10 }).each(function(){ 11 $(this).find('li p').each(function(x,y){ 12 $(y).height(maxH[x]); 13 }); 14 }); 15}); 16

HTML

1<div id="d"> 2 <ul> 3 <li> 4 <p class="p1">あああああああああああああああ</p> 5 </li> 6 <li> 7 <p class="p2">いいいいいいいいい</p> 8 </li> 9 </ul> 10 11 <ul> 12 <li> 13 <p class="p1">ああああああああああああああああああああああああああああああ</p> 14 </li> 15 <li> 16 <p class="p2">いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい</p> 17 </li> 18 </ul> 19 20 <ul> 21 <li> 22 <p class="p1">あああああああ</p> 23 </li> 24 <li> 25 <p class="p2">いいいいいいいいいいいいいいいいい</p> 26 </li> 27 </ul> 28</div>

投稿2017/12/07 01:35

yambejp

総合スコア114839

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

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

think49

2017/12/07 04:51 編集

投稿ミスの為、削除
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問