javascript - 一个html布局问题

标签 javascript html css

我想做一个html布局,这是图片: enter image description here

整个页面包含 div:

Head
left
main01
main02

和控制div:

toogle_bar1
toogle_bar2

现在我想做出如下效果:

1) head 占浏览器的指定高度(例如 50px),占浏览器的 100% 宽度。 2) 并且默认情况下,main02 是不可见的,所以main01 div 与left 高度相同,宽度为左边。

3) 当toggle_bar1点击时,left应该隐藏/显示,一旦不可见,main01(和main02 如果 main02 可见)将占据浏览器的所有宽度。

4) 当点击toggle_bar2时,main02应该被隐藏/显示,一旦它可见,它的宽度将与main01相同>.

5) main01main02 应该有明确的宽度和高度属性。 6) 窗口调整大小时,无论如何滚动条都不可见。

其实我可以用javascript来实现,但是我想知道我是否可以使用纯css来实现(当然需要js来处理点击事件)?

由于我现在使用js,当toggle_bar1点击时,我将left设置为“display:none”,然后计算clientwidth,并设置宽度main01(or/and main02),不知道浏览器能不能计算出来?

我一直认为我们应该避免做额外的位置计算工作,如果它们可以由浏览器完成的话。

有什么想法吗?

最佳答案

您可以将删除的 CSS 类添加到主包装器。

假设您有 MainWrapper 并在其中“左”、“中”、“右”

然后您可以在 MainWrapper 中添加或删除 CSS 类

.left-item, .right-item, .middle-item { // this are the classes in the Wrapper
some base info
}

.has-left.has-middle .left-item {
width:30%;
} 
.has-left.has-middle .middle-item {
width:70%;
}
.has-left.has-middle .right-item {
display:none;
}

您应该知道如何处理其他组合。

不,您只是使用 js 来“添加”或“删除”您的 css 类,而 css 会为您完成。 MainWrapper 类:has-left,has-middle,has-right 删除其中一个,您的 CSS 就会调整。

听起来你不需要任何通用版本,所以这可以做到......

关于javascript - 一个html布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6625645/

相关文章:

javascript - x-editable + bootstrap 3 + Twitter typeahead.js 不工作

javascript - CS 购物车中的 "Script error."

javascript - 使垂直滚动条可见,保持表头静态

javascript - 如何使用 css 制作适合 div 形状的照片

html - 我怎样才能修复它在 chrome 中的样子

javascript - 指定 dom 元素的高度/宽度会使它们渲染得更快吗?

php - 提交后隐藏html表单?

javascript - Document.importNode VS Node.cloneNode(实例)

javascript - 使用按钮作为过滤器并在事件时更改其颜色

javascript - 如何在您的网站上创建代码高亮 block