2016-05-24 20 views
-1

Ich habe eine einfache Website, die ich von Grund auf neu gemacht habe. Ich habe mit dem Layout meines Kopfes verwirrt:Positionierungselemente in einem div

  • H1 Titel
  • Textzeile
  • Logo
  • Menü (Codierung von w3school)

Diese vier sind in meinen div-Header. Ich würde gerne in der Lage sein, sie zu positionieren, wo immer ich möchte. Das Problem, das ich habe, ist, dass ich nicht sicher bin, welche Codierung dafür verwendet werden soll (Rand, Position: relativ oder absolut, Padding, oben :, rechts: usw.).

Ich habe alle Arten von Kombinationen ausprobiert, aber es scheint, dass sie nie positionieren, wo ich sie haben will und sie gegenseitig die Position versauen: Das Menü verliert volle Breite, das Logo kann ich nicht schön mit dem gleichen Abstand zwischen oben bekommen und rechts von header div, die H1 und tag scheinen nicht auf die Pixel zu reagieren, die ich gesetzt habe, und so weiter.

Könnte sich jemand bitte die Zeit nehmen und meinen Code anschauen und mit einem Vorschlag kommen, wie man dieses Layout stabil macht?

enter image description here

<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
 
<head> 
 
<title></title> 
 
<style type="text/css"> 
 
body { 
 
\t background-color: #F8F8F8; 
 
\t } 
 

 
#page { 
 
\t width: 900px; 
 
\t margin: 30px auto; 
 
\t background-color: #FFFFFF; 
 
\t } 
 

 
#header { 
 
\t height: 377px; 
 
\t width: 100%; 
 
\t background-image: url(images/banner.jpg); 
 
\t background-repeat: no-repeat; 
 
\t background-position: 0px 0px; 
 
\t } 
 

 
#header a { 
 
\t color: black; 
 
\t text-decoration: none; 
 
\t } 
 
\t 
 
#header ul { 
 
\t list-style-type: none; 
 
\t margin-top: 0; 
 
\t padding: 0; 
 
\t overflow: hidden; 
 
\t background-color: #3399FF; 
 
\t position: relative; 
 
\t top: 264px; 
 
\t } 
 
\t 
 
#header li { 
 
\t float: left; 
 
\t } 
 
\t 
 
#header li a { 
 
\t display: inline-block; 
 
\t color: white; 
 
\t text-align: center; 
 
\t padding: 14px 16px; 
 
\t text-decoration: none; 
 
\t } 
 

 
#header li a.active { 
 
    background-color: gray; 
 
    } 
 

 
#header li a:hover:not(.active){ 
 
\t background-color: #3366CC; 
 
\t } 
 

 
.p1 { 
 
\t font-family: Consolas, monaco, monospace; 
 
    font-size: 20px; 
 
\t position: relative; 
 
    top: 28px; 
 
\t left: 50px; 
 
\t } \t \t 
 
\t 
 
.p2 { 
 
    font-family: Consolas, monaco, monospace; 
 
\t font-size: 16px; 
 
    position: relative; 
 
    top: 5px; 
 
\t left: 200px; 
 
\t } 
 

 
.logo { 
 
\t float: right; 
 
\t position: relative; 
 
\t top: 8px; 
 
\t right: 8px; 
 
\t } 
 
\t 
 
#content { 
 
\t position: relative; 
 
\t top: 12px; 
 
\t left: 10px; 
 
\t } 
 
\t 
 
#footer { 
 
\t font-size: 14px; 
 
\t padding-top: 12px; 
 
\t padding-bottom: 12px; 
 
\t text-align: center; 
 
\t border-top: #D3D3D3 0.5px solid; 
 
\t } 
 
</style> 
 
</head> 
 
<body> 
 
<div id="page"> 
 
<div id="header"> 
 
<img class="logo" src="images/logo-d.png"> 
 
<span class="p1"><a href="http://www.finasteride-kopen.nl"><h1>This is my H1 Title</h1></a></span> 
 
<span class="p2">"This is going to be my tag under H1"</span> 
 
<ul> 
 
<li><a class="active" href="">Link menu</a></li> 
 
<li><a href="">Link menu 2</a></li> 
 
<li><a href="">Link menu 3</a></li> 
 
<li><a href="">Link menu 4</a></li> 
 
<li><a href="">Link menu 5</a></li> 
 
<li><a href="">Link menu 6</a></li> 
 
</ul> 
 
</div> 
 
<div id="content"> 
 
<h1>H1 Title of the page content<h1> 
 
<p></p> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
</br> 
 
<p></p> 
 
</div> 
 
<div id="footer"> 
 
The footer of the page 
 
</div> 
 
</div> 
 
</div> 
 
