所以我要做的就是让一个以页面为中心的div(margin: auto auto;
),在其左侧有一个导航div
。
可以打开或关闭导航div
的想法(因此可能存在也可能不存在)。如果它在那里不应该干扰主要div的居中。
以下是一个例子
我尝试了一些事情
用主div包装两个div。将主div设置为margin: auto auto
,然后将两个子div设置为float: left
。问题是当导航器消失时,整个事物向左移动。
保持中间div margin: auto auto;
向左浮动导航div,然后使用margin-left
,但当页面变大或变小时,这会发生变化。
任何指针都会以最好的方式表达。我希望避免吃桌子。
答案 0 :(得分:2)
试试这个:
在你的HTML中:
<body>
<div class="encasing">
<div class="leftmenu"></div>
</div>
</body>
在你的css中:
html, body
{
width: 100%;
height: 100%;
}
div.encasing
{
top: 50px;
margin-left: auto;
margin-right: auto;
width: 70%;
height: 500px;
background-color: green;
position: relative;
}
div.leftmenu
{
right: 100%;
width: 10%;
height: 300px;
background-color: red;
position: absolute;
}
重要的部分是:
这里的想法是让左侧菜单使用中心块的位置,然后自行调整。右:100%将菜单的右边缘放在菜单的左边缘。
最后,css中一个非常好的技巧是绝对定位元素相对于最近的相对或绝对定位父元素进行自我调整。 :)
答案 1 :(得分:0)
我能想到的一些解决方案:
display: inline-block
。不同之处在于如何处理小窗口(试一试)。同样,您可以通过在身体上设置最小宽度来对抗不需要的效果。@media
查询来解决这些问题,将您的布局调整为其他屏幕分辨率。你还应该尝试找到一个能够做你想做的事情的网站,看看他们是怎么做的(检查HTML,CSS,也许是Javascript)。