gpt4 book ai didi

html - CSS "overflow"剔除 "background-color"

转载 作者:技术小花猫 更新时间:2023-10-29 11:49:35 30 4
gpt4 key购买 nike

我正在尝试为网站设置代码块的样式。容器 div 设置为垂直和水平溢出。问题是当它水平溢出时,斑马条纹背景颜色被剔除。我也尝试过使用背景图片,但它也剔除了它。为什么会这样?我该如何解决?

谢谢。

图片:http://zero.robotrenegade.com/q3w/background-overflow.png

网页(缩小浏览器宽度以查看问题):http://zero.robotrenegade.com/q3w/code.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="created" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<link rel="stylesheet" href="" type="text/css" media="all" title="Default styles" />
<title></title>
<!--[if IE]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
jQuery("pre code").html(function(index, html) {
return html.replace(/^(.*)$/mg, "<span class=\"line\">$1</span>")
});
});
</script>
<style>
.codeblock {
max-height: 25em;
overflow: auto;
margin: 1em;
border: 1px solid #ccc;
font-size: 1em;
line-height: normal;
border-radius: 8px;
box-shadow: 0px 0px 4px rgba(0,0,0,0.25);
}
.codeblock h1, .codeblock p {
font-size: 1em;
margin: 0;
padding: 0em 1em 0.5em 3.5em;
line-height: 2em;
background-color: #eee;
}
.codeblock pre {
margin: 0;
padding: 0;
font-face: 'lucida console',monaco,courier,'courier new',monospace;
}
.codeblock pre code {
counter-reset: line-numbering;
margin: 0;
padding: 0;
}
.codeblock pre code .line::before {
content: counter(line-numbering);
counter-increment: line-numbering;
padding-right: 0.5em;
width: 4.5em;
text-align: right;
color: #888;
border-right: 1px dotted #888;
display: inline-block;
background-color: #eee;
}
.codeblock pre code .line {
display: block;
margin: 0 0 -1.2em 0;
line-height: 1.5em;
}
.codeblock pre code .line:nth-child(odd) {
background: #f2f5f9;
}
/*.codeblock pre code .line:hover {
background: #4b95e5;
color: #fff;
}*/
</style>

</head>
<body>

<div class="codeblock"><!--<h1>Hello, this is an optional header.</h1>-->
<pre><code>void idAF::Restore( idRestoreGame *savefile ) {
savefile->ReadObject( reinterpret_cast<idClass *&>( self ) );
savefile->ReadString( name );
savefile->ReadBool( hasBindConstraints );
savefile->ReadVec3( baseOrigin );
savefile->ReadMat3( baseAxis );
savefile->ReadInt( poseTime );
savefile->ReadInt( restStartTime );
savefile->ReadBool( isLoaded );
savefile->ReadBool( isActive );

animator = NULL;
modifiedAnim = 0;

if ( self ) {
SetAnimator( self->GetAnimator() );
Load( self, name );
if ( hasBindConstraints ) {
AddBindConstraints();
}
}

savefile->ReadStaticObject( physicsObj );

if ( self ) {
if ( isActive ) {
// clear all animations
animator->ClearAllAnims( gameLocal.time, 0 );
animator->ClearAllJoints();

// switch to articulated figure physics
self->RestorePhysics( &physicsObj );
physicsObj.EnableClip();
}
UpdateAnimation();
}
}</code></pre>
<!-- <p>This is an optional footer, goodbye!</p> -->
</div>

</body>
</html>

最佳答案

尝试 float:left.codeblock pre 上.适用于 Firefox。

<pre>适合自己在 .codeblock 内容器就像没有更多的空间。 float让你的<pre>元素宽度刚好适合其内容。

更新

.codeblock pre {
float: left;
min-width: 100%;}

适用于 Firefox、Opera、IE9 和 WebKit

据我了解,它在一个容器内包含 overflow:auto 元素。适合自己在默认可见的区域内。那些元素' width:100%仅与外容器一样宽。在此示例中,内部容器内有一个 code。不换行的标记,因此文本会超出内部容器并使外部容器显示卷轴。为避免这种情况,您需要内部容器以适应其内容,因此 float:left .

但是,正如您巧妙地注意到的(而我没有注意到),如果外部容器比代码宽,这样它就不会扩展,以避免您需要放置 min-width:100%使内部容器至少使用外部容器内的所有可见空间。

关于html - CSS "overflow"剔除 "background-color",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8513099/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com