CSS white-space:无包装,无水平滚动条,复制时保持空白

时间:2014-06-16 16:14:36

标签: css whitespace

我正在尝试实现三个目标的组合......

  1. 确定我应该使用<code><pre>...</pre></code>还是<pre><code>...</code></pre>

  2. 使代码不换行,不创建水平滚动条,也不溢出任何父元素。

  3. 确保访问者在将代码粘贴到任何(主管)编辑器时复制代码以保留空白区域。

  4. 到目前为止,我对white-space: pre-wrap;运气最好,但我希望文本换行。如果他们足够感兴趣,他们会自己复制粘贴。虽然我不希望它包装我也不希望它使元素溢出任何父元素之外,我不希望文本出现在它的直接父元素之外。

    我会好的使用水平滚动条代码本身(precode元素,无论哪个),但我通常不愿意这样做。

    以防它是相关的我不使用任何CSS框架或类似的,我只做一个基本的重置......

    * {border: 0px; margin: 0px; outline: none; padding: 0px; }
    

    我在Firefox中测试,然后是Chrome,然后是(实际)Opera,然后可能是IE,如果我有足够的理智。请问?

3 个答案:

答案 0 :(得分:0)

在第2和第3期:希望我没有误解你的问题 - 我通过添加固定宽度和溢出来隐藏到css类中,我明白了你的目标是轻松工作。

1:它正在与<pre (outer)><code (inner)>合作,所以......嘿。

http://jsfiddle.net/A2zhH/2/

仅供参考,border: gray;并未做任何事情。您需要使用格式border:1px gray solid;

答案 1 :(得分:0)

目标1很简单:code内的pre有效,pre内的code不是。另一方面,pre是重要的。如果内容是计算机代码,则可以在其中使用code作为原则。

目标2本身就是自相矛盾的,除非你指的是减少字体大小以便一切都适合的想法。更现实的是,关于代码块的水平滚动条可以使用的说法,只需使用

pre { width: 100%; overflow: auto }

这会导致为块显示水平滚动条,而不是溢出内容。

使用普通空间时可实现目标3。复制的内容包含空格,粘贴后它们会发生什么情况取决于软件。

答案 2 :(得分:0)

使用以下内容,我的工作精确度约为99.8%......

<强> XHTML

<pre><code>/* Code here. */</code></pre>

<强> CSS

pre {white-space: pre; width: 75vmax;}