Gemeinsame Klassen für Rand und Padding

9

Ich habe allgemeine CSS-Klassen für gemeinsame Rand- und Padding-Klassen in meiner CSS deklariert, damit ich sie verwenden kann, ohne andere CSS-Deklarationen zu spezifisch zu machen.

Zum Beispiel:

%Vor%
  1. Ist diese Methode richtig?
  2. Wenn nicht, warum?
  3. Wenn ja, was ist besser Rand oder Padding? (Ich kenne Margin-Probleme mit Browsern)

Bitte führen Sie ... Vielen Dank im Voraus:)

    
Mahima 22.02.2011, 09:41
quelle

4 Antworten

2

Margin ist anders als Padding. Rand ist der Raum außerhalb der Box, Polsterung ist der Raum in der Box. Sowohl Rand als auch Padding sind Cross-Browser-kompatibel. Ihre Deklarationen sind korrekt, obwohl es nicht empfohlen wird, Klassen für Ränder oder Abstände zu erstellen. Ein guter Zweck ist es, eine Klasse für abgerundete Ecken oder Schatten zu erstellen, in der Sie schnell runde Ecken anwenden können, indem Sie die Klasse der runden Ecken angeben.

    
Hussein 22.02.2011, 09:46
quelle
7
  1. Dies ist eine schlechte Übung, da Klassen semantisch sein sollten - das heißt, sie sollten die Art von Dingen beschreiben, die Sie gestalten. Zum Beispiel "blog-header", "primary-this", "secondary-that" usw.

  2. In der Praxis ist der Nachteil der Verwendung von Klassen, wie Sie beschreiben, dass wenn Sie Ihr visuelles Design ändern und Sie unterschiedlich große Ränder oder Abstände benötigen, müssen Sie auch die Klassennamen ändern - was sowohl Änderungen an den CSS und HTML. Oder wenn Sie nur das CSS ändern, dann beschreiben die Klassennamen nicht mehr, wofür sie sind. Dieser Ansatz ist nicht viel besser als die Verwendung von Inline-Stilen.

  3. Margins und Padding sind verschiedene Dinge und verhalten sich unterschiedlich. Unter bestimmten Umständen können die Ränder kollabieren, während das Auffüllen nicht klappt. Das Auffüllen beinhaltet Hintergrundbilder oder Farben, während der Rand dies nicht tut. Ränder werden zwischen Padding und Rand angezeigt.

Dan S 22.02.2011 09:53
quelle
4

Das solltest du nicht tun. Benennungsklassen wie left oder margintop20 sind nicht vorgesehen. Sie sollten Klassen wie content oder sidebarBox verwenden, die den Inhalt beschreiben.

Nehmen wir an, Sie möchten den oberen Rand von 10px auf 1em ändern. Verwenden Sie Ihre Methode entweder

  • mTop10 wird margin-top: 10px;
  • haben
  • oder Sie müssen Ihren className in mTop1em
  • ändern

Nichts davon ist gut.

Siehe w3.org goodclassnames dazu.

Siehe auch w3.org über das Box-Modell für den Rand, Padding.

    
Adam 22.02.2011 09:54
quelle
3

Meiner Meinung nach ist das nicht optimal, es sei denn, Sie machen es richtig.

In Ihrem Markup haben Sie jetzt so etwas:

%Vor%

und Sie haben das überall auf Ihrer Site.

Was ist, wenn Sie Ihr CSS ändern möchten, um einen kleinen zusätzlichen Rand / Abstand zu haben?

%Vor%

Oh. Diese Klassennamen sehen nicht mehr so ​​vernünftig aus: Sie müssen entweder falsch benannte Selektoren in Kauf nehmen oder in all Ihre Dateien suchen und ersetzen.

Was ist, wenn Sie entscheiden, dass einige Elemente mit .pad10 roten Text haben müssen?

%Vor%

Jetzt macht der Klassenname noch weniger Sinn.

Es könnte in Ordnung sein, diese Art von Dingen zu tun, wenn Sie auch eine relevante (semantisch sinnvolle) Klasse / ID auf jedes Element in Ihrem HTML anwenden:

%Vor%

weil du zumindest das tun kannst:

%Vor%     
thirtydot 22.02.2011 09:54
quelle

Tags und Links