gpt4 book ai didi

html - CSS:具有 3 个 div 的 Flex 容器

转载 作者:行者123 更新时间:2023-11-28 05:38:50 25 4
gpt4 key购买 nike

我在使用 CSS 中的 flex 来按照我希望的方式对齐 div 时遇到了一些麻烦。下图显示了我希望如何列出所有内容

Layout Template

这是我上传的所有 CSS 和 HTML as a fiddle作为一个片段:

    @font-face {
font-family: Comfortaa;
src: url("Comfortaa-Light.ttf") format("truetype");
}

@font-face {
font-family: Neue;
src: url("HelveticaNeue-Thin.otf") format("opentype");
}

body {
position: absolute;
margin: 0px;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
overflow-y: scroll;
overflow-x: hidden;

background-color: white;
}

#topSegment {
position: relative;
display: flex;
flex-flow: row wrap;
width: 100%;
height: 600px;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
background: purple; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(left top, rgba(181,91,184,1), rgba(62,71,130,1)); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(bottom right, rgba(181,91,184,1), rgba(62,71,130,1)); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(bottom right, rgba(181,91,184,1), rgba(62,71,130,1)); /* For Firefox 3.6 to 15 */
background: linear-gradient(to bottom right, rgba(181,91,184,1), rgba(62,71,130,1)); /* Standard syntax */
}

#frontLogo {
width: 369.9px;
height: 350px;
margin: 125px;
}

#searchBar {
flex: 1;
margin-right: 125px;
margin-left: 0px;
margin-top: 75px;
margin-bottom: 75px;
background-color: rgb(74,74,74);
height: 50px;
border-radius: 25px;
}

#weatherInformation {
flex: 1;
margin: 125px;
margin-left: 0px;
}

#weatherInformation p{
margin: 0px;
font-family: 'Open Sans', sans-serif;
font-weight: 300;
color: white;
font-size: 2em;
}

#underline {
margin: 0px;
padding: 0px;
width: 0%;
visibility: hidden;
animation-name: expand;
animation-delay: 0.75s;
animation-duration: 0.8s;
animation-timing-function: ease-in-out;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}

@keyframes expand {
from {
width: 0%;
}
to {
width: 100%;
visibility: visible;
}
}

#gradient {
position: absolute;
width: 100%;
height: 10px;
bottom: 0px;
left: 0px;

background: white; /* For browsers that don't support gradients */
background: -webkit-linear-gradient(top,rgba(0,0,0,0.4),rgba(0,0,0,0)); /*Safari 5.1-6*/
background: -o-linear-gradient(top,rgba(0,0,0,0.4),rgba(0,0,0,0)); /*Opera 11.1-12*/
background: -moz-linear-gradient(top,rgba(0,0,0,0.4),rgba(0,0,0,0)); /*Fx 3.6-15*/
background: linear-gradient(to top, rgba(0,0,0,0.4), rgba(0,0,0,0)); /*Standard*/
}

#content {
display: flex;
width: 100%;
height: 900px;

background-color: white;
}


/* Custom Scrollbar CSS */

::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: rgba(255,255,255,1);
-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,0.3);
-webkit-border-radius: 50px;
border-radius: 50px;
}
::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
background: rgba(150,150,150,1);
}
::-webkit-scrollbar-thumb:window-inactive {
background: rgba(150,150,150,0.6);
}
<body>
<div id="topSegment">
<a href="index.html">
<img src="Weather%20Icon.svg" alt="CGS Weather Icon" id="frontLogo" >
</a>
<div id="searchBar">
<div id="outer">

</div>
</div>
<div id="weatherInformation">
<p>CAMBERWELL, MELBOURNE</p>
<hr id="underline">
<p>28&deg;</p>
</div>
<div id="gradient"></div>
</div>
<div id="content"></div>
</body>

我确信它有一些非常简单的解决方案,使用几行代码来处理 flex 但我似乎无法弄清楚它们是什么..

最佳答案

各位,我不同意! Flex 非常适合这个! (免责声明:我是 Flex 的传播者,所以 Flex 是完美的一切。);-)

我用你的图表构建了一个解决方案。您在左 Pane 中要求的是不可能的。您有固定高度的边距和固定高度的 Logo ,但希望该区域是屏幕的整个高度。看到问题了吗?那里必须有一些可变的东西。

所以....我使用了两个 flex 填充面板——一个在 Logo 容器上方,一个在下方,使 Logo 垂直居中,但同时垂直填充屏幕。我很确定视觉效果符合您的预期。

其他一切都完全按照您的要求进行。

注意:我在 CSS 表的底部给了你一大块 CSS,你可以在你的所有元素中复制-粘贴-重复使用它们来进行 CSS Flex 管理。 Flex 非常强大,那几个 CSS 类使工作变得简单。

注意:这很丑陋!我在所有东西周围都加上了边框,这样你就可以准确地看到发生了什么,所以它看起来很糟糕。您当然会删除/注释掉实际使用的边界。不过,边界在开发过程中非常有用。

给你! https://jsfiddle.net/brebey/ya8rea0f/2/

我这里还有一个更通用的 Flex 盒子演示。它展示了如何将非常常见的三 Pane 布局从底部(页眉/内容/页脚布局),在任何位置(顶部/中心/底部)使用可变宽度 Pane ,然后在其中(在可变高度的内容 Pane 中),它显示了在也很常见的从左到右的布局(菜单/内容/广告等)中完成的相同操作。如果您有兴趣,请看这里。 https://jsfiddle.net/brebey/sm4amanj/

flexbox 的神奇之处在于它们是 CSS 中唯一允许您向任何 Flex DIV 自由添加填充、边框和/或边距的机制,并且它们按预期工作,而不会产生大量的滚动条。上面的演示展示了通过复选框让您打开/关闭装饰。

** 如果对您有帮助,请接受/投票赞成答案! **

注意:我只为您做了 Flex/Geometry 部分;看起来你对等式的背景/边框/颜色部分有很好的处理。如果您需要帮助来为您正在寻找的效果设置正确的背景/透明/不透明序列,请大声回应,我会帮助您。

/* */

关于html - CSS:具有 3 个 div 的 Flex 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38029739/

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