简体   繁体   English

无法理解为什么 flexbox 容器中的这些元素没有正确对齐

[英]Can't understand why these elements inside a flexbox container are not properly aligned

I'm trying to organize these elements like picture and textBox evenly, with equal distances from the borders but it looks like the div with picture inside takes too much space and is pushing textBox to the right.我试图均匀地组织这些元素,如图片和文本框,与边框的距离相等,但看起来里面有图片的 div 占用了太多空间并且将文本框推到了右侧。 I've tried flex-grow:1;我试过 flex-grow:1; and plenty other ideas, in another section where is my own SVG it seems to work fine but here for some reason not.还有很多其他的想法,在我自己的 SVG 的另一部分中,它似乎工作正常,但由于某种原因在这里不行。 I know my code is sloppy and amateurish, I'm still learning basics.我知道我的代码草率且业余,我仍在学习基础知识。

 * { margin: 0; padding: 0; } body { background-color: #4a4e69; color: #f2e9e4; font-family: "Manrope", sans-serif; } main { padding: 5%; } section { height: 40rem; padding: 1%; padding-top: 5%; } .wrapper { display: flex; align-items: center; align-content: center; justify-content: center; margin: 0 auto; max-width: 80%; flex-wrap: wrap; flex-direction: column; } .textBox { margin: 0 auto; display: flex; flex-direction: column; text-align: center; row-gap: 50px; justify-content: center; align-items: center; max-width: 40%; height: fit-content; } .text { border: 1px solid white; margin: 5%; padding: 5%; text-align: center; text-indent: 1ch; } .image { border: 1px solid white; padding: 2%; max-width: 50%; } .sloganSmall { padding: 2%; text-align: center; display: block; position: relative; margin: 0 auto; } .shit { margin: 0 auto; max-width: fit-content; text-align: center; }
 <section id="intro" class="wrapper"> <h2 class="sloganSmall">Our mission</h2> <div class="shit"> <img src="https://api.ndla.no/image-api/raw/skjermbilde_2019-04-16_kl._10.55.05.png?" alt="Luwak" class="image" /> </div> <div class="textBox"> <p class="text"> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Maxime ideos, delectus eligendi in nemo est, dicta a suscipit quo porro debitis eaque consequatur quisquam ratione deserunt iusto vitae sunt totam beatae! Eum veritatis culpa neque ipsam nostrum. Quisquam asperiores praesentium enim dolorem in aliquid blanditiis adipisci ipsa. Saepe, enim voluptates! Excepturi, dolore doloremque eveniet architecto aliquid nemo animi voluptatum veniam dolorum laudantium accusamus odio beatae odit, facere fugiat officiis voluptates esse fuga suscipit soluta unde.</p> </div> </section>

You overcomplicate your coding.您使编码过于复杂。 For this matter with your amrkup I would advcie to use CSS-grid.对于您的 amrkup,我建议您使用 CSS-grid。 Justc reate a 2 columns grid and let the title span both columns: Justc 创建一个 2 列网格并让标题跨越两列:

 * { margin: 0; padding: 0; } body { background-color: #4a4e69; color: #f2e9e4; font-family: "Manrope", sans-serif; } .wrapper { max-width: 80%; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; grid-gap: 15px; } .wrapper > h2 { grid-column: 1 / -1; text-align: center; } .wrapper > .shit { display: flex; align-items: center; } .wrapper > .shit > img { width: 100%; }
 <section id="intro" class="wrapper"> <h2 class="sloganSmall">Our mission</h2> <div class="shit"> <img src="https://api.ndla.no/image-api/raw/skjermbilde_2019-04-16_kl._10.55.05.png?" alt="Luwak" class="image" /> </div> <div class="textBox"> <p class="text"> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Maxime ideos, delectus eligendi in nemo est, dicta a suscipit quo porro debitis eaque consequatur quisquam ratione deserunt iusto vitae sunt totam beatae! Eum veritatis culpa neque ipsam nostrum. Quisquam asperiores praesentium enim dolorem in aliquid blanditiis adipisci ipsa. Saepe, enim voluptates! Excepturi, dolore doloremque eveniet architecto aliquid nemo animi voluptatum veniam dolorum laudantium accusamus odio beatae odit, facere fugiat officiis voluptates esse fuga suscipit soluta unde.</p> </div> </section>

Another way, you will need to adjust...另一种方式,您将需要调整...

 * { margin: 0; padding: 0; } body { background-color: #4a4e69; color: #f2e9e4; font-family: "Manrope", sans-serif; } main { padding: 5%; } section { height: 40rem; padding: 1%; padding-top: 5%; } .wrapper { display: inline-block; margin: 0 auto; max-width: 80%; } .textBox { margin: 0 auto; display: block; text-align: center; width: 50%; float: left; } .text { border: 1px solid white; margin: 5%; padding: 5%; text-align: center; text-indent: 1ch; } .image { border: 1px solid white; padding: 2%; max-width: 50%; } .sloganSmall { padding: 2%; text-align: center; display: block; position: relative; margin: 0 auto; } .shitblock { margin: 0 auto; float: left; width: 50%; display: block; } .shit { margin: 0 auto; text-align: center; }
 <section id="intro" class="wrapper"> <div class="shitblock"> <h2 class="sloganSmall">Our mission</h2> <div class="shit"> <img src="https://api.ndla.no/image-api/raw/skjermbilde_2019-04-16_kl._10.55.05.png?" alt="Luwak" class="image" /> </div> </div> <div class="textBox"> <p class="text"> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Maxime ideos, delectus eligendi in nemo est, dicta a suscipit quo porro debitis eaque consequatur quisquam ratione deserunt iusto vitae sunt totam beatae! Eum veritatis culpa neque ipsam nostrum. Quisquam asperiores praesentium enim dolorem in aliquid blanditiis adipisci ipsa. Saepe, enim voluptates! Excepturi, dolore doloremque eveniet architecto aliquid nemo animi voluptatum veniam dolorum laudantium accusamus odio beatae odit, facere fugiat officiis voluptates esse fuga suscipit soluta unde.</p> </div> </section>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM