我有2个DIV,我一直试图重新订购,如下图所示。尝试将日历移到快速链接上方以移动视图,但似乎无法正常工作。我尝试将左侧的日历和右侧的快速链接浮动,但仍然无效。关于如何实现这一点的任何想法?我对HTML和基于jQuery的建议持开放态度。
HTML
<div id="quick-links"></div><!-- End Quick links -->
<div id="calendar"></div><!-- End Calendar -->
CSS代码
#calendar {
float: left;
position: relative;
}
#quick-links {
float: right;
position: relative;
}
插图图片
答案 0 :(得分:2)
正如@Terry指出的那样,你可以使用CSS3 Flexbox
。
这样你只需要改变order
。实际上只需更改一个order
上的div
(快速链接),它就会自动切换。
这样的事情:
#container {
width: 240px; height: 240px;
border: 1px solid gray;
display: flex;
flex-direction: column;
/* flex-direction: column-reverse; */
/* use column-reverse if needed to reverse the entire list */
}
#quicklinks {
order: 2;
}
#calendar {
order: 1;
}
.filler {
height: 100px;
margin: 8px;
}
#calendar .filler {
background-color: #f00;
}
#quicklinks .filler {
background-color: #00f;
}
<div id="container">
<div id="quicklinks">
<div class="filler">Quick</div>
</div>
<div id="calendar">
<div class="filler">Calendar</div>
</div>
</div>
小提琴玩:http://jsfiddle.net/abhitalks/d8r47k8q/
答案 1 :(得分:2)
另一种方法是将display:table
提供给div和display: table-header-group
的父级到具有日历的元素。
与flexbox方法相比,这确保了更广泛的兼容性,因为它甚至可以在IE8
HTML
<div id="container">
<div id="quick-links">QuickLinks</div>
<div id="calendar">Calendar</div>
</div>
CSS
#container { display: table }
#calendar { display: table-header-group }
当然,您可以将display: table-footer-group
分配给quicklinks
元素,最终效果会相同。
答案 2 :(得分:1)
您可以使用CSS3 @media query,但需要确定所定位的移动视图的屏幕分辨率。
<div id="container">
<div id="quick-links">QuickLinks</div>
<div id="calendar">Calendar</div>
</div>
@media screen and (max-width: 600px) {
div#container{
position: relative;
}
#quick-links{ /* move below #calendar*/
position:absolute;
top: 115px; /* this should be the height covered the calender height including its margin */
left: 0
}
#calendar{ /* move atop of #quick-links */
position:absolute;
top: 0;
left: 0;
}
}
max-with: 600px
表示在低于分辨率宽度600px的媒体屏幕中查看时,日历将移至#quick-links
的顶部。
答案 3 :(得分:0)
#calendar{
top: 0px;
position: relative;
}
#quik-linskr {
bottom: 0px;
position: relative;
}