そのため、理由がわからない奇妙な動作に気付いたときに、cssfloatプロパティを調べていました。
これは、4つのdivのコードとプレビューへのリンクです。最初の2つは左右にフロートし、3番目と前後は通常のdivです。
3番目のdivが2番目のdivとオーバーラップすることは理解していますが、3番目のdivのコンテンツが下にシフトした理由がわかりません。2番目のdivの後ろに隠れてはいけませんか?
PS私は、3番目のdivのclearプロパティを使用して問題を修正できることを知っていますが、この動作の背後にある理由についてもっと心配しています。
コード:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
aside, article, section, header, footer, nav {
display: block;
}
html, body {
margin: 0;
padding: 0;
}
html {
background: #ccc;
}
body {
width: 600px;
background: #fff;
margin: 2em auto 2em;
font: 100% Arial, Helvetica, sans-serif;
}
div {
margin-bottom: 1em;
margin-right: 2em;
width: 85px;
height: 50px;
border: 1px solid #000;
padding: 25px;
}
/*add styles here*/
.element1 {
background: rgb(26, 78, 175);
float:right;
color:white;
}
.element2 {
background: rgb(85, 66, 54);
float:left;
color:white;
}
.element3 {
background: rgb(247,120,37);
}
.element4 {
background: rgb(211, 206, 61);
}
?
</style>
</head>
<body>
<div class="element1">Element 1 floated right</div>
<div class="element2">Element 2 floated left</div>
<div class="element3">Element 3 normal flow</div>
<div class="element4">Element 4 normal flow</div>
</body>
</html>