• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hilfe bei meinem Projekt - diverse Fragen

Chizzo

Mitglied
Hallo,

bisher kam ich wirklich besser voran als ich dachte. Ich weiss, es ist noch nicht viel, aber es ist schon mal ein Anfang. Nun stoße ich (Und Google) allerdings bereits an die Grenzen unseres Könnens. Ich poste mal die HTML- und CSS-Code und stelle darunter die Fragen.

HTML:
<!DOCTYPE html>
<html lang="de">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Koch und Back</title>
    <link rel="stylesheet" href="stylesheet.css">
  </head>
  <body>

    <header>
    <img src="../img/Titelbild.jpeg" width="1000px" height="400px" </img>
    <nav>
        <ul>
        <li> <a href="Startseite.html">Startseite</a></li>
        <li tabindex="0"> <a href="Rezepte.html">Rezepte</a>
            <ul class="submenu">
            <li tabindex="0"><a href="Low Carb.html">Low Carb</a></li>
            <li tabindex="0"><a href="Fettige Sachen.html">Fettige Sachen</a></li>
            </ul>
        </li>
        <li> <a href="Impressum.html">Impressum</a></li>
        </ul>
    </nav>
    </header> 
    <div id="inhalt">
 
    <p>Hier kommt mal der Inhalt rein..lalalal alhsflasdhfldsahfkla shfdgfsd gsdgsdgsdgsdgsdgsdfkasdjfhasd kljfhe4wi9f hasfhsadopfhadsofhadsfhasjld.</p>   
    <p> halleluja</p>
    <p> halleluja</p>
    <p> halleluja</p>

 
    <p><img src="../img/Koch1.jpg" width="500" heigth="300" alt="Bildvonessen"</img></p>
 
    </div>
    </div>
    <footer></footer>
 
  </body>
</html>

Code:
nav > ul {
    
    
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    
}

nav ul {
    
    margin-top: -5px;
    margin-bottom: -20px;

}

nav li {
    
    
    border-right-width: 1px;
    border-right-color: black;
    border-right-style: solid;
    font-family: Arial;
    width: 200px;
    margin: 0.5em;
    padding: 0;
    font-size: 1.5rem;
    flex: 1 1 0%;
}

@media (min-width: 45em) {
    nav > ul {
        flex-direction: row;
    }
    nav li {
        flex: 1;
        font-size: 1em;
    }
}

nav a {
    display: block;
    padding: 0.4em;
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    box-shadow: 0 5px 10px white inset;
    color: black;
    transition: all .25s ease-in;
}

nav li[aria-current] a {
    background-color: firebrick;
    color: gold;
}

nav a:focus,
nav a:hover,
nav li[aria-current] a:focus,
nav li[aria-current] a:hover {
    color: darkblue;
    background-color: gold;
}
/*     submenu navigation links      */

nav .submenu {
    width: 500px;
    position:absolute;
    visibility: hidden;
    height: 0;
    z-index: 1000;
}

nav .submenu li {
    display: block;
    /* width: 15em; */
}
/**     Show the submenu on hover, focus     **/

nav li:hover .submenu,
nav li:active .submenu,
nav li:focus .submenu,
nav li:focus-within .submenu {
    visibility: visible;
    height: auto;
}



body {
    padding:50px;
    border: 2px;
    margin:0 auto;
    height:100%;
    background-color: grey;
}

p {
    font-family: impact;
    font-size: 20px;
}

h1 {
    
    width: 1000px;
    background-color: green;
}

#inhalt {
    
    width: 990px;
    background-color: white;
    padding-left: 10px;
    
}

nav {
    
    width: 1000px;
    background-color: white;
}


-----------------------

Meine Fragen bis hierher:

1. Ich möchte in meiner Navigationsleiste, dass zwischen den Seiten ein Trennungsstrich ist. Mit Border-Right ist leider auch rechts der letzten Seite ein Trennungsstrich. Wie bekomme ich das gelöst?

2. Im Inhalt bekomme ich mit Padding-Left: 10px den Inhalt zwar 10 px vom linken Rand weg, aber leider ragt die ganze Box dann auch 10 px aus dem rechten Rand raus. Mit width: 990 px bekomme ich das zwar optisch gelöst - aber ist das auch elegant? Wahrscheinlich ja nicht^^ Was kann ich hier machen?

