Ich habe ein seltsames Problem, mit dem ich Probleme habe. Also habe ich an diesem Prototyp einer HTML5-Vorlage gearbeitet, die Flexbox verwendet. Obwohl ich auf ein kleines Problem gestoßen bin. Ich versuche, einen kleinen Abstand zur Seitenleiste und zum Inhaltsbereich der Vorlage zu schaffen, indem ich die Eigenschaft "Inhalt rechtfertigen" auf das übergeordnete div anwende. Der Abstand zwischen der Seitenleiste und dem Inhaltsbereich wird jedoch nicht hinzugefügt. Ich bin mir nicht sicher, was ich falsch mache. Wenn mir jemand helfen könnte, wäre das großartig. Danke im Voraus!
Hier ist mein HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="../scripts/javascript/responsive_drop_down.js"></script>
<link href="../css/protoflexcss.css" rel="stylesheet" type="text/css" media="screen"/>
<title>Welcome to My Domain</title>
</head>
<body>
<header>
<h1>This is a placeholder <br />
for header</h1>
</header>
<nav class="main">
<div class="mobilmenu"></div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Video</a></li>
<li><a href="#">Pictures</a></li>
<li><a href="#">Audio</a></li>
<li><a href="#">Other Work</a></li>
<li><a href="#">About Me</a></li>
<li><a href="#">Contact Me</a></li>
</ul>
</nav>
<div id="wrapper">
<article class="content-main">
<section>
<h2>Heading goes here...</h2>
<time datetime="2014-05-21T02:43:00">Officialy Posted On May 21<sup>st</sup> 2:35 A.M.</time>
<p>Content will go here...</p>
</section>
</article>
<aside>
<p>More content soon...</p>
</aside>
</div>
<footer>
<div class="copyright">
<span>All rights reserved 2014.</span>
</div>
<nav class="foot">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Video</a></li>
<li><a href="#">Pictures</a></li>
<li><a href="#">Audio</a></li>
<li><a href="#">Other Work</a></li>
<li><a href="#">About Me</a></li>
<li><a href="#">Contact Me</a></li>
</ul>
</nav>
</footer>
</body>
</html>
Hier ist das relevante CSS:
#wrapper
{
display: flex;
flex-direction: row;
justify-content: space-around;
flex-flow: row wrap;
flex: 1 100%;
width:92.5%;
align-self: center;
padding-top: 3.5em;
padding-bottom: 2.5em;
margin: 0;
}
#wrapper article.content-main
{
flex: 6;
order: 2;
}
#wrapper article.content-main section
{
background-color: rgba(149, 21, 130, 0.61);
border: 2px solid #c31cd9;
padding: 0.9em;
}
#wrapper aside
{
flex: 1;
padding: 0.4em;
background-color: rgba(17, 208, 208, 0.56);
border: 2px solid #15d0c3;
position: sticky;
}
HINWEIS: Wenn jemand einen anderen Teil meines CSS-Codes benötigt, der sich auf andere Elemente meines HTML-Codes bezieht, lassen Sie es mich bitte wissen, und ich werde ihn gerne auch in die Frage aufnehmen.
flex-grow: 1;
und lassjustify-content
es sein Ding machen.Antworten:
justify-content
Dies wirkt sich nur aus , wenn nach dem Biegen Ihrer Flex-Elemente noch Platz übrig ist, um den freien Speicherplatz zu absorbieren. In den meisten / vielen Fällen ist kein freier Speicherplatz mehr vorhanden und es wird tatsächlichjustify-content
nichts unternommen.Einige Beispiele , wo es würde eine Wirkung haben:
wenn Ihre Flex-Artikel alle unflexibel (
flex: none
oderflex: 0 0 auto
) und kleiner als der Behälter sind.Wenn Ihre flexiblen Elemente flexibel sind, kann ABER aufgrund eines
max-width
auf jedem der flexiblen Elemente nicht wachsen, um den gesamten freien Speicherplatz zu absorbieren .In beiden Fällen
justify-content
wäre er für die Verteilung des überschüssigen Raums verantwortlich.In Ihrem Beispiel haben Sie jedoch flexible Elemente mit
flex: 1
oderflex: 6
ohnemax-width
Einschränkung. Ihre flexiblen Gegenstände wachsen, um den gesamten freien Speicherplatz zu absorbieren, und es bleibt kein Speicherplatz mehr,justify-content
mit dem Sie etwas anfangen können.quelle
justify-content
befindet, ist dies unabhängig von den in dieser Antwort genannten Einschränkungen hilfreich.Diese Antwort mag dumm sein, aber ich habe einige Zeit damit verbracht, es herauszufinden.
Was mir passiert ist, war ich nicht eingestellt
display: flex
auf den Behälter. Und natürlichjustify-content
funktioniert es nicht ohne einen Container mit dieser Eigenschaft.quelle
justify-content
auf den Gegenstand eingestellt hatIch hatte ein weiteres Problem, das mich eine Weile beschäftigte, als ich vorhandenen Code von einem CMS thematisierte. Ich wollte Flexbox verwenden,
justify-content:space-between
aber das linke und das rechte Element waren nicht bündig.In diesem System wurden die Gegenstände geschwommen und der Behälter hatte am Anfang oder Ende ein
:before
und / oder ein:after
zu löschendes Schwimmen. Also haben diese Sneaky:before
und:after
Elementedisplay:none
den Trick gemacht.quelle
Ich hatte viele Probleme mit dem Rechtfertigungsinhalt und stellte fest, dass das Problem "margin: 0 auto" war.
Der automatische Teil überschreibt den Ausrichtungsinhalt, sodass er immer entsprechend dem Rand und nicht nach dem Ausrichtungsinhalt angezeigt wird.
quelle
margin-right: auto;
ist wichtig, wennjustify-content: space-between;
als Flex-Gitter verwendetGehen Sie zum Element inspizieren und überprüfen Sie, ob .justify-content-center als Klassenname auf der Registerkarte "Stile" aufgeführt ist. Wenn nicht, verwenden Sie wahrscheinlich Bootstrap v3, in dem das Rechtfertigungs-Inhaltscenter nicht definiert ist.
Wenn ja, bitte Bootstrap aktualisieren, hat bei mir funktioniert.
quelle