listの改行を消すには?

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
mason
パワーユーザー
記事: 48
登録日時: 2007年7月02日(月) 18:36

listの改行を消すには?

投稿記事 by mason » 2007年7月02日(月) 19:13

はじめまして。いつもお世話になっております。

現在リストでメニューを作っています。
ところが、IEのバグで<li>〜</li>の後に改行を入れるとlistの下に
3px程の隙間が空いてしまうことがわかり、改行をしないように
<li>〜</li>の記述をしているxslファイルの改行を全て消しましたが、
どうしても改行が表示されてしまいます。
何か対策がありましたら、教えていただけませんでしょうか?
改行になってしまうのは下記の<cmsd:entrylist name="aaa" design="menu" />の部分です。

お手数をお掛け致しますが、宜しくお願い致します。


メニュー部分のphpは以下となっています。
---------------------------------------------------------------------------
<ul>
<li>●●●<ul>
<cmsd:entrylist name="aaa" design="menu" /></ul></li>
<li>●●●</li>
<li>●●●</li>
</ul>
---------------------------------------------------------------------------


aaa.list.menu.design.xslの記述内容は以下となっています。
(改行をしないと読みにくいため、改行をしているものを書いています)
---------------------------------------------------------------------------

<xsl:template match="/entrylist">
<xsl:for-each select="entry">
<xsl:if test="not(@current)">
<li><a href="a.php{@href}">
<xsl:value-of select="title" disable-output-escaping="yes" /></a></li></xsl:if>
<xsl:if test="@current">
<li><strong><a href="a.php{@href}">
<xsl:value-of select="title" disable-output-escaping="yes" /></a></strong></li>
</xsl:if>
</xsl:for-each>
</xsl:template>

---------------------------------------------------------------------------

tsu
パワーユーザー
記事: 208
登録日時: 2006年1月16日(月) 12:00
お住まい: さいたま

投稿記事 by tsu » 2007年7月03日(火) 10:17

よく理解出来てないかもしれませんが一応。

XSLTの<xsl:output〜の属性に indent="no" を追加してやるとXSLTで書いた部分はソース上改行はされません。

コード: 全て選択

<xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes" indent="no" />
それかdl〜dt,ddタグを使って回避するとか。

それにしてもIE6ってバグだらけですね(苦笑)

mason
パワーユーザー
記事: 48
登録日時: 2007年7月02日(月) 18:36

投稿記事 by mason » 2007年7月03日(火) 10:44

tsuさんご連絡ありがとうございます。

教えていただいた方法で試したところ、改行が消えました!
すごく助かりました!ありがとうございました :D

tsu
パワーユーザー
記事: 208
登録日時: 2006年1月16日(月) 12:00
お住まい: さいたま

投稿記事 by tsu » 2007年7月05日(木) 02:56

あ、うまくいって良かったですね!

私の場合、変換後のソースが自分の思った通りに行かないので基本はインデントさせません。
ただ、html2などで改行すると<br />が出力されてしまいなんか嫌な感じが残ります。
なんかいい方法ないかな、、、。

返信