HTML CSS fieldset oder nicht fieldset / Das ist hier die Frage

D0bby

Cadet 4th Year
Registriert
Aug. 2023
Beiträge
90
Moin

ich brauch mal input aus der echten Welt. Ich habe gerade eine Übungsseite und möchte dort eine Skill-Card machen.
Alles in einem 8Bit Retro Theme und deshalb soll auch über der Card quasi der Name stehen und die Border genau in diesem Berreich unterbrochen werden.

Nun bekomm ich das recht Simpel hin via fieldset - nur ist das so korrekt? Denn eigentlich gehören da ja nur Formulare etc. rein.
Überdenke ich da das Thema Semantik und einfach nutzen oder da jetzt deutlich mehr aufwand und gucken wie ich es anders löse?

HTML:
            <fieldset class="retro-box">
                <legend class="retro-title">Skills</legend>
                <div class="retro-content">
                    <p>HTML</p>
                    <p>CSS</p>
                    <p>JavaScript</p>
                </div>
            </fieldset>

CSS:
.retro-box {
  position: relative;
  width: 300px;
  border: 2px solid white;
  padding: 1rem;
  background-color: rgba(255, 255, 0, 0.05);
  font-family: 'Press Start 2P', cursive;
  margin: 3rem auto;
}

.retro-title {
  color: white;
  font-size: 0.8rem;
  padding: 0 0.5rem;
}
 
Hi...

Einfach nutzen, was für Dich praktikabel zur Zielerreichung erscheint - es wird sowieso zu viel Relevanz in die "Auszeichnungskonformität" gelegt, der Browser muß nur den Code interpretieren können. 🤷‍♂️
Das Element ist lt. Spezifizierung nur an "flow content" gebunden und kann ansonsten frei genutzt werden - mit dem Attribut disabled kann es auch von jeglicher "Aktivität", bspw. als interagierendes Formular-Element, ausgeschlossen und nur mit szs. visueller Funktion belegt werden.
Hab' ich auch schon so "mißbraucht". 😉
Btw.:
Quelle: https://de.wikipedia.org/wiki/Semantik schrieb:
Die Semantik steht jeweils der Syntax (in der Semiotik meist: „Syntaktik“) gegenüber, bei der es um die Kombination von Zeichen zu größeren Einheiten geht, und ferner der Pragmatik als der Theorie der Zeichenverwendung. Eine klare Abgrenzung ist aus verschiedenen Gründen umstritten.​
 
  • Gefällt mir
Reaktionen: netzgestaltung und D0bby
User007 schrieb:
der Browser muß nur den Code interpretieren können
Ich würde das Thema "SEO" nicht ganz außen vor lassen. Ich kann mir gut vorstellen, dass die Crawler durch sowas auch verwirrt werden könnten.
 
  • Gefällt mir
Reaktionen: D0bby
Stand jetzt "genau so verwirrt wie vorher". :freak:

Ich glaub ich werd es jetzt erst mal so weiter machen, da mich das sonst zu lange aufhällt - ABER im hinterkopf behalten. Denn ich habe auf der Seite ein Hintergrund IMG und über die sonst typischen lösungen bekomme ich einen Hässlichen Balken an dem span Title
 
sh. schrieb:
genau so meine ich dass - aber es zeigt auch genau mein Problem auf.
Du änderst ja mit .card-title quasi nur den Hintergrunde und bekommst so eine Unterbrechung.

Wenn die Website jetzt aber einen Hintergrund hat der Struktruriert ist oder ein img etc. dann klappt diese Methode nicht mehr und du brauchst eine echte Unterbrechung.
Ich denke Man könnte das via Border left right bottom machen und dann before und after sich da ein strich dran basteln. Aber geil find ich das nicht^^
 
D0bby schrieb:
Du änderst ja mit .card-title quasi nur den Hintergrunde und bekommst so eine Unterbrechung.
klar, meine "Lösung" wäre nur ein optischer Trick. Aber ich befürchte es gibt noch keine echte Lösung mit einem HTML-Element mit dem man das machen kann.
 
  • Gefällt mir
Reaktionen: D0bby
Wo bin ich hier schrieb:
Ich würde das Thema "SEO" nicht ganz außen vor lassen.
Jein. Natürlich spielt sauberer Code am Ende auch mit in das Ranking rein, aber rein vom Bauchgefühl her würde ich jetzt vermuten, dass es hier erstmal nicht um Position 1-Rankings geht.

