html - CSS - 父 div 不充当父级

标签 html css

我目前正在尝试学习 CSS。到目前为止一切顺利,但是我遇到了一个问题,直到现在我还没有遇到过问题。

我有一个 <div>包含另外两个 <div>的。 我期待“ parent ”<div>充当 parent (自动高度等)并实际“包含”两个 child <div>的。

我的代码:

<div class="formpair">
    <div class="formlabel formitem">
        Parent Section:
    </div>
    <div class="formcontrol formitem">
        <select>

        </select>
    </div>
</div>

我的 CSS:

.formitem {
    position: relative;
    float: left;
}
.formlabel {
    width: 200px;
}
.formcontrol {
    position: absolute;
    left: 200px;
}
.formpair {
    clear: both;
    margin-bottom: 4px;
    height: auto;
    position: relative;
    display: block;
}

我尝试过使用“位置”和“显示”进行试验,但无济于事...... 任何帮助表示赞赏!

最佳答案

除非有特殊需要让子元素 float ,否则我使用 display:inline-block 提供了不同的解决方案。我还清理了您的 CSS 以删除一些不必要的膨胀,这些膨胀可能会在您的文档后面导致层次结构问题。

您可以在此处查看修复的工作示例:JSFiddle

这是可以正常显示的 css:

.formitem {
    display:inline-block;
}

.formlabel {
    width: 200px;
}

.formpair {
    margin-bottom: 4px;
}

以下是您在使用以前的 CSS 时遇到的一些问题:

.formcontrol {
    position: absolute;
    left: 200px;
}

这段 CSS 被反对:

.formitem {
    position: relative;
    float: left;
}

因此 .formcontrol 不会因为抵制 CSS 而对您的文档产生任何影响。它被否决的原因是因为 CSS 是线性的并且会从头到尾阅读您的文档。在您的 HTML 中,您首先告诉 CSS 应用 .formcontrol,然后在给它第二个类 .formitem 之后立即:

<div class="formcontrol formitem">

其他 CSS 声明,如:

height: auto;
position: relative;
display: block;

在您的示例中似乎不需要,因为默认设置对于此应用程序可以很好地工作,并且可能会对您的元素施加限制声明,这可能会导致 future CSS 修改出现问题。

如果您的意图是使用float:left,那么@rdubya 评论了此链接关于如何在 float 元素下正确清除修复:clearfix

关于html - CSS - 父 div 不充当父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557034/

相关文章:

html - 在没有 javascript 的情况下 3 秒后更改 <li> 背景颜色

javascript - 每次页面刷新后用户个人资料信息都会重置(使用 Hello.js)

javascript - 更改单选按钮时页面会重新加载

javascript - 使用所选元素将滚动条移动到顶部

javascript - 为什么 $(document).scrollTop() 不等于文档底部的 $(document).height() ?

javascript - 如何通过创建动态复选框更改进度条

css - 左/右对齐按钮和固定宽度

html - Magento - 顶部导航的垂直菜单

css - Angular ngAnimate 包含但不添加类

javascript - 使文本输入字段记住以前输入的数据