2014-06-05 9 views
17

Ich habe ein seltsames Problem, mit dem ich Probleme habe. Also habe ich an diesem Prototyp html5 Vorlage gearbeitet, die flexbox verwendet. Obwohl ich auf ein kleines Problem gestoßen bin. Ich versuche ein kleines Leerzeichen an die Seitenleiste und den Inhaltsbereich der Vorlage, indem ich die Eigenschaft "justify-content" auf das Eltern-div anwendet. Es wird jedoch nicht der Abstand zwischen der Seitenleiste und dem Inhaltsbereich hinzugefügt. Ich bin mir nicht sicher, was ich falsch mache. Also, wenn mir etwas helfen könnte, wäre das großartig. Danke im Voraus!justify-content-Eigenschaft funktioniert nicht

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 die relevent 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 eine andere Stück von meinem CSS-Code in Bezug auf alle anderen Elemente meiner html braucht lass ich weiß, und ich werde es auch gerne in die Frage einfügen.

+0

Bitte stellen Sie sicher, es gibt keine Clearfix oder Pseudo-Code auf dem Element – Muhammed

Antwort

37

justify-contentNur hat einen Effekt, wenn nach dem Biegen des Flex-Elements noch Platz übrig ist, um den freien Speicherplatz zu absorbieren. In den meisten Fällen wird kein freier Speicherplatz mehr vorhanden sein, und justify-content wird tatsächlich nichts tun.

Einige Beispiele, wo es würde eine Wirkung haben:

  • wenn Ihr flex alle Einzelteile unflexibel (flex: none oder flex: 0 0 auto) sind, und kleiner als der Behälter.

  • Wenn Ihre flexiblen Elemente flexibel sind, aber nicht wachsen können, um den gesamten freien Speicherplatz zu absorbieren, aufgrund eines max-width auf jedem der flexiblen Elemente.

In diesen beiden Fällen justify-content würde der Verteilung des überschüssigen Raum verantwortlich sein.

In Ihrem Beispiel haben Sie jedoch Flex-Elemente, die flex: 1 oder flex: 6 ohne max-width Einschränkung haben. Deine flexiblen Gegenstände werden wachsen, um den gesamten freien Raum zu absorbieren, und es wird keinen Platz mehr für geben.

+1

Okay, danke. Ich konnte jedoch eine einfache Lösung finden. Ich habe gerade die Polsterung auf der linken Seite des Artikelcontainers hinzugefügt. Danach scheint alles perfekt zu funktionieren. – user3631048

+1

Danke! Die Angabe der Breite war die Lösung! – Crashalot

+0

Wenn Text in 'justify-content' vorhanden ist, ist dies unabhängig von den in dieser Antwort angegebenen Einschränkungen sinnvoll. –

2

Diese Antwort könnte dumm sein, aber ich verbrachte einige Zeit, um ein ähnliches Problem herauszufinden.

Was mir passiert ist, war ich nicht Set display: flex in den Container. Und natürlich funktioniert justify-content ohne diese Eigenschaft nicht.

Verwandte Themen