Gibt jedenfalls sehr viele, sehr große Seiten mit fürchterlichem Code, die dennoch die besten Rankings haben. Solang der Code am Ende nicht komplett "für'n A*sch" ist, ist das jedenfalls zu vernachlässigen ;)
 
  • Gefällt mir
Reaktionen: D0bby
n/a schrieb:
Jagt die Seite durch: https://validator.w3.org (geht mittlerweile auch mit Rechtsklick auf der Seite...)

Das zeigt grobe SEO-Schnitzer an, so vorhanden... Zum Beispiel sollte es h1 oder Ähnliches immer geben
Naja, eigentlich nicht. Das Tool zeigt an, ob du validen HTML-Code hast - aber das hat mit SEO erstmal nur am Rande zu tun.
 
Nicht streiten.... Hab jetzt doch beide Varrianten gemacht. Hat mir keine ruhe gelassen und hatte ja die Idee mit Border Links rechts unten und oben dann via ::before/after und ging eig ganz easy von der Hand. Daher beides gelernt ;).

fieldset
CSS:
.retro-box {
  position: relative;
  width: 300px;
  border: 2px solid white;
  padding: 1rem;
  background-color: rgba(255, 255, 0, 0.05);
  font-family: 'Press Start 2P', cursive; 
  margin: 3rem auto;
}


.retro-title {
  color: white;
  font-size: 0.8rem;
  padding: 0 0.5rem; 
}


::before/after
Code:
.skill-card {
  background-color: rgba(255, 255, 0, 0.05);
  width: 300px;
  font-family: 'Press Start 2P', cursive;
  margin: 3rem auto;
  padding: 2rem 1rem 1rem 1rem;
  position: relative;

  border-left: 3px solid black;
  border-right: 3px solid black;
  border-bottom: 3px solid black;
}

.skill-card::before,
.skill-card::after {
  content: "";
  position: absolute;
  top: 0;
  height: 3px;
  background-color: black;
  width: 25%;
}

.skill-card::before {
  left: 0;
}

.skill-card::after {
  right: 0;
}

.card-title {
  position: absolute;
  top: -0.25rem;
  left: 50%;
  color: white;
  transform: translateX(-50%);
  padding: 0 0.5rem;
  font-size: 0.8rem;
}
 
  • Gefällt mir
Reaktionen: n/a
Hier wurde jetzt nur SEO angesprochen, aber heutzutage sollte auch "accessibility" berücksichtigt werden. Und da könnte es schon eine Rollen spielen wie das Element fieldset verwendet wird.

Wie wäre es mit:


HTML:
<section class="retro-box" aria-labelledby="skills-title">
  <h2 id="skills-title" class="retro-title">Skills</h2>
  <div class="retro-content">
    <p>HTML</p>
    <p>CSS</p>
    <p>JavaScript</p>
  </div>
</section>
 
Zuletzt bearbeitet:
Hier geht es um eine Übungsseite... wollen wir jetzt auch Nachfragen ob eine Kundenanalyse und Konkurrenzanalyse durchgeführt wurde?
 
  • Gefällt mir
Reaktionen: n/a
Damit ihr mir glaubt: https://www.elegantthemes.com/blog/wordpress/how-to-use-w3c-validator-to-improve-seo

Using the W3C validator can improve your site’s overall performance. It enables you to avoid code bloat, resolve accessibility issues, and fix common errors. All these elements can lead to faster loading times and a better UX, which may, in turn, boost your site’s SEO.


Ich muss aber leider gestehen, dass ich auf die Schnelle kein Beispiel mehr gefunden habe, wo er mich aufgrund schlechter SEO angemeckert (Warning) hätte

Es kann aber auch sein, dass das nur mit einer echten (also online) index.html geht, nicht via direct text input ...

Jedenfalls gibt es diese "Semantik-Checks" ... auch wenn man denkt, es würde nur die Syntax (also Grundstruktur) überprüft werden

(Oder der W3C-Validator hat sich jetzt über Nacht geändert 🤷‍♂️)


sh. schrieb:
wollen wir jetzt auch Nachfragen ob eine Kundenanalyse und Konkurrenzanalyse durchgeführt wurde?
Bitte nicht :D
 
Zurück
Oben