</body> 
 
</html>

Antwort

0

Erster Vorschlag: Versuchen einer Webseite als Liste von Objekten zu denken, anstatt ein Poster usw. Bildschirmgrößen variieren (Desktop/Mobile) und Sie sollten relativ verwenden Breiten und Positionen, um die Reaktionsfähigkeit Ihrer Website zu gewährleisten. Ich bin sicher, dass Sie eine bessere Vorlage finden können, an der Sie arbeiten können.

Zweiter Vorschlag: Wenn Sie ein Element „überall“ positionieren wollen dies ist ein Beispiel für die richtige Verwendung der Positionierung:

<style> 
.floatingdiv { 
position:absolute; 
right:0; 
top:0; 
} 
</style> 
<div class="floatingdiv"> 
<h1>Header</h1> 
</div> 
+0

Dies ist kein Vorlage. Ich habe es selbst gemacht (daher die Probleme). Dieser Code sieht mir am vertrautesten aus und ich werde es versuchen. Aber ich habe Positionsstil verwendet und es schien die Position des anderen Inhalts im Div-Header zu beeinflussen. – Stryker79

0

Setzen Sie den Inhalt des Headers in einer ungeordneten Liste als so. Wenn Sie ein responsives Framework wie Bootstrap verwenden, wird das völlig anders sein - aber da Sie es nicht spezifiziert haben, ist hier ein Beispiel ohne Framework.

HTML

<div id="header> 
<ul> 
    <li><h1>Your Title</h1></li> 
    <li><p>some line of text you wanted</p></li> 
    <li class="logo"><a href="index.html"><img src="yourlogo.png" /></a></li> 
    <li class="spacer"></li> 
    <li><a href="somepage.html>Some Page</a></li> 
    <li><a href="somepage.html>Some Page</a></li> 
    <li><a href="somepage.html>Some Page</a></li> 
</ul> 
</div> 

CSS

#header ul { 
    list-style-type: none; 
    margin: 0; 
    padding: 0; 
} 

#header li{ 
    padding: 0 20px; 
    display: inline; 
} 

#header li.spacer{ 
    width:10% 
} 
+0

Ich verwende kein Bootstrap. Ich werde diesen Code ausprobieren. – Stryker79

0

Es ist nur ein Fall von der divs richtig zu strukturieren, wie Holle weist darauf hin, das eine Liste von Objekten ist eher als ein Plakat. Ich denke, das Hauptproblem, das Sie bei der Positionierung haben, ist, dass Sie die Grundlagenstruktur in Ihrem HTML nicht zum Manipulieren nutzen können.

Ich würde empfehlen, ein Container Div für jeden Abschnitt und dann weitere divs oder andere Inhalte innerhalb dieser. das heißt

<div id="headerContainer"> 
    <h1>Title</h1> 
    <img id="logo" src="myImagePath"> 
</div> 
<div id="navigation"> 
     <!-- Navigation Bar, your UL list items --> 
</div> 
<div id="pageContent"> 
     <!-- More content... <img>s, <p>s, <h1>s, probably more divs to structure the content etc--> 
</div> 

Ich hoffe, das hilft, wenn Sie einen Vorschlag wollen, ist ein ein DevTips youTube Kanal schauen zu nehmen, er ist großartig, die Gestaltung und Strukturierung Stufen zu erklären, wenn der Aufbau einer Website.

Auch in Bezug auf die Positionierung Besuche Flexbox Froggy (Google es), nur bewusst sein, die Browser-Unterstützung nicht fantastisch ist, bevor Sie springen.

Cheers, James

+0

Danke für die Referenzen. Empfiehlst du irgendwelche Lehrbücher zum Selbststudium? – Stryker79

+0

Kein Problem, ein Typ, mit dem ich arbeite, nutzte dies - https://www.amazon.de/HTML-CSS-Design-Build-Sites/dp/1118008189 und ich habe es angeschaut, es ist wirklich sehr einfach und erklärt die Dinge gut. –

+0

Kein Problem, ein Typ, mit dem ich arbeite, benutzte dieses - [link] (https://www.amazon.de/HTML-CSS-Design-Build-Sites/dp/1118008189) und, es vermeidet wirklich viel Fachjargon, es ist einfach und erklärt die Dinge gut, macht auch einen guten Nachschlagewerk. Als ich anfing zu lernen, fand ich einige nützliche Ressourcen, es ist sehr wichtig, die Grundlagen zu verstehen und sicherzustellen, dass man wirklich versteht (nicht wie man den Code schreibt, das Verständnis, wie der Code funktioniert). schreibe es und frage einfach in einem Forum nach Feedback, wie du die Dinge besser machen kannst, die Kritik der Leute ist besser als ein Buch imo –