好的,我有 3 列向左浮动。现在,当视口小于 600 像素时,我希望第 2 列出现在第 1 列之前,而不使用position:absolute
. 有没有办法通过使用 CSS 和 HTML 来做到这一点?
如果没有,您还可以发布其他变体。
好的,我有 3 列向左浮动。现在,当视口小于 600 像素时,我希望第 2 列出现在第 1 列之前,而不使用position:absolute
. 有没有办法通过使用 CSS 和 HTML 来做到这一点?
如果没有,您还可以发布其他变体。
这就是你所追求的吗?http://jsfiddle.net/panchroma/dWJ9g/
你会看到我已经对 HTML 中的 col1 和 col2 进行了重新排序,并将边距应用于 #col1 和 #col2
HTML
<div id="wrapper">
<div id="header">HEADER</div>
<div id="main">
<div id="col2" class="cols">COL 2</div>
<div id="col1" class="cols">COL 1</div>
<div id="col3" class="cols">COL 3</div>
<div class="clear"></div>
</div>
<div id="footer" class="clear">FOOTER</div>
</div>
CSS 更改
#col1 {float:left; height:100px; width:200px; background:#cc4444;margin-left:-400px;}
#col2 {float:left; height:200px; width:200px; background:#44cc44;margin-left:200px;}
@media only screen and (max-width:600px) {
#wrapper, #header, #main, #footer {width:100%;}
#col1, #col2, #col3 {float:none; width:100%;margin-left:0;}
}
希望这可以帮助!
如果您不想更改标记,我建议您使用 javascript 来更改 html 和 id。
var col1 = document.getElementById('col1'),
col2 = document.getElementById('col2'),
swapped = false;
window.onresize = function () {
var width = window.innerWidth;
if (width < 600 && swapped === false) {
swapCols();
swapped = true;
} else if (width > 600 && swapped === true) {
swapCols();
swapped = false;
}
};
function swapCols() {
var _col1 = col1.innerHTML,
_col1id = col1.id,
_col2 = col2.innerHTML,
_col2id = col2.id;
col1.innerHTML = _col2;
col1.id = _col2id;
col2.innerHTML = _col1;
col2.id = _col1id;
}
试试这个
CSS
html * {margin:0; padding:0;}
body {background:#000; font-family:helvetica, verdana;}
#wrapper {margin:50px auto;}
#wrapper, #header, #main, #footer {width:600px;}
#header {height:100px; background:#cccc44;}
#main {}
#col1 {float:left; height:100px; width:200px; background:#cc4444;}
#col2 {float:left; height:200px; width:200px; background:#44cc44;}
#col3 {float:left; height:150px; width:200px; background:#4444cc;}
#footer {height:50px; background:#cc44cc;}
.cols {}
.clear {clear:both;}
@media only screen and (max-width:600px) {
#wrapper, #header, #main, #footer {width:100%;}
#col3 {width:100%;}
#col1, #col2 {width:50%}
}