考虑我们有3个浮动的div并且它们彼此相邻
我们可以将左右div放在彼此旁边,将中间div放在较小的设备上,如下图所示吗?
我试过以下但没有成功。 任何的想法?感谢。
<html>
<head>
<style>
#content {
width: 20%;
float: left;
background:purple;
}
#middle {
width: 64.3%; /* Account for margins + border values */
float: left;
margin-right:2px;
margin-left:2px;
background:yellow;
}
#sidebar {
width: 15%;
float: left;
background:red;
}
/* for 980px or less */
@media screen and (max-width: 980px) {
#content {
width: 20%;
float: left;
background:purple;
}
#middle {
float:none;
clear:both;
}
#sidebar {
width: 15%;
float: left;
background:red;
}
}
</style>
</head>
</head>
<body>
<div id="content">1</div>
<div id="middle">2</div>
<div id="sidebar">3</div>
</body>
</html>
答案 0 :(得分:1)
使用浮动div时,只能使用CSS来实现您要求的布局。这是因为浮动的div是源序。虽然可以有几种不同的方法。
您可以使用jquery来操纵位置。但这是不可取的。
使用flexbox。 Flex盒具有不错的浏览器支持(IE 10 +)
答案 1 :(得分:1)
最好的方法是首先考虑移动。将div设置为小型设备的正确顺序,并使用左右css位置在大型设备上获得正确的顺序。
http://codepen.io/mouhammed/pen/Ieyom
HTML:
<html>
<head>
</head>
</head>
<body>
<div id="middle">2</div>
<div id="content">1</div>
<div id="sidebar">3</div>
</body>
</html>
CSS:
#content {
width: 20%;
float: left;
background:purple;
position:relative; /*pull this div to the right */
right:64.3%;
left:auto;
}
#middle {
width: 64.3%; /* Account for margins + border values */
float: left;
margin-right:2px;
margin-left:2px;
background:yellow;
position:relative; /*push this div to the left */
left:20%;
right:auto;
}
#sidebar {
width: 15%;
float: left;
background:red;
}
/* for 980px or less */
@media screen and (max-width: 980px) {
#content {
width: 70%;
background:purple;
right:auto;
}
#middle {
width:100%;
float:left;
left:auto;
}
#sidebar {
width: 30%;
float: left;
background:red;
}
}
答案 2 :(得分:1)
以下是一个让您入门的选项:http://codepen.io/panchroma/pen/KjmBH
<强> HTML 强>
<body>
<div class="wrap"> <!-- wrap everything in a positioned div so that we can use position: absolute with the children divs -->
<div id="middle">2</div>
<div id="content">1</div>
<div id="sidebar">3</div>
</div>
</body>
CSS
.wrap{
position:relative;
}
#content {
width: 20%;
background:purple;
position:absolute;
top:0;
left:0;
}
#middle {
width: 64.3%;
margin-left:20%;
background:yellow;
}
#sidebar {
width: 15.7%;
background:red;
position:absolute;
top:0;
right:0;
}
/* for 980px or less */
@media screen and (max-width: 980px) {
#content {
width: 60%;
float: left;
background:purple;
position:static;
}
#middle {
width:100%;
margin-left:0;
position:static;
}
#sidebar {
width: 40%;
background:red;
position:static;
float:right;
}
}
祝你好运!