【发布时间】:2012-02-01 01:16:15
【问题描述】:
为了这个问题,我有一个 HTML 页面,看起来像这样:
<html>
<head>
<style>
div { width: 100%; }
.success { background-color: #ccffcc; }
</style>
</head>
<body>
<div class="success">
<nobr>This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line. This is a very long line.</nobr>
</div>
</body>
</html>
注意“很长的线”,以及那个 div 的背景颜色。
我的问题(我敢打赌这是一个基本问题)是背景颜色停在屏幕边缘。当我向右滚动以查看其余文本时,其余文本背景为白色。
基本上我希望我的 div 表现得像这样:
- 具有指定的背景颜色
- 至少与屏幕宽度相同,即使里面的文字只有几个字
- 跟随文本的宽度,如果它大于屏幕的宽度
- 可选(我知道这确实是一个不同的后续问题),如果我有多个这样的 div,在第一个之后,有没有办法让两个自动跟随最宽 div 的宽度?
这有意义吗?
有什么办法吗?
我这里设置了一个测试页面,如果你在iPhone上查看这个,虽然字体很小,但显示问题:http://www.vkarlsen.no/test/test.html
我看到以下问题被 SO 列为潜在重复/建议,这是我在尝试其中的信息时注意到的:
-
iPad background for div blocks not spanning entire width of screen
尝试了建议的
<meta ... viewport .../>标签,没有任何作用(它现在出现在测试页面中。) -
Background color stretches accross entire width of ul
<div>s 已经是块元素了 -
WebKit doesn't paint background-color for entire width of final inline list item
尝试将 div 设置为
display: inline-block;但这似乎没有改变任何东西
【问题讨论】:
-
我尝试(刚刚,在看到您的评论后)将“width: 100%”替换为“min-width: 100%”,对吗?它似乎没有改变任何东西。
-
这里的问题不在于元素本身的宽度,而是正确呈现的。它使用
white-space: nowrap;属性,默认为nobr标记。如果您将相同的属性应用于不同的标签,则会发生相同的行为。我不知道为什么会这样,但这是一个开始。 -
这应该回答你的后续问题:jsfiddle.net/FmCbg/4
-
实际上,这解决了我的所有问题。我将整个页面包装在一个 div 中,并将我的 div 更改为 span,并进行了您所做的 css 更改,现在看起来就像我想要的那样。愿意发布您的建议作为答案吗?如果是这样,请将小提琴的内容复制到您的答案中。
标签: css html background-color