HTML/CSS Problemchen

  • Hallo zusammen,

    ich tüftel mit einem Löffelchen Wissen mal wieder ein wieder an HTML herum und wirklich weit bin ich nicht... aber naja.
    Ich habe folgendes Problem: Ich habe eine Navigationsleiste

    Code
    <p id="Navi">
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Hauptseite|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Neuigkeiten|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Belege|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Computer|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Rennrad|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Links|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Impressum|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Kontakt|</a>
    </p>

    erstellt. Das Ganze habe ich mit einer ID versehen und möchte nun mit

    Code
    #Navi {
        color: #DC143C;
        text-align: center;
        font-family: monospace;
        font-weight: bold;
        text-decoration: none;
    }


    in meiner CSS (übrigens korrekt im <head> verbunden) beeinflussen. Leider klappt das nicht, zwar ist mit font-family etc. alles in Ordnung, leider sind die Links (wikipedia als ein bsp) nachwievor unterstrichen und haben auch nicht meine Wunschfarbe.

    Könnte mir da jemand helfen? Ich danke im Voraus :) Ich hoffe, dass ihr versteht, was ich meine.

    Einmal editiert, zuletzt von Retro92 (8. August 2015 um 22:39)

  • Danke euch beiden :) Das hat soweit funktioniert. Was kann ich machen, damit der Link beim Anklicken eine andere Farbe bekommt? Geht das nicht auch? (Vlt. sogar per Text-Decoration) Denn ohne text-decoration: none habe ich ja blau, mit rot beim Anklicken.

  • Bitte verwende für sowas nicht <p>. Es gibt dafür das <nav>-Tag! Ich würde das ganze auch noch in eine <ul> packen innerhalb des <nav>.

    Code
    <nav>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Hauptseite|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Neuigkeiten|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Belege|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Computer|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Rennrad|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Links|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Impressum|</a>
            <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseitea">|Kontakt|</a>
    </nav>

    Die Wunschformate musst du den Links dann noch geben. Der Selektor wäre dann also nav a. Für so Sachen wie hovern oder anklicken gibt es Pseudoklassen wie :hover und :active. Beispiel-CSS:

  • Danke dir :) Wusste noch gar nicht, dass man aus

    Code
    #Navi a

    noch ein

    Code
    #navi a: hover

    machen kann, also, dass noch etwas drangehängt wird. Nur rein aus Interesse, ginge das auch in "meiner" Form, als

    Code
    #navi {
    color: abc;
    hover:
    .
    .
    .

    Einmal editiert, zuletzt von Retro92 (8. August 2015 um 23:34)

  • So, ich habe mich noch ein wenig durchs Netz gelesen und versucht, eure Tipps zu berücksichtigen. So sieht nun meine Indexseite aus:

    Passt der Header so? Hatte vorher einen HTML 4.01 Header, der aber laut W3C Validator nicht passte.

    Das ist das CSS dazu:

    Freue mich über Kritik & Anregungen, bin ich permanent am Ausprobieren & Lernen.

  • Bitte <p> nur für Absätze verwenden. HTML5 bietet schöne Semantik-Tags. <br> bitte nicht für Abstände verwenden, dazu lieber in CSS Margins setzen. Da du ja auch einen Newsbereich ansprichst, bietet sich hier für die einzelnen Beiträge <article> an. Für die einzelnen Bereiche der Seite nimm am besten <section>. Das meta charset geht inzwischen kürzer.

    Neues HTML: http://pastebin.com/Pj8nBqwm

    Das CSS kann generell nahezu so bleiben. Ein Hinweis: Wenn du nur auf etwas bestimmtes verweisen willst, nutze > im Selektor. So würde "header" alle Header aufgreifen, während "body > header" nur den Header vom body und nicht von späterem nutzen kann.

    Neues CSS: http://pastebin.com/Sc5m3RCY

    Sehr lesenswert: http://html5doctor.com/element-index/ (Einfach mal bei ein paar Sachen auf "Our Prognosis" klicken für Beispiele)
    Beispiel für <article>: http://html5doctor.com/the-article-element/

  • Vielen Dank für deine Mühe :) Einiges verstehe ich auf Anhieb, bei

    Code
    section {
    margin-bottom: 2em;
    }


    verstehe ich es aber nicht. Denn Sections haben wir doch zwei, aber nur die untere (mit der id "News", welche die News enthält, wandert runter. Wie das?

  • Weil der Margin ja bottom ist, sprich untendrunter. Mach nen margin-top draus, wenn du ihn lieber drüber haben willst.

  • Ja, das sollte sich definitiv auf beide auswirken. Mach mal in Chrome einen Rechtsklick und sag "Element untersuchen". Dann kannst du im neuen Bereich über die section-Einträge wandern und Chrome zeigt dir live, wie die Margins verlaufen.

  • Prima! Jetzt verstehe ich das viel besser :) Ich habe auch gleich verstanden, was los ist. Ich habe mir selbst das Leben schwer gemacht und die erste section, die ja die id "welcome" hat, bereits mit einer margin versehen. :rolleyes:

  • Dieses Menü von Chrome ist eh super. Du kannst oben rechts einfahc mal live mit Werten rumspielen, bevor du sie in der CSS-Datei implementierst.

  • Habe noch ein paar Sachen ausprobiert, die soweit auch ganz gut funktioniert haben. Beim Thema Bilder und "float" komme ich jedoch nicht weiter.

    Ich habe da nun ein Bild gefügt (irgendeines) Das Bild ist nun prima an der rechten Seite und zoomt auch prima mit, wenn ich die Seite vergrößere. Aber was ist das in der normalen Ansicht? Gefühlt hängt es mittendrin und verdrängt alles Andere..

    Kann das Bild noch verschoben werden? Oder habe ich das einfach nur doof gemacht mit der nicht-anpassbaren <hr> darunter?

    Was ich auch noch fragen wollte: Wie kann ich im css eigentlich eine ganz bestimmte HTML-Sache erreichen? Ich habe nun zwei <sections>, beide mit Headern etc. Jetzt möchte ich in der zweiten Section im ersten Paragraphen das zweite Bild formatieren. Kann ich dem Bild eine Klasse geben? Oder ist das per ">" erreichbar?

    Danke :)

  • Generell empfehle ich immer, Bilder in das Tag <figure> mit reinzupacken. Dann kann man bei Bedarf auch mit <figcaption> Untertitel machen und so.

    Zitat

    Jetzt möchte ich in der zweiten Section im ersten Paragraphen das zweite Bild formatieren. Kann ich dem Bild eine Klasse geben? Oder ist das per ">" erreichbar?


    Dafür gibts die Pseudoklasse nth-of-type:
    section:nth-of-type(2) > p:nt-of-type(1) > figure:nth-of-type(2)
    Du kannst auch etwa mit odd und even statt ner Zahl gerade und ungerade Vorkommen ansprechen.

    Für die Bildfrage brauche ich mal dein aktuelles CSS, damit ich sehe was genau drinsteht. Was ich jedoch sehe: Bitte kein width= und height= mehr verwenden, das ist inzwischen veraltet, da das designbezogene Sachen sind. Dafür gibts CSS. Spätestens wenn du später mal dynamische Größen in CSS machst, machst du dir mit so festen Werten sonst alles kaputt.

  • Danke dir! Mit figure setze ich mich nachher auseinander, bin gleich erstmal weg. Hier auf die schnelle das CSS:


    Das img-Zeug habe ich erstmal ganz pauschal gemacht, daher auch meine Frage dem Erreichen von verschachtelten Elementen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!