XSL FO 2块在同一行上,没有表

时间:2018-10-19 15:00:17

标签: xsl-fo

您有什么线索可以在不使用表格的情况下将标题与OPTION文本对齐?

function cherchePhoto(motcle) {
        var url="http://api.flickr.com/services/feeds/photos_public.gne?tags="+motcle+"&tagmode=any&format=json&jsoncallback=?";

        // Appel AJAX
        $.ajax({
            url:url,
            type: 'GET',
            dataType: 'json',
            success : function(data){
                $('#images').empty();
                $.each(data.items, function(i,item){
                    $(document.createElement('img')).attr('src', item.media.m).appendTo("#images");

                });
            }
        })

    }

谢谢,欢呼

2 个答案:

答案 0 :(得分:1)

我不清楚您要做什么,但是您可以:

  • 将“ OPTION”文本放在fo:float中,然后将其浮动到侧面
  • 使用fo:list-block等,并在fo:block中使用“ OPTION” fo:list-item-label
  • 对一个或两个块使用fo:inline-container
  • 如果标题永远不会两行,请使用fo:leader将两段文字分开
  • 如果您使用的是AH Formatter,请在fo:change-bar-begin中放入“ OPTION”(请参阅​​https://www.antennahouse.com/product/ahf66/ahf-ext.html#fo.change-bar-begin

让我感到困惑的部分原因是,“ OPTION”文本后的空格不间断。

答案 1 :(得分:0)

感谢您的回答。

我实际上是在尝试使用属性集在标题文字旁边浮动标题旁边的OPTION“标签”

3种失败的方式:

列表块引发错误:FOPException:仅可以检查具有索引的非空位置

<xsl:choose>
        <xsl:when test="@product='OPTION'">
            <fo:list-block>
                <fo:list-item>
                    <fo:list-item-label>
                        <fo:block xsl:use-attribute-sets="title__option">
                            <xsl:text>OPTION&#160;</xsl:text>
                        </fo:block>
                    </fo:list-item-label>
                    <fo:list-item-body>
                        <fo:block>
                            <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
                        </fo:block>
                    </fo:list-item-body>
                </fo:list-item>
            </fo:list-block>
        </xsl:when>
        <xsl:otherwise>
            <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
        </xsl:otherwise>
    </xsl:choose>

Float引发错误:[fop] [ERROR]没有类org.apache.fop.fo.flow.Float类的LayoutManager制造商 并且未显示OPTION文本

<xsl:choose>
        <xsl:when test="@product='OPTION'">
            <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
            <fo:float float="right"> 
                <fo:block xsl:use-attribute-sets="title__option">
                    <xsl:text>OPTION&#160;</xsl:text>
                </fo:block>
            </fo:float> 
        </xsl:when>
        <xsl:otherwise>
            <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
        </xsl:otherwise>
    </xsl:choose>

Inline-container不会引发任何错误,但是该段落将被忽略并且不会显示

<xsl:choose>
            <xsl:when test="@product='OPTION'">
                <fo:inline-container>
                    <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
                    <fo:block xsl:use-attribute-sets="title__option">
                        <xsl:text>OPTION&#160;</xsl:text>
                    </fo:block>
                </fo:inline-container>
            </xsl:when>
            <xsl:otherwise>
                <xsl:apply-templates select="*[contains(@class, ' topic/title ')]"/>
            </xsl:otherwise>
        </xsl:choose>