3. Ich möchte, dass mein Drop-Down-Menü genau die gleiche Breite hat, wie die "Eltern". Wie bekomme ich das hin?

Vielen Dank im Voraus!
 
Werbung:
1. kann man sehr schnell beantworten: Informiere dich über die Pseudoklassen :not und :last-child.
Perfekt, danke! Beim ersten Versuch mit :last-child hinbekommen! :-)

Eine 4. Frage hätte ich auch noch: Um zwischen header, nav und body die Lücken zu schließen habe ich mit Minus-Paddings gearbeitet. Ist das ok oder gibt es auch da elegantere Lösungen?
 
meistens bekommst du sowas schon geregelt wenn du ganz am Anfang der css das schreibst
CSS:
*{
  margin:0;
  padding:0;
}

EDIT : Bei Fiddel funktioniert es bei deinen Script auch .
 
Werbung:
Schritt 1:
Korrigiere deinen <img...> Tag! Da steht in deinem Code...
HTML:
<img src="../img/Titelbild.jpeg" width="1000px" height="400px" </img>
Das ist so falsch wie es nur sein kann - ein Wunder, dass der Browser da überhaupt was anzeigt ;)!
Richtig wäre
HTML:
<img src="../img/Titelbild.jpeg" width="1000" height="400">
Der selbe Fehler ist auch bei dem zweiten Bild, das du eingefügt hast.

Schritt 2:
In HTML 5 werden Bilder per default mit der Formatierung 'vertical-align: baseline;' eingefügt - und das erzeugt diese 'Lücke', denn baseline ist nicht ganz unten.
Um die Lücke weg zu bekommen musst du dem <img> die Formatierung 'vertical-align: bottom;' geben.
 
Werbung:
Ach herrje, der Teufel liegt hier wirklich im Detail... :-D

Bilder sind korrigiert, das überflüssige /div ist weg. Allerdings bekomme ich die Lücke zwischen Titelbild und Navigation auch mit vertical-align nicht weg. Habe dem Bild sogar extra ein eigenes div gegeben, aber es tut sich leider nichts.

Die absoluten Breiten sind raus. Welche Abstände sind denn - auch im Hinblick auf späteres Responsive Design - die empfehlenswertesten? Ich habe dem Body aktuell ein padding von 15% gegeben.

Und wie bekomme ich mein Titelbild automatisch an die Breite der Seite angepasst? Ist das überhaupt möglich, ohne dass das Bild verzerrt?
 
poste bitte deinen neuen, korrigierten Code... kann nicht sein, dass die Lücke mit vertical-align: nicht weg ist!
für deinen body könntest du mal versuchen...
CSS:
body {
    width: 100%;
    max-width: 1000px;
    padding: 5px;
    margin: 0 auto;
}
 
Ich habe auch noch zwei kleinigkeiten zum verbessern gefunden.
Einmal hast du hier
CSS:
body{
      border: 5px;
}
siehst du ja das müßte dann so heißen zb border:5px solid black;
Das hier
Code:
nav li{
      border-right-width:1px;
    border-right-color: black;
    border-right-style: solid;
}
Könntest du so abkürzen
border-right:1px solid black;
und zum schluß ,das wissen aber @Sailor und @Sempervivum besser als ich.Hast du 2 verschieden Werte eingegeben
Code:
nav li{
  width:200px;
  flex:1;
}
Habe das zusammen gefasst ,aber es wahr in 2 verschiedene dinger drinne.
Ich glaube das eins von den beiden reicht weil die Felder ja gleich gross sind.
Aber genau weiß ich das nicht das wissen die beiden besser
 
Werbung:
Um das Bild responsive zu bekommen, lösche die width und heigt Angaben im <img> Tag und schreibe ins CSS
img {width: 100%;]
 
Es sieht langsam ganz ansehnlich aus, aber das mit dem Bild will einfach nicht gelingen ... weder in der Größe, noch im Abstand...

