Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Semikolon in CSS

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Semikolon in CSS

    Kann man das Semikolon vor der schliessenden Klammer in CSS weglassen?
    Code:
    .left{float:left;}
    oder auch
    Code:
    <div style="clear:both;"></div>
    In PHP kann man das "?>" am Dateiende weglassen. Und im Manual steht extra, dass das perfekt valide ist. Wie steht es also mit CSS?
    Dass es geht und es zu keiner Fehlermeldung kommt, ist gar keine Frage. Aber vielleicht erwartet der Browser eben doch das Semikolon?

  • #2
    Also in CSS direkt gebe ich es immer ein, sieht einfach ordentlicher aus.
    Code:
    .left {
      float: left;
    }
    Im HTML-Attribut lass ich das letzte weg. Der Parser wirds aber so oder so verstehen.

    Kommentar


    • #3
      ja

      p.s. Wieso ist die Antwort "ja" zu kurz?

      Kommentar


      • #4
        Zitat von mepeisen Beitrag anzeigen
        Wieso ist die Antwort "ja" zu kurz?
        Villeicht weil du die Antwort mit einem Zitat belegen solltest?

        Für den Fall PHP:
        http://www.php.net/manual/en/languag...separation.php

        Kommentar


        • #5
          Zitat von chunky Beitrag anzeigen
          In PHP kann man das "?>" am Dateiende weglassen. Und im Manual steht extra, dass das perfekt valide ist. Wie steht es also mit CSS?
          Wieso fragst du das nicht bspw. erst mal http://jigsaw.w3.org/css-validator/?

          Und mal selber in Spezifikationen nachzulesen bei solchen Fragen, könntest du auch mal üben: http://www.w3.org/TR/CSS21/syndata.html#declaration
          Aber vielleicht erwartet der Browser eben doch das Semikolon?
          Nein, aktuelle Browser haben damit keinerlei Probleme.

          Allerdings solltest du dich mal fragen, ob es wirklich sinnvoll ist, an der Stelle ein Byte „einzusparen“.
          Bei Erweiterung des CSS besteht damit die Gefahr, dass du es einfach vergisst - wieder eine Runde Fehlersuchen mehr.
          Und Lesbarkeit ganz allgemein ist bei umfangreicherem CSS auch ein Thema, das man nicht vernachlässigen sollte (das zielt weniger auf die Semikolon-Frage, sondern auf deine gezeigte alles-ohne-Whitespace-Schreibweise.)

          Wenn man für die Auslieferung an Client das ganze möglichst sparsam „packen“ will - dafür gibt's inzwischen genug Tools, die das für einen übernehmen, da braucht man sich nicht während der Entwicklung selber für ins Bein zu schießen.
          Außerdem ist GZIP in der Hinsicht eh effizienter, als es die Einsparung von ein paar Leer-/sonstigen Whitespace-Zeichen wäre.

          Kommentar


          • #6
            inline-Styles benutze ich niemals (Vielleicht mal zum Mocken, aber solbst Da gehts mir schnell auf den Keks). Und in CSS würde ich es immer setzen, schon um problemlos die Reihenfolge umstellen, das Stylesheet ergänzen oder automatisiert formatieren lassen zu können.

            Kommentar


            • #7
              In PHP kann man das "?>" am Dateiende weglassen. Und im Manual steht extra, dass das perfekt valide ist. Wie steht es also mit CSS?
              Das schließende PHP-Tag wegzulassen (halte ich für sinnvoll) entspricht aber nicht dem Weglassen eines Semikolons (halte ich für weniger sinnvoll).
              Aber ja, sowohl in PHP als auch in CSS ist es möglich, das letzte Semikolon wegzulassen. In PHP aber übrigens nur dann, wenn du das schließende PHP-Tag mit angibst. Lässt du das schließende PHP-Tag nach dem fehlenden Semikolon jedoch weg, bekommst du einen "Parse error: syntax error, unexpected $end".
              Ob das Weglassen der Semikola aber so sauber ist, darüber lässt sich trefflich streiten. Spätestens, wenn du eine Zeile anfügst und vergisst, dass da ein Semikolon fehlt, wird's nervig, vor allem in CSS da du dort nicht unbedingt eine eindeutige Fehlermeldung bekommst.

              Kommentar


              • #8
                Okay, vielen Dank für den Link.
                Aus dem Text allein geht klar hervor dass ein Semikolon folgen muss.
                Die Beispiele sind ohne Semikolon. Es wird aber im Text nicht erwähnt, dass ein weglassen einfach möglich ist. Ein zusätzlicher Satz in der Spezifikation wäre da besser gewesen.

                Kommentar


                • #9
                  Die zahlreichen Toleranzen in HTML oder auch die in CSS, die tw. für Browserweichen verwendet werden, sind aber auch nicht dokumentiert. Wie auch.

                  Kommentar


                  • #10
                    Zitat von chunky Beitrag anzeigen
                    Aus dem Text allein geht klar hervor dass ein Semikolon folgen muss.
                    Nein, tut's nicht.
                    A declaration is either empty or consists of a property name, followed by a colon (, followed by a property value. Around each of these there may be white space.
                    Nichts mit Semikolon.

                    Es wird aber im Text nicht erwähnt, dass ein weglassen einfach möglich ist.
                    Im Gegenteil, der Text behauptet aus gutem Grund nicht, dass eine Declaration überhaupt eins benötigen würde.

                    Because of the way selectors work, multiple declarations for the same selector may be organized into semicolon ( separated groups.
                    Erst wenn du mehrere Declarations in einer Group zusammenfasst, wird ein Semikolon zur Trennung zwischen diesen erforderlich.

                    Dass nicht nur zwischen den Bestandteilen einer solchen Gruppe ein Semikolon stehen muss, sondern auch „danach“ noch eins stehen darf, ergibt sich implizit aus den ersten fünf Worten, die ich oben aus der Spezifikation zitiert habe. (Bitte mal drüber nachdenken, warum ich „danach“ wohl in Anführungszeichen gesetzt habe.)

                    Ein zusätzlicher Satz in der Spezifikation wäre da besser gewesen.
                    Spezifikationen lesen muss man auch lernen bzw. üben.

                    Sie auf Teufel komm raus in jedem Detail möglichst „DAU-freundlich“ aus zu formulieren, kann nicht Sinn der Sache sein, denn das würde sie unnötig aufblähen.
                    Deshalb beschränkt man sich an solchen Stellen idR. auf die Beschreibung eines technik-orientierten Regelwerkes - das natürlich auch entsprechend sinnvoll und logisch interpretiert werden will.

                    Kommentar


                    • #11
                      Die Beispiele sind ohne Semikolon. Es wird aber im Text nicht erwähnt, dass ein weglassen einfach möglich ist. Ein zusätzlicher Satz in der Spezifikation wäre da besser gewesen.
                      Genau das steht nicht da.
                      In der CSS-Spezifikation steht, dass mehrere Eigenschaften mit einem Semikolon getrennt werden können. Dort steht nichts davon, dass auf eine Eigenschaft automatisch ein Semikolon folgen muss. Das heißt, wenn du nur eine Eigenschaft hast bzw. keine weitere mehr folgt, muss auch kein Semikolon dahin (auch wenn es ratsam weil konsistent und übersichtlich ist).
                      Im PHP-Handbuch steht hingegen, dass jede Zeile mit einem Semikolon abgeschlossen werden muss. Ein ?> impliziert dabei eines.

                      Beitrag editiert:
                      […] Zu langsam

                      Kommentar


                      • #12
                        denn das würde sie unnötig aufblähen.
                        Nicht zu vergessen verstellt man sich innovative Entwicklungen, wenn man Dinge überreglementiert. Dass auf der anderen Seite (siehe Browserentwicklung) allerdings auch Wildwuchs entstehen kann, soll auch erwähnt werden.

                        Kommentar

                        Lädt...
                        X