2016-07-28 13 views

Antwort

3

Browser runden Fraktionellen Pixel automatisch und das ist Browser-spezifisch, einige runden es, einige nach unten; Es gibt keine Möglichkeit, das eine oder andere mit CSS zu zwingen.

Eine Lösung könnte sein, mit LESS zu arbeiten, es gibt Funktionen dafür (ceil, floor).

Aber wenn Sie eine Lösung mit CSS benötigen, würde ich nur vorschlagen, die Breite als calc(100% - 0.5px)/calc(100% -1px) oder 99.9% definieren. Das ist einfach nicht perfekt, aber eine Lösung. Sie können es anpassen, wie Sie möchten und wie es für Sie funktioniert.

Aber Ich bin nicht sicher, dass Ihr Problem daraus entsteht. Werfen Sie einen Blick auf die folgende Geige und sagen Sie mir, ob es Ihr Problem löst. Anstatt zu schweben benutze ich hier ein Layout basierend auf display:inline-block, und es scheint so, als gäbe es kein Problem. https://jsfiddle.net/a693yj52/

+0

Perfect! Vielen Dank! Wie würde ich die Ränder/Lücken entfernen, wenn ich den Hack nicht machen kann? Im Moment benutze ich nur negative Ränder + calc, um 1 Pixel zur Breite hinzuzufügen. Gibt es noch etwas, was Sie vorschlagen? –

+0

Sie können auch Kommentare '' '' zwischen den Tags verwenden. Das mache ich normalerweise. Andere Möglichkeiten sind hier aufgelistet: https://css-tricks.com/fighting-the-space-between-inline-block-elements/ – ScientiaEtVeritas

1

Ich würde die Verwendung von Flexbox hier empfehlen.

Es würde wie folgt aussehen:

.container { 
    display: flex; 
    flex-wrap: wrap; 
} 

.container > * { 
    flex-basis: 25%; 
    height: auto; 
} 
+0

Obwohl Ihre Lösung eleganter wäre, habe ich ScientiaEtVeritas für mehr Browser-Unterstützung verwendet. Danke für deine Zeit und Hilfe! –

+0

Kein Problem, denken Sie daran, dass 'calc' einige Leistungseinbußen haben kann, die sich bei Geräten mit geringerer Leistung bemerkbar machen. – probablyup