HTML:
<!DOCTYPE html>
<html lang="de">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Koch und Back</title>
    <link rel="stylesheet" href="stylesheet.css">
  </head>
 
  <body>

    <header>
    
    <div id="titelbild">
    <img src="../img/Titelbild.jpeg">
    </div>
    
    <nav>
        <ul>
        <li> <a href="Startseite.html">Startseite</a></li>
        <li tabindex="0"> <a href="Rezepte.html">Rezepte</a>
            <ul class="submenu">
            <li tabindex="0"><a href="Low Carb.html">Low Carb</a></li>
            <li tabindex="0"><a href="Fettige Sachen.html">Fettige Sachen</a></li>
            </ul>
        </li>
        <li> <a href="Impressum.html">Impressum</a></li>
        </ul>
    </nav>
    </header>
    
    <div id="inhalt">
 
    <p>Hier kommt mal der Inhalt rein..lalalal alhsflasdhfldsahfkla shfdgfsd gsdgsdgsdgsdgsdgsdfkasdjfhasd kljfhe4wi9f hasfhsadopfhadsofhadsfhasjld.</p>   
    <p> halleluja</p>
    <p> halleluja</p>
    <p> halleluja</p>

 
    <p><img src="../img/Koch1.jpg" width="500" heigth="300" alt="Bildvonessen"> </p>
 
    </div>
    <footer></footer>
 
  </body>
</html>

CSS:
 *{
    margin:0;
    padding:0;
}

#titelbild {
    
    width: 100%;
    max-width: 1000px;
    vertical-align: bottom;
}

nav > ul {
    
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    
}

nav ul {
    
    
    

}

nav li {
    
    
    border-right: 1px solid black;
    font-family: Arial;
    margin: 0.5em;
    padding: 0;
    font-size: 1.5rem;
    flex: 1 1 0%;
}

:last-child {
    border-right: none;
}

@media (min-width: 45em) {
    nav > ul {
        flex-direction: row;
    }
    nav li {
        flex: 1;
        font-size: 1em;
    }
}

nav a {
    display: block;
    padding: 0.4em;
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    box-shadow: 0 5px 10px white inset;
    color: black;
    transition: all .25s ease-in;
}

nav li[aria-current] a {
    background-color: firebrick;
    color: gold;
}

nav a:focus,
nav a:hover,
nav li[aria-current] a:focus,
nav li[aria-current] a:hover {
    color: darkblue;
    text-decoration: underline;
    
}
/*     submenu navigation links      */

nav .submenu {
    position:absolute;
    visibility: hidden;
    height: 0;
    z-index: 1000;
}

nav .submenu li {
    display: block;
    /* width: 15em; */
}
/**     Show the submenu on hover, focus     **/

nav li:hover .submenu,
nav li:active .submenu,
nav li:focus .submenu,
nav li:focus-within .submenu {
    visibility: visible;
    height: auto;
}



body {
    width: 100%;
    max-width: 1000px;
    padding: 5px;
    margin:0 auto;
    height:100%;
    background-color: #1F677C;
}

p {
    font-family: impact;
    font-size: 20px;
}


#inhalt {
    
    background-color: white;
    padding-left: 10px;
    
}

nav {
    padding-right: 20%;
    padding-left: 20%;
    background-color: white;
}
 
Dann machst du jetzt als erstes folgendes... füge die Codes zum richtigen Element hinzu!!!!
CSS:
#titelbild img {
    width: 100%;
    vertical-align: bottom;
}
 
Werbung:
Vielen Dank euch! Mit vielen Dingen bin ich mittlerweile ganz zufriden, allerdings lässt hier ein Element meinen Body-Background auf die Höhe des Textes zurückgehen... habe jetzt viel rumprobiert, aber es will nicht funktionieren. Wie bekomme ich den Body-Background verlängert?

xxx.png

