我有以下内容:
<p>This is a test</p>
<pre>public class Car {
protected Car() { }
protected Car(int speed) { }
protected void Car() { }
}</pre>
<p>Another line</p>
和
pre {
font-family: monaco,consolas,"courier new",monospace;
font-size: 1em;
min-height: 3em;
overflow: auto;
padding: 1em;
xwidth: 80%;
background-color: red;
}
当文本显示时,<pre>
背景会占据页面的整个宽度。我在这里有一个演示:
我想要的是红色背景在我的代码最右边的字符之后停止。我不希望看到从页面的一侧延伸到另一侧的大红色区域。
有人可以告诉我是否可以使用CSS执行此操作。我真的不确定,因为我无法想象我能做些什么。
由于
答案 0 :(得分:16)
答案 1 :(得分:4)
目前为止的最佳解决方案:
pre {
white-space: pre-wrap;
}
答案 2 :(得分:0)
您可以使用float:left
和结算div
来实现此目标。
答案 3 :(得分:0)
对于这种行为,您需要float
<pre>
。浮动块当然会导致一些布局更改,因此您需要将其包装在另一个清除块元素中:
<div class="pre-wrapper"><pre>Lorem ipsum</pre></div>
.pre-wrapper {
overflow: hidden;
}
.pre-wrapper pre {
float: left;
}
答案 4 :(得分:0)
添加display: inline-block
应该为FF,Safari和Chrome执行此操作。
但请确保检查所有浏览器及其行为,特别是IE
答案 5 :(得分:0)
另一种方法:
pre {
display: table;
border-collapse: separate;
}
它允许边距自然折叠(与 display: inline-block
相反)。作为奖励,它适用于从 IE8 甚至更早版本开始的各种浏览器。