2016-04-18 16 views
0

Ich möchte etwas Inhalt unter meiner navbar erscheinen lassen. Gerade jetzt sind mein Inhalt und meine Navbar übereinander gelegt. Ich bin mir nicht sicher, welche CSS-Eigenschaft hinzugefügt/geändert werden muss, um dieses Problem zu beheben. Ich glaube, ich sollte display: block; verwenden. Allerdings bin ich nicht sicher, wo es zu platzierendivs unter einander zu erscheinen CSS

hier ein jsfiddle eines Beispiels ist:

https://jsfiddle.net/liondancer/69z2wepo/39146/

Hier ist die JSX:

var Logo = React.createClass({ 
render: function() { 
    return (
    <a href="/"> Here </a> 
); 
} 
}) 

var NavBar = React.createClass({ 
    render: function() { 
    return (
     <div className="navigation"> 
       <div className="container"> 
        <Logo/> 
        <div className="site-navigation"> 
         <ul> 
          <li> 
           <a href="/gallery">Gallery</a> 
          </li> 
          <li> 
           <a href="/news">News</a> 
          </li> 
          <li> 
           <a href="/contact">Contact</a> 
          </li> 
         </ul> 
        </div> 
       </div> 
      </div> 
    ); 
    } 
}); 

var Content = React.createClass({ 
    render: function() { 
    return (
     <div className="content-container"> 
       This is home. 
      </div> 
    ); 
    } 
}) 

var Layout = React.createClass({ 
    render: function() { 
    return (
     <div> 
     <NavBar/> 
     <Content/> 
     </div> 
    ); 
    } 
}) 

ReactDOM.render(
    <Layout/>, 
    document.getElementById('container') 
); 

Hier ist die CSS:

.navigation { 
    position: absolute; 
    width: 100%; 
} 

.container { 
    position: relative; 
    width: auto; 
    padding: 0 50px; 
    margin: 10px auto 0px auto; 
    max-width: 1400px; 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
} 
.logo { 
    display: flex; 
    align-items: center; 
    margin: 0; 
    height: 45px; 
} 

.site-navigation { 
    float: right; 

} 

.site-navigation ul li{ 
    display: inline; 
} 

.site-navigation ul li a { 
    text-decoration: none; 
    padding: 25px; 
} 

.site-navigation ul li a:hover { 
    padding-bottom: 10px; 
    color: #FFFFFF; 
    transition: all 0.25s ease-in-out 0s; 
} 
+1

Das liegt daran, dass Ihre Navigations Klasse Position hat: absolute. Auch hast du wahrscheinlich deine Geige nicht gespeichert, weil sie eine Standard-Reaktionsgeige enthält. –

+0

@ Yevgeniy.Chernobrivets danke! Aktualisierte Frage – Liondancer

+0

Div-ID, Name und Klasse sind 3 separate Elemente innerhalb desselben Tags. Id und 'Name' sind immer gleich, also funktioniert das DOM. "Klasse" wird für Textstil und Position verwendet. Korrigiere zuerst deine Syntax. Der Ort von 'display: block; wird deutlicher werden. – Sparky256

Antwort

2

Entfernen Sie position: absolute; auf Ihrem .navigation und Sie werden die gewünschte Ausgabe haben.

Fiddle