HTML:
<!DOCTYPE html>
<html lang="de">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Koch und Back</title>
    <link rel="stylesheet" href="stylesheet.css">
  </head>
 
  <body>

    <header>
    
    <div id="titelbild">
    <img src="../img/Titelbild.jpeg">
    </div>
    
    <nav>
        <ul>
        <li> <a href="Startseite.html">Startseite</a></li>
        <li tabindex="0"> <a href="Rezepte.html">Rezepte</a>
            <ul class="submenu">
            <li tabindex="0"><a href="Low Carb.html">Low Carb</a></li>
            <li tabindex="0"><a href="Fettige Sachen.html">Fettige Sachen</a></li>
            </ul>
        </li>
        <li> <a href="Impressum.html">Impressum</a></li>
        </ul>
    </nav>
    </header>
    
    <div id="inhalt">
    
    
    <div id="Bild1"
    <p><img class="links" src="../img/Koch1.jpg" alt="Bildvonessen"> </p>
    
    </div>
    
    <p><b>Spaghetti Bolognese </b></p>
    <p> Diese Spaghetti Bolognese ist einfach das Highlight bei jedem Abendessen. Sowohl Kinder, als auch Erwachsene werden sie leben, denn sie schmeckt einfach unglaublich lecker!</p>
    </div>
    
    
    
    
    
    <footer></footer>
 
  </body>
</html>

CSS:
 *{
    margin:0;
    padding:0;
}


#titelbild img {
    width: 100%;
    max-width: 1000px;
    vertical-align: bottom;
}



nav > ul {
    width: 100%;
    max-width: 1000px;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    
}




nav li {
    width: 100%;
    max-width: 1000px;
    border-right: 1px solid black;
    font-family: Arial;
    padding: 0;
    font-size: 1.5rem;
    flex: 1 1 0%;

}

:last-child {
    border-right: none;
}

@media (min-width: 45em) {
    nav > ul {
        flex-direction: row;
    }
    nav li {
        flex: 1;
        font-size: 1em;
    }
}

nav a {
    display: block;
    padding: 0.4em;
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    color: black;
    transition: all .25s ease-in;

}

nav li[aria-current] a {
    background-color: firebrick;
    color: gold;
}

nav a:focus,
nav a:hover,
nav li[aria-current] a:focus,
nav li[aria-current] a:hover {
    background-color: #059B15;
    color: white;   
}
/*     submenu navigation links      */

nav .submenu {
    position:absolute;
    visibility: hidden;
    width: 100%;
    max-width: 333px;
    height: 0;
    z-index: 1000;
}

nav .submenu li {
    display: block;
    /* width: 15em; */
}
/**     Show the submenu on hover, focus     **/

nav li:hover .submenu,
nav li:active .submenu,
nav li:focus .submenu,
nav li:focus-within .submenu {
    visibility: visible;
    height: auto;
    background-color: #E5E5E5;
}



body {
    width: 100%;
    max-width: 1000px;
    padding: 5px;
    margin:0 auto;
    height:100%;
    background-color: #000000;
}

#Bild1 img {
    width: 400px;
    margin: 5px;
}



p {
    font-family: Arial;
    font-size: 20px;
}


#inhalt {
    
    background-color: white;
    padding-top: 10px;
    padding-left: 10px;

    
}

nav {

    background-color: white;
}

.links {
    float:left;
    margin-right: 10px;
}
 
Wie jetzt... du hast für deinen <body> die Hintergrundfarbe schwarz angegeben... background-color: #000000; ... und ? So ist es - der Hintergrund ist schwarz.
 
Werbung:
Zunächst mal muss du dein HTML korrekt schreiben..
da steht zB
<div id="Bild1"
<p><img class="links" src="../img/Koch1.jpg" alt="Bildvonessen"> </p>

</div>
Da fehlt die schließende Klammer hinter id="Bild1"
so muss das richtig sein..

<div id="Bild1">
<p><img class="links" src="../img/Koch1.jpg" alt="Bildvonessen"> </p>

</div>
Mach das richtig und dann sehen wir weiter.
 
Hallo nochmal. Ich bin mittlerweile ein gutes Stück weiter gekommen. Die ersten "Artikel" sitzen, die Fußzeile sitzt... ich frage mich aber, ob ich das, dass die Schrift direkt links neben den Bildern auftaucht, anders lösen kann, als mit "XX px" und ausprobieren?

yyy.png

