如何压缩内容以使它们适合DIV

时间:2012-02-17 08:34:51

标签: javascript jquery html xml-parsing

在我的webApp中,我从xml

收到以下内容
<XMLNode>
      <b><font color='#2C5E87' size='13pt'>blah blah</font></b>
      <br>
      </textformat>
      <textformat blockindent='-15'>
      <li>blah</li>


      <b><font color='#2C5E87' size='13pt'>blah blah blah</font></b>
      <br>
      </textformat>
      <textformat blockindent='-15'>
      <li>blah blah</li>

      </textformat>
      <b><font color='#2C5E87' size='13pt'>blah blah blah</font></b>
      <br>
      <textformat leading='-1'>
      <p>blah blah blah blah blah blah </p>
      </textformat>
    </XMLNode>

现在我想在固定大小的Div中显示<XMLNode></XMLNode>内的内容 我的javaScript代码是

var temp = $(xml).find("XMLNode").text();
$("#DIV_ID").html(temp);

理论上它应该可以工作但文字很大而且不适合我的DIV。

我的Div的CSS是,

#DIV_ID
{
    position:absolute;
    top:10px;
    height:200px;
    width:250px;
    top:32px;
    overflow:hidden;
}

这里有什么问题?我怎么能压缩文本以适应那个DIV。我目前正在尝试IE8

4 个答案:

答案 0 :(得分:2)

你的HTML中有很多奇怪的东西:

<XMLNode>
      <b><font color='#2C5E87' size='13pt'>blah blah</font></b>
      <br>
      </textformat>
      ...

所以你关闭了</textformat>,但你没有打开它。?

我不知道您使用的是哪种doctype,但HTML 4.01中不推荐使用<font>元素。你为什么要用呢? XMLNode中的内容非常糟糕。

例如,您还有<li>blah</li>。但是您的listitem不包含在(未)有序列表中,例如:

<ul>
   <li>blah</li>
</ul>

那你为什么不用简单而有效的<p>标签和<strong>而不是<b>替换所有html,这样你就可以在CSS中轻松控制它。

HTML只是要求被严格解释。所以清理它会解决所有问题。

像这样:

<XMLNode>
      <p class="strong">blah blah</p>
      <ul>
          <li>blah</li>
      </ul>

      <p class="strong">blah blah blah</p>
      <ul>
          <li>blah blah</li> 
      </ul>

      <p class="strong">blah blah blah</p>
      <p>blah blah blah blah blah blah</p>
</XMLNode>

CSS:

#div_id {
    position:absolute;
    top:10px;
    height:200px;
    width:250px;
    top:32px;
    overflow:hidden;
}

p {
    color: #2C5E87;
    font-size: 14px;
}

p.strong {
    font-weight: bold;
}

答案 1 :(得分:1)

关于font size属性:

  
    

此属性将字体大小指定为数字或相对值。数值范围从1到7,其中1表示最小值,3表示默认值。它可以使用相对值来定义,例如+2或-3,它相对于元素的size属性的值设置,或者相对于3,默认值(如果不存在)。

  

不允许ptpx值。

另外,您应该阅读same page关于font-tag的以下内容:

  
    

不要使用此元素!虽然曾经在HTML 3.2中进行了规范化,但它在HTML 4.01中已被弃用,同时所有与样式相关的元素都被弃用,然后在HTML 5中被淘汰。

  

使用CSS定义字体大小,例如:

font-size: 10px;

答案 2 :(得分:0)

您是否尝试过使用px代替pt?所以size='13px'pt用于打印,不应用于屏幕字体大小。

答案 3 :(得分:0)

在CSS中制作新的CSS规则:

#DIV_ID b font {font-size: 10px !important;}