【问题标题】:Mixing px and % when layouting divs in css在 css 中布局 div 时混合 px 和 %
【发布时间】:2015-05-04 09:00:36
【问题描述】:

我想实现一个有 4 个 div 的布局 (screenshot)。 menu 应该是180px wide78%(因为我已经将屏幕顶部的21% 用于其他内容)屏幕高,而field1_top 的宽度应该是屏幕的其余部分,它是屏幕的height be 38%menuothers 之间的 gap 应该是1% of screensize

我目前最好的解决方案是:

div.menu{width:180px;height:78%;position:absolute;overflow:auto;left:1%;top:21%}
div.field1_top{width:84%;height:38%;position:absolute;overflow:auto;left:15%;top:21%}
div.field1_bottom_left{width:30%;height:38%;position:absolute;overflow:auto;left:15%;top:61%}
div.field1_bottom_right{width:53%;height:38%;position:absolute;overflow:auto;left:46%;top:61%}

显然,这会使“菜单”和其他 div 之间的间隙可变:在小屏幕尺寸中,其他框会进入菜单,而在大屏幕尺寸中,间隙变得太大...

我已经尝试使用围绕 div 的表格或使用“Issue mixing px and % for responsive layout”中的块级元素来解决此问题。我遇到的问题是,其他 div 采用了他们的内容所需的高度和宽度,并且 变得非常大。但我不希望屏幕滚动,但如果有必要,所有滚动条都在 div 中。

这是我的第一个问题,我希望我设法解释了我的问题,以便可以理解。当然,如果有人可以帮助我,我会很高兴。

【问题讨论】:

    标签: html css


    【解决方案1】:

    你可以使用这个解决方案:https://stackoverflow.com/a/1763906/4810983

    或者,您可以尝试calchttps://css-tricks.com/a-couple-of-use-cases-for-calc/ 所以你会有类似的东西:

    div.field1_top {
        width:calc(100% - 220px);
        height:38%;
        position:absolute;
        overflow:auto;
        left:200px;
        top:21%
    }
    

    【讨论】:

    • 是的!这似乎正是我所需要的。我以前经常遇到类似的问题 - 但我从来没有找到这个功能。我不敢相信我总是错过这一点,我希望我没有用其他人都清楚的事情来打扰你。无论如何:非常感谢!
    • 只是为了更清楚,因为答案包含 2 个解决方案:我用 calc 函数尝试了第二个答案。我还没有尝试过第一个解决方案。
    猜你喜欢
    • 2014-03-06
    • 2014-07-25
    • 2022-11-25
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多