HTML:
<!DOCTYPE html>
<html lang="de">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Koch und Back</title>
    <link rel="stylesheet" href="stylesheet.css">
  </head>
 
 
 
  <body>

    <header>
    
    <div id="titelbild">
    <img src="../img/Titelbild.jpeg" alt="Titelbild">
    </div>
    
    <nav>
        <ul>
        <li> <a href="Startseite.html">Startseite</a></li>
        <li tabindex="0"> <a href="Rezepte.html">Rezepte</a>
            <ul class="submenu">
            <li tabindex="0"><a href="LowCarb.html">Low Carb</a></li>
            <li tabindex="0"><a href="FettigeSachen.html">Fettige Sachen</a></li>
            </ul>
        </li>
        <li> <a href="Impressum.html">Impressum</a></li>
        </ul>
    </nav>
    </header>
    
    <div id="inhalt">
    
    
    
    <div id="Bild1">
    <p><img class="links" src="../img/Koch1.jpg" alt="Bildvonessen"> </p>
    </div>
    
    <div class="Text1">
    <p><b>Spaghetti Bolognese </b></p>
    <p> Diese Spaghetti Bolognese ist einfach das Highlight bei jedem Abendessen. Sowohl Kinder, als auch Erwachsene werden sie leben, denn sie schmeckt einfach unglaublich lecker!</p>
    </div>
    
    <div id="Bild2">
    <p><img class="links2" src="../img/Wrap1.jpg" alt="Bildvonessen2"> </p>
    </div>
    
    <div class="Text2">
    <p><b>Wraps mit Käsesauce</b></p>
    <p> Diese Wraps sind einfach der absolute Oberwahnsinn! Sie sind so locker zart, dass man mit ihnen kuscheln möchte!</p>
    </div>
    
    

    </div>
    
    
    <div id="footer">
    <footer><p> Eigentum von XXX / Das hier ist die Fußzeile</p></footer>
    </div>
 
  </body>
</html>


CSS:
 *{
    margin:0;
    padding:0;
}


#titelbild img {
    width: 100%;
    max-width: 1000px;
    vertical-align: bottom;
}



nav > ul {
    width: 100%;
    max-width: 1000px;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    
}




nav li {
    width: 100%;
    max-width: 1000px;
    border-right: 1px solid black;
    font-family: Arial;
    padding: 0;
    font-size: 1.5rem;
    flex: 1 1 0%;

}

:last-child {
    border-right: none;
}

@media (min-width: 45em) {
    nav > ul {
        flex-direction: row;
    }
    nav li {
        flex: 1;
        font-size: 1em;
    }
}

nav a {
    display: block;
    padding: 0.4em;
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    color: black;
    transition: all .25s ease-in;

}

nav li[aria-current] a {
    background-color: firebrick;
    color: gold;
}

nav a:focus,
nav a:hover,
nav li[aria-current] a:focus,
nav li[aria-current] a:hover {
    background-color: #059B15;
    color: white;   
}
/*     submenu navigation links      */

nav .submenu {
    position:absolute;
    visibility: hidden;
    width: 100%;
    max-width: 333px;
    height: 0;
    z-index: 1000;
}

nav .submenu li {
    display: block;
    /* width: 15em; */
}
/**     Show the submenu on hover, focus     **/

nav li:hover .submenu,
nav li:active .submenu,
nav li:focus .submenu,
nav li:focus-within .submenu {
    visibility: visible;
    height: auto;
    background-color: #E5E5E5;
}



body {
    width: 100%;
    max-width: 1000px;
    padding: 5px;
    margin:0 auto;
    height:100%;
    background-color: #000000;
}

#Bild1 img {
    width: 400px;
    margin: 5px;
}

#Bild2 img {
    clear:both;
    width: 400px;
    margin: 5px;
}


p {
    font-family: Arial;
    font-size: 20px;
}


#inhalt {
    
    background-color: white;
    padding-top: 10px;
    padding-left: 10px;
    min-height: 840px;

    
}



nav {

    background-color: white;
}

.links {
    
    float:left;
    margin-right: 10px;
}


.links2 {
    float:left;
    margin-right: 10px;
}

.Text2 {
    margin-top: 215px;
}











#footer {
    
    background-color: yellow;
    position:absolute;
    width: 100%;
    max-width: 1000px;
    margin:0 auto;
    color: blue;
}
 
Werbung:
In Internet Explorer + Chrome sieht das allerdings leider total verzogen aus. Die Schrift beginnt nicht bündig mit dem Bild..
 
Vielen Dank, ihr seid wirklich spitze hier! Gerade getestet, sieht super aus!

Kann ich eigentlich auch irgendwie vom PC aus eine mobile Ansicht "erzwingen"?
 
Zurück
Oben