初学者的东西:如何阻止CSS'Divs重叠?

时间:2013-07-08 19:43:48

标签: css html overlap

第一个问题,我在一个月前开始研究CSS,因为我得到了一份工作,但似乎我遇到了一些我无法解决的问题(主要是由于我的经验不足而且是别人的CSS)< / p>

我不会那么多地绕过灌木丛并在展示代码之前解释问题。在一个类似于表单的设置中有一组Div,但是当文本变得太拥挤时它会侵入下一个Div,所以通过CSS而不是HTML修复它,对此有什么解决方法吗?从我可以想象的问题来看,它很容易傻,但好吧,是的。

编辑:我有点忘了提到那部分,我不希望它们被隐藏,我希望每个div自动允许“上一个”完成它的集中而不重叠(尝试溢出:自动但是它给了他们滚动条,整个网站的所有形式。

这是一张关于当下情况的图片,我相信你会马上看到问题

http://imgur.com/aj8pDaO


这是相关的HTML

<html>
<head>
    <link href="hue.css" rel="stylesheet">
</head>
<body>
    <div class="content">

        <div class="column">
            <div class="form">
                <div class="form-nivel">
                    <label for="cfdiCreate:organizationRfc">RFC</label><label id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label>
                </div>
                <div class="form-nivel">
                    <label for="cfdiCreate:organizationTaxSystem">Regimen    fiscal</label><label id="cfdiCreate:organizationTaxSystem">Sueldos y salarios</label>
                </div>
                <div class="form-nivel">
                    <label for="cfdiCreate:organizationTaxAddress">Domicilio  fiscal</label><label id="cfdiCreate:organizationTaxAddress">XXXXXX Colonia Tecnológico  Monterrey,Nuevo León,México.C.P.XXXXXX</label>
                </div>
                <div class="form-nivel">
                    <label for="cfdiCreate:organizationExpeditionPlace">Lugar de  expedición</label><label id="cfdiCreate:organizationExpeditionPlace">Suc.1 Chiapas,México.     </label>
                </div>
            </div>
        </div>
        <div class="column secondary">
            <!--?xml version="1.0" encoding="UTF-8"?-->
        </div>
</body>
</html>

这是CSS

body {
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    text-align: center;
}

p {
    text-align: left;
}

.content {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: 10px;
    float: left;
    background: #;
    text-align: left;
}

    .content label, .content p {
        font-size: 16px;
        color: #024DA1;
        padding-left: 2%;
    }

.column {
    display: block;
    float: left;
    width: 48%;
    margin-top: 15px;
    height: auto;
    background:;
}

.secondary {
    margin-left: 10px;
}

.clearfix {
    clear: both;
    margin-bottom: 10px;
}

.form {
    display: block;
    width: 96%;
    height: auto;
    background:;
}

.form-nivel {
    display: block;
    width: 100%;
    width: 470px;
    min-height: 20px;
    margin-bottom: 20px;
    position: relative;
}

    .form-nivel label {
        width: 160px;
        float: left;
        height: 20px;
        line-height: 20px;
        margin-right: 10px;
        text-align: right;
    }

5 个答案:

答案 0 :(得分:9)

下面。您正在将CSS规则应用于所有标签。由于这个规则,重叠发生了。

float: left;

要解决此问题,请删除.form-nivel标签规则并添加这些规则。

.form-nivel label:nth-child(1) {
    width: 160px;
    float: left;
    height: 20px;
    line-height: 20px;
    margin-right: 10px;
    text-align: right;
}

.form-nivel label:nth-child(2) {
    width: 160px;
    height: 20px;
    line-height: 20px;
    margin-right: 10px;
    text-align: right;
}

答案 1 :(得分:1)

如果内容溢出到下一个内容,你可以使用overflow:hidden隐藏内容

答案 2 :(得分:1)

左侧标签和右侧标签的CSS逻辑是相同的。

你应该做的第一件事是将它们分开。

<div class="form-nivel">
    <label class="leftLabel" for="cfdiCreate:organizationRfc">RFC</label>
    <label class="rightLabel" id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label>
</div>
  • 注意添加的课程

然后在你的CSS上你会做这样的事情:

.form-nivel label.leftLabel {
    width: 160px;
    float: left;
    height: 20px;
    line-height: 20px;
    margin-right: 10px;
    text-align: right;
}

.form-nivel label.rightLabel {
    width: 400px;
    float: left;
    height: 20px;
    line-height: 20px;
    margin-right: 10px;
    text-align: left;
}

我将正确的标签做得更大,并将它们对齐到左边。

另外,你应该添加:

<meta charset="utf-8">

在html头上。这是为了能够显示带重音的字符。

答案 3 :(得分:0)

为什么不简单地将<label/>内联?删除所有不必要的声明...

.form-nivel label {
    margin-right: 10px;
    line-height: 20px;
}

答案 4 :(得分:0)

尝试添加:

<div class="clearfix"></div>
每行之间

<div class="form-nivel">
    <label for="cfdiCreate:organizationRfc">RFC</label>
    <label        id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label>
</div>
<div class="clearfix"></div>
<div class="form-nivel">
    <label for="cfdiCreate:organizationTaxSystem">Regimen    fiscal</label>
    <label id="cfdiCreate:organizationTaxSystem">Sueldos y salarios</label>
</div>