如何用css控制文本自动换行 ?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用css控制文本自动换行 ?相关的知识,希望对你有一定的参考价值。

参考技术A 分类: 电脑/网络 >> 互联网
问题描述:

如何用css控制文本自动换行 ?

解析:

默认的就是自动换行

语法:

white-space : normal | pre | nowrap

取值:

normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行

pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-pliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-pliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。

nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。

如何用纯文本内容控件替换富文本内容控件

【中文标题】如何用纯文本内容控件替换富文本内容控件【英文标题】:How to replace RichText Content Control by PlainText Content Control 【发布时间】:2014-02-10 11:00:24 【问题描述】:

我们刚刚发现富文本内容控件不允许换行。

我们有数千个用作模板的 word 文档。 我需要一种以编程方式将每个富文本内容控件替换为纯文本控件并允许换行符的方法。

XML 中似乎没有属性可以表示来自纯文本的富文本内容控件。

我可以简单地补充一下吗:

<w:text w:multiLine="1"/>

对于每个内容控件,还是应该删除旧的并创建一个新的?

更新 1:根据this post:

w:stdPr 元素有一个子元素,指示内容控件的类型。 内容控件的默认类型是富文本,因此如果这是内容控件的类型,您将看不到此子元素。

如果内容控件类型是纯文本,会有一个child 元素。

【问题讨论】:

富文本控件通常不允许的是内容控件数据绑定。换行符很好,表格(如果它是块级控件)、嵌套内容控件等也很好。 【参考方案1】:

添加一个 SdtContentText 类型的新子元素确实是解决方案。

我正在使用OpenXML Power Tools。

以下代码取自here:

public static class ContentControlExtensions

    public static IEnumerable<OpenXmlElement> ContentControls(
        this OpenXmlPart part)
    
        return part.RootElement
            .Descendants()
            .Where(e => e is SdtBlock || e is SdtRun);
    

    public static IEnumerable<OpenXmlElement> ContentControls(
        this WordprocessingDocument doc)
    
        foreach (var cc in doc.MainDocumentPart.ContentControls())
            yield return cc;
    

然后:

    using (WordprocessingDocument doc =
                 WordprocessingDocument.Open(sourceFile, true))
    
        foreach (var cc in doc.ContentControls())
        
            SdtProperties props = cc.Elements<SdtProperties>().FirstOrDefault();
            Tag tag = props.Elements<Tag>().FirstOrDefault();
            SdtContentText text = props.Elements<SdtContentText>().FirstOrDefault();
            if (text == null)
            
                text = new SdtContentText();
                text.MultiLine = new OnOffValue(true);
                cc.AppendChild<SdtContentText>(text);
            
            if (tag != null)
                Console.WriteLine(tag.Val);
        

        doc.MainDocumentPart.Document.Save();
    

【讨论】:

以上是关于如何用css控制文本自动换行 ?的主要内容,如果未能解决你的问题,请参考以下文章

css设置div自动换行wordwrap没有效果

CSS3让文本自动换行——word-break属性

如何利用CSS控制文本只在一行显示?

将 SVG 文本更改为 css 自动换行

css实现强制不换行/自动换行/强制换行

用DIV+CSS中如何设置,超出就自动换行输出。