奇怪的CSS宽度问题?

时间:2012-04-11 14:06:43

标签: css html width

或者我一直在不间断地构建网页,或者发生了一些非常奇怪的事情。

<div style="background-color:#0F0; margin:5px; height:5px;"></div>

将在父div的宽度上产生5个高度的长条。这应该通常不可见,因为我给div没有宽度。

我尝试了一切,弄乱了我的整个CSS布局,似乎没有任何东西摆脱它。我甚至在那个仍然像这样工作的项目中检查了我的一些div。

所以我开了一个新项目,只是填写了上面的那一行,以确保没有一些样式设置弄乱了。但仍然有一个绿色的酒吧。

我只想让我的div成为其中文本的大小。

再次,我可以看到事情,但这突然发生,我真的很无能......

5 个答案:

答案 0 :(得分:1)

您的div必须在您的代码中包含display:block或从您的浏览器继承。

将其更改为display:inline以获得所需结果。

此处示例。 http://jsfiddle.net/Hn2xP/1

答案 1 :(得分:1)

打破文档流程

默认情况下,div元素的样式display属性设置为block,这是填充父级维度的宽度。

您有两个选项可以将其剪切为文字,position: absolutefloat: left(右边也可以,取决于),如:

<div style="background-color:#0F0; margin:5px; height:5px; position: absolute;"></div>

或:

<div style="background-color:#0F0; margin:5px; height:5px; float: left;"></div>

有关详细信息,请参阅CSS Floats和/或CSS Positions

P.S。请记住,绝对位置和/或浮动元素将从文档流中删除它。


span而不是div(显示:内联)

如果您想保持文档流程,请使用span代替div - 默认情况下,display属性为inline,正如Blowsie建议的那样。

<span style="background-color:#0F0; margin:5px; height:5px;"></span>

display:inline-block

还有display属性设置为inline-block的选项,但它的兼容性有限。有关详细信息,请参阅CSS Display属性信息。

<div style="background-color:#0F0; margin:5px; height:5px; display: inline-block;"></div>

答案 2 :(得分:0)

通常是填充问题。如果没有看到代码或网站错误示例,很难诊断。

尝试:

div {padding: 0px;}

在你的CSS中

答案 3 :(得分:0)

使用display:inline因为div元素会自动获取display:block

答案 4 :(得分:0)

默认情况下,div的宽度为auto,这意味着它将填充整个可用内容。要获得您想要的“无宽度”,请将宽度明确设置为零。或者,使用其他答案之一......