如何在无序列表中包装文本行?

时间:2012-08-15 15:14:04

标签: html css textarea

我在包含“列”表中有一些嵌套表。底部表格只包含一个多行文本区域,用户可以在其中发布评论。当用户保存页面时,我想将每个单独的注释行捕获为无序列表中的元素。这是HTML:

<td><strong>Key Messages:</strong><asp:Label runat="server" ID="messagesLabel"></asp:Label>
    <div id="messagesDiv" runat="server">
        <asp:TextBox runat="server" ID="MessagesTextbox" Width="100%" TextMode="MultiLine" Height="100" Columns="10"></asp:TextBox>
        <asp:Button runat="server" ID="clearMessages" Text="Clear Messages" OnClick="ClearMessages_Click" />
    </div>
</td>

我的问题是,当无序列表回发到页面时,非常长的行将表拉伸超出所需的宽度。我希望在某些时候有更长的评论包装,同时仍然只是列表中的一个元素 - 即一个子弹。我试过设置MaxLength和Columns属性没有运气。

编辑:

我尝试了第一个建议:

ul
{
    width: 50px;
}
li
{
    width: 50px;
}

但它对布局没有影响。任何宽度值的布局都没有改变。

我尝试使用第二种解决方案,但我的编辑器中没有CSS属性“word-wrap”。我在Visual Web Developer Express 2010中编程,它支持CSS 2.1所以,据我所知,我应该能够设置这个属性,但我不能。无论如何我都尝试了它,它对布局没有任何影响。

编辑:

以下是我创建列表的方式:

XmlDocument xdoc2 = new XmlDocument();
    xdoc2.Load(messagesFileLocation);
    XmlNodeList messagesList = xdoc2.GetElementsByTagName("message");
    if (messagesList.Count > 0)
    {
        string unorderedList = "<ul>";
        for (int i = 0; i < messagesList.Count; i++)
        {
            XmlNode node = messagesList.Item(i);
            string message = node.InnerText.ToString();
            unorderedList += "<li>" + message.ToString() + "</li>";
        }
        unorderedList += "</ul>";
        messagesDiv.InnerHtml = unorderedList;
    }

用户编辑实际上首先保存到XML文件,然后发回页面。

2 个答案:

答案 0 :(得分:3)

指定ul和li元素的宽度,您的内容应该换行。同时将父元素设置为高度:auto;所以高度随着内容大小的增加而变化。

如果你发布更多代码,我可以给你一个更好的主意。

答案 1 :(得分:-1)