gpt4 book ai didi

html - 针对容器一侧的边栏和内容区域发布查找计算

转载 作者:可可西里 更新时间:2023-11-01 12:55:50 24 4
gpt4 key购买 nike

我已经绘制了一个方便的花花公子图片,展示了我一直试图用 CSS 做的事情。理想情况下,我只想使用 CSS 来完成此操作,但此时我可以使用 JS 解决方案。

Sidebar Calculation

本质上,左边的侧边栏不会尊重 1200 像素的标题网格,居中。它始终是视口(viewport)的 1/3。内容区域需要在左侧碰到这个侧边栏,但一旦到达右侧标题容器的边缘就需要停止。

我已经尝试计算视口(viewport)减去 1200px、减去 600px 和其他一些计算,试图让这个内容区域正确地收缩和增长,但我不知道如何去做。

我最后的想法是尝试以某种方式计算图片中的 ??% 区域,以便我可以将内容区域推过去,但我不确定如何捕获它。

这是我离开的地方的笔:https://codepen.io/WDACDavy/pen/LJrxmY

这是随附的 HTML 和 CSS:

body,
html {
margin: 0;
padding: 0;
}

header {
width: 100%;
height: 90px;
background: #FF570c;
max-width: 1200px;
margin: 0 auto;
}

main {
position: relative;
display: flex;
flex-wrap: nowrap;
}

aside {
min-height: 100vh;
background: #dddddd;
width: 33.3333%;
}

section {
min-height: 100vh;
background: #FFFFFF;
width: 66.6666%;
max-width: 1200px;
margin: 0 auto;
}

.strange-container {
display: block;
width: 100%;
position: relative;
height: 900px;
background: #f5f5f5;
flex: none;
}
<html>

<head></head>

<body>
<header></header>
<main>
<aside>
</aside>
<section>
<div class="strange-container">&nbsp;</div>
</section>
</main>
</body>

</html>

好吧,事实证明接受的答案不是我需要的 100%。对于那些好奇或需要类似布局的人,这就是我所做的:

我采用了已接受答案的计算(太棒了!)并将其变成了 <section> 的左填充元素。

padding-left: calc((100vw/3 - (50vw - 600px)));

然后我给 <main> 添加了一个渐变元素为侧边栏提供背景并添加绝对定位的 <aside>对于侧边栏内容。最终结果在这里:https://codepen.io/WDACDavy/pen/KxemLm

这将一直有效,直到屏幕缩小到接近 1200 像素(这对我的用例来说没问题)。

最佳答案

这个面积的计算应该是100vw/3 - (100vw - 1200px)/2 [sidebar的宽度减去header左边的空间]。您可以将它用作负 margin-left 然后添加一个 margin-right 等于 (100vw - 1200px)/2 [the space on标题的右侧]。需要注意的是,当你有滚动条时,计算可能不准确。

我删除了滚动条以查看结果:

body,
html {
margin: 0;
padding: 0;
overflow:hidden;
}

header {
width: 100%;
height: 90px;
background: #FF570c;
margin: 0 auto;
max-width:1200px;
}

main {
position: relative;
display: flex;
flex-wrap: nowrap;
}

aside {
min-height: 100vh;
background: #dddddd;
width: 33.3333%;
}

section {
min-height: 100vh;
background: red;
width: 66.6666%;
margin: 0 auto;
}

.strange-container {
display: block;
margin-left:calc(-1 * (100vw/3 - (50vw - 600px)));
margin-right:calc(50vw - 600px);
position: relative;
height: 900px;
background: rgba(0,255,0,0.8);
flex: none;
}
/*We no more have space around section so we replace it by 0*/
@media all and (max-width:1200px) {
.strange-container {
margin-left:calc(-100vw/3);
margin-right:0;
}
}
<header></header>
<main>
<aside>
</aside>
<section>
<div class="strange-container">&nbsp;</div>
</section>
</main>

关于html - 针对容器一侧的边栏和内容区域发布查找计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52315603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com