我有以下HTML:
<body>
Here is some code:
<pre><code>
Here is some fun code!
</code></pre>
</body>
Run Code Online (Sandbox Code Playgroud)
但是当我预览它时,因为代码是缩进的,所以pre完全没有了.我可以通过将内容带回缩进来解决这个问题,但它看起来很傻.我可以使上面的文字看起来没有缩进吗?
你可以试试这个:
pre, code{
white-space:normal;
}
Run Code Online (Sandbox Code Playgroud)
好了,我决定想出一些比改变方式pre
或code
工作更具体的方法。所以我做了一些正则表达式来获取第一个换行符\n
(前面有可能的空格 -\s*
用于清除代码行末尾和换行符之前的额外空格(我注意到你有))并找到选项卡或跟在它后面的空白字符[\t\s]*
(这意味着制表符、空白字符(0 或更多)并将该值设置为一个变量。然后在正则表达式替换函数中使用该变量来查找它的所有实例并将其替换为\n
(换行符)。由于第二行(pattern
设置的地方)没有全局标志(g
在正则表达式之后),它将找到第一个实例\n
换行符并将pattern
变量设置为该值。因此,在一新行的情况下,接着2个制表符,的值pattern
将是技术上\n\t\t
,其中,每其将被替换\n
的字符在所发现pre code
元件(因为它是通过每个功能运行)中,用替换\n
$("pre code").each(function(){
var html = $(this).html();
var pattern = html.match(/\s*\n[\t\s]*/);
$(this).html(html.replace(new RegExp(pattern, "g"),'\n'));
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<body>
Here is some code:
<pre><code>
Here is some fun code!
More code
One tab
One more tab
Two tabs and an extra newline character precede me
</code></pre>
</body>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11316 次 |
最近记录: |