CSS背景颜色不起作用

时间:2012-10-29 08:54:56

标签: css

我将外部div的背景颜色设置为蓝色但不显示。为什么呢?

它的演示:

.question-template {
    width: auto;
    height: auto;
    background-color: blue;
}
.question {
    float: left;
    margin: 10px;
}
.participants {
    background-color: green;
    float: left;
    margin: 10px;
}
<body>
<div class="question-template">
    <div class="participants">234</div>
    <div class="question">Some lorem ipsum text</div>
</div>
</body>

jsFiddle

6 个答案:

答案 0 :(得分:6)

试试这样..

.question-template {
    width: auto;
    height: auto;
    background-color: blue;
    overflow:auto;
}

答案 1 :(得分:4)

这是因为你的两个子元素都向左浮动。这意味着容器不会伸展到包含子元素所需的整个高度。

要解决此问题,您需要在css中添加一个clearfix类:

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

然后将类添加到HTML中:

<div class="question-template clearfix">

有关详细信息,请参阅此处:http://css-tricks.com/snippets/css/clear-fix/

答案 2 :(得分:2)

Live demo ........... 您好,现在定义父div .question-template overflow:hidden;

.question-template{
overflow:hidden;
}

方法二

现在清除你的父母

<强>的CSS

.clr{
clear:both;
}

<强> HTML

<div class="question-template">
<div class="participants">234</div>
<div class="question">Some lorem ipsum text</div>
    <div class="clr"></div>
</div>

Live demo

答案 3 :(得分:1)

overflow:auto添加到.question-template

http://jsfiddle.net/4zjtp/2/

答案 4 :(得分:1)

您需要在父div上应用一个清除浮点数,以确保它占用内部元素。 您可以在父关闭之前插入<div style="clear:left;"></div>,也可以在父div上应用clearfix类。

.clearfix:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.clearfix {
    display: inline-block;
}

html[xmlns] .clearfix {
    display: block;
}

* html .clearfix {
    height: 1%;
}
​

然后,您只需将clearfix类添加到父div

...    
<div class="question-template clearfix">
...

Working Example

答案 5 :(得分:-2)

<div>元素使用固定高度。 会是这样

 .question-template {
    width: auto;
    height: 150px;
    background-color: blue;
 }
 .question {
    float: left;
    margin: 10px;
    color: white;
 }
 .participants {
    background-color: green;
    float: left;
    margin: 10px;
 }