- 追加された行はこの色です。
- 削除された行はこの色です。
**[[質問箱5/27]] [#h335000d]
|RIGHT:70|LEFT:410|c
|~カテゴリ|デザイン・CSS・スキン|
|~サマリ|li要素を改行で終了させる|
|~バージョン|1.4.7|
|~投稿者|[[なつめ]]|
|~状態|質問|
|~状態|完了|
|~投稿日|&new{2010-11-15 (月) 22:53:54};|
***質問 [#ua30c4f6]
通常のli要素だと
-テキスト1
-テキスト2
テキスト3
と記述した場合、自動的に以下のようになってしまいます。
<ul>
<li>テキスト1</li>
<li>テキスト2
テキスト3</li>
</ul>
それを
<ul>
<li>テキスト1</li>
<li>テキスト2</li>
</ul>
<p>テキスト3</p>
のようにli要素で改行するとそこでli要素が終了するようにするにはどのようにしたらいいのでしょうか?~
どこを変更すればいいか分からずに困っています。
よろしくお願いします。
***回答 [#h0739c91]
- [[質問箱4/489]] -- &new{2010-11-16 (火) 15:36:27};
- どんな副作用があってもかまわないなら、
182a183,185
> if (isset($this->last->parent) && is_a($this->last->parent, 'ListElement'))
> return FALSE;
>
218a222,224
> if (isset($this->last->parent) && is_a($this->last->parent, 'ListElement'))
> return FALSE;
>
318a325,326
> if (is_a($obj, 'Inline')) return FALSE;
>
372a381,382
> if (is_a($obj, 'Inline')) return FALSE;
>
この差分をlib/convert_html.phpにあてるとか -- &new{2010-11-16 (火) 15:46:35};
この差分をデフォルト状態のlib/convert_html.phpにあてるとか -- &new{2010-11-16 (火) 15:46:35};
-- どのような副作用があるか怖いですが、上記差分を当てたところ正常に動きました。ありがとうございます! -- [[なつめ]] &new{2010-11-18 (木) 05:24:03};
- 先日[[質問箱5/26]]の記事を見つけlib/convert_html.phpを改造し、それをli要素のすぐ下に記述すると上記が効かなかったのですが他の箇所も変更する必要があるのでしょうか? -- &new{2010-11-19 (金) 17:47:38};
- 新しく追加したブロック要素の整形ルールの場合に関する話ですよね?[[質問箱5/26]]のクラス関数のcanContainの話だけでなく[[質問箱4/528]]も関係する話ですが、入れ子関係を調べておかないと思ったような動作にはなりません。 -- &new{2010-11-19 (金) 23:00:09};
-- 上の差分は、まず前半の2つでインライン要素または段落の親要素がListElementクラス(liやddなど)だった場合に親要素へ戻す分岐を追加しています。~
それだけだと新たな子として登録してしまうので、後半2つの分岐追加で強制的にインライン要素を拒否してliの親→ulの親へと戻るようにしています。ただしインライン要素しか拒否していないので、当然ながら段落や他のブロック要素がきた場合はスルーして通常処理を行います。 -- &new{2010-11-19 (金) 23:00:09};
-- それでご希望の件ですが、後半2つの処理に希望するブロック要素の分だけ分岐を追加することが必要です。ここまでのヒントで、自己解決できますか? -- &new{2010-11-19 (金) 23:00:09};
#comment