CSS was ist hier falsch?

nail745  12.01.2023, 22:14

Hast du es mit einem anderen Bild versucht?

Benjiexe 
Fragesteller
 12.01.2023, 22:44

nein habe ich nicht aber warum auch ? Ich möchte ja ein YouTube Icon haben in der Theorie liegt es nicht am YouTube Icon sondern irgendwo anders

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Mit dem grid-template-columns-Property gibst du vor, dass die dritte Spalte keinen Raum einnehmen soll. Vergib einen größeren Wert. Dann haben Link und Bild auch eigenen Platz, um richtig angezeigt zu werden.

(...) für allgemeine Code Verbesserungen (...)

In deinem HTML gibt es ein paar Fehler:

  1. Allen Bildern fehlt ein alt-Attribut.
  2. Dein letzter br-Tag ist falsch. Wenn du unbedingt den Slash einsetzen möchtest, dann gehört er hinter den Tagnamen. Um den Code einheitlich zu halten, wäre es dann aber auch gut, wenn du das bei jedem br-Tag (also auch dem Ersten) machen würdest.
<br />

Statt mit so vielen div-Elementen wäre es generell besser, semantisch ausdrucksstärkere Tags einzusetzen.

Beispiel (an einigen Stellen gekürzt):

<article class="teilnehmer-profil">
  <figure>
    <img alt="" height="100" src="castcrafter.jpg" width="100">
    <figcaption>CastCrafter</figcaption>
  </figure>
  <nav class="social-media-links">
    <a href="...">
      <img alt="Go to CastCrafters YouTube channel" ...>
    </a>
    <a href="...">
      <img alt="Go to CastCrafters Twitch profile" ...>
    </a>
  </nav>
</article>

Die Box für ein Profil beinhaltet einen abgeschlossenen inhaltlichen Bereich und kann daher gut durch ein article-Element repräsentiert werden. Da sich der Text konkret auf das Bild bezieht, kann man ein figure-Element nutzen und das alt-Attribut dafür getrost leer lassen, denn dessen Bedeutung erschließt sich nun eindeutig aus dem Kontext.

Die Links kann man entweder in einem Listenelement (z.B.) ul aufführen oder wie oben innerhalb eines nav-Elements auflisten. Auch eine Kombination aus beidem (Listenelement innerhalb eines nav) wäre passend.

Da es keinerlei Linktexte gibt, übernehmen die alt-Attribute der Bilder dessen Rolle.

Deinen CSS-Code müsstest du bei so einer Markupänderung logischerweise noch einmal ändern. Im einfachsten Fall lässt du die Containerelemente jeweils als Flexbox darstellen und verteilst die Breitengaben je Spalte dann mittels width-Property auf den einzelnen Subelementen oder du setzt je Container ein Grid ein.

Außerdem wäre es besser, du würdest Abstände via CSS setzen. Bei dir wäre es ein Außenabstand (s. margin-Property) von ungefähr 34-38px (ein Zeilenumbruch entspricht ~17-19px oder du orientierst dich an der Zeilenhöhe in deinem Dokument).

Das br-Element hingegen ist nur dazu gedacht, Zeilenumbrüche innerhalb von Textparagraphen zu erzwingen.

Benjiexe 
Fragesteller
 13.01.2023, 23:36

Hallo ich bedanke mich für das ganze korrigieren bzw. Tipps geben aber ich habe noch eine frage und zwar habe ich jetzt der dritten spalte raum gegeben jedoch ist von YouTube bis Twitch eine große Lücke die nicht sein sollte wie bekomme ich es so hin das die Lücke weg ist und die recht nahe beieinander sind?

0
regex9  13.01.2023, 23:44
@Benjiexe

Vermutlich sind die Spalten größer gesetzt als ihre Inhalte, die zudem auch noch zentriert werden.

0