【发布时间】:2013-03-14 15:05:00
【问题描述】:
我觉得 CSS 比 C++ 更难也更令人困惑,因此我没有几个问题。
考虑跟随 html 正文
<div id="mydiv1">12345~~~~~~~~/</div><div id="mydiv2">+_______67890</div>
和 CSS
#mydiv1 {
float: left;
background-color: red;
margin-right: -30px;
}
#mydiv2 {
float: left;
background-color: blue;
}
看起来像这样(在我最新的 Chrome 中)
这对我来说很有意义,因为第二个 div 是浮动的,并且它浮动在第一个 div 上。
另一方面,如果我从 mydiv2 中删除浮动属性,则只有内容移动,但背景框保持在同一个位置。
1) 你能解释一下原因吗?
现在我将删除边距和浮动,并为两个具有 CSS 的 div 添加宽度
#mydiv1 {
background-color: red;
width: 220px;
}
#mydiv2 {
background-color: blue;
width: 240px;
}
它会看起来像这样
但如果我将float: left 添加到#mydiv1,它突然看起来像这样
2) 为什么第二个 div 变成两倍高?我通过将第一个 div 的 z-index 设置为 -1 来检查它。
PS。我在 CodeAcademy 上完成了教程,并在 smasmingmagazine.com 上阅读了与浮动/保证金相关的文章。可悲的是,它并没有让一切都变得一清二楚。如果你们能推荐一些可以向我解释这些问题的在线资源或书籍,我将不胜感激。
【问题讨论】: