2016-04-13 30 views
1

die HTML Gegeben:Vermeiden Spanne-Spalte rechten Rand setzen für: last-child

<div class="parent"> 
    <div class="element"></div> 
    <div class="other"></div> 
</div> 

Und das Sass:

.parent { 
    .element { 
     @include span-columns(2.5 of 8); 
    } 
} 

Er erzeugt die CSS:

.parent .element { 
    float: left; 
    display: block; 
    margin-right: 3.22581%; 
    width: 29.03226%; 
} 

.parent .element:last-child { 
    margin-right: 0; 
} 

Der Teil mit :last-child stört mich, weil er die erste Regel mit right-margin überschreibt, die ich behalten möchte. Wie verhindere ich, dass Neat die Regel :last-child hinzufügt? Oder welche Problemumgehung sollte ich machen, um meinen gewünschten rechten Rand zu setzen?

+0

Das letzte untergeordnete Element des Elements .parent hat eine Klasse von "anderen" statt "Element". Ist das beabsichtigt oder ist das ein Fehler? Weil Ihr zweiter Selektor nicht auf dieses Element angewendet wird, weil er nicht den richtigen Klassennamen hat. – cimmanon

Antwort

1

Ich denke, du bist hier in Ordnung. Neats span-columns() mixin erstellt ein Element als Spalte mit den oben kopierten Klassen, einschließlich des rechten Rands für einen Zwischenspeicher zwischen den Spalten. Es verwendet dann die :last-child Pseudo-Klasse, um den Gutter-Rand in der letzten Spalte zu entfernen, so dass Sie dort nicht unnötigen Speicherplatz haben.

Denken Sie daran, die .element div in Ihrem Beispiel ist nicht die :last-child, so dass bestimmte divs rechten Rand unberührt bleibt. Ich warf das in einen JSBin, um Ihnen zu zeigen: http://jsbin.com/wawopef/edit?html,css,output. Ich machte .other eine Spalte auch, da es klar schien, dass Sie dafür bestimmt waren, eins zu sein. Die .element Div hat immer noch ihren Rand, dann.

Wenn Sie wirklich die Regel überschreiben wollten, könnten Sie dies tun, indem Sie das Mixin umschreiben, aber A) das ist wahrscheinlich nicht das, was Sie tun möchten, und B) dies ist Teil des Grid-Frameworks einer anderen Person. Wenn wir ihrer Dokumentation folgen, sollte es gut funktionieren. Oder der Rahmen ist schlecht, was zum Glück Bourbon und Neat nicht sind!

+0

Wenn Sie glauben, dass in der Frage ein Tippfehler enthalten ist, sollten Sie einen Kommentar hinterlassen, in dem Sie um Klärung gebeten werden (Fragen, die durch geringfügige Schreibfehler verursacht werden, wie "Ich habe den falschen Klassennamen geschrieben" sollte geschlossen werden). Wenn Sie nicht genügend Rep haben, um einen Kommentar zu posten, fahren Sie mit der nächsten Frage fort, die Sie ohne zusätzliche Erläuterungen konkret beantworten können. Beachten Sie, dass [das Fixieren des Klassennamens das Problem nicht löst] (https://jsfiddle.net/L0m0jysa/). Beachten Sie auch, dass Ihre Antwort nicht zeigt, wie das Problem des OP gelöst werden kann. – cimmanon

+1

Ich antwortete eher als kommentiert, weil ich nicht denke, OP hat ein Problem, aber ist nicht klar, wie Neat funktioniert. Ich glaube nicht, dass es ein Tippfehler war, da er in den Beispielen ".element" statt ".other" konsequent verwendete. Es schien mir klar, dass ".other" auch eine zusätzliche Kolumne sein würde und er war verwirrt darüber, wie ': last-child' in diesem Zusammenhang arbeitete. – alexbea

+0

Sie verstehen, dass die Antworten nur für die Beantwortung der Frage * sind, richtig? Sie sind nicht für Kommentare oder um Klärung oder um zu empfehlen, dass es möglich ist, es zu reparieren, wenn sie nur zufällige Sachen ausprobieren, oh und übrigens, viel Glück damit! Dies ist kein Diskussionsforum. Wenn es kein Problem gibt, das hier angesprochen werden kann, besteht die entsprechende Maßnahme darin, es als nicht zum Thema gehörend zu markieren oder zu schließen, wenn Sie den Vertreter haben. – cimmanon