问题
For some reason my divs styled with .tile
do not respect my $gutter-width
or $column-width
values (I'm not sure which one) and these divs are not lining up properly to the +susy-grid-background
reference grid.
In the screenshot below you can see the square cyan divs not adhering to $columns-width
and $gutter-width
values. On top of that, there should be 4 of these cyan divs in one row but the 4th one is getting knocked down to the second row.
Why is this happening? Is this a sub pixel rounding issue?
_base.sass
code
/* Susy Settings */
$total-columns : 5
$column-width : 4em
$gutter-width : 1em
$grid-padding : $gutter-width
$desktop : 14
// Susy-grid-background override to draw out horizontal lines
=susy-grid-background
+grid-background($total-columns, $column-width, $gutter-width, $base-line-height, $gutter-width, $force-fluid: true)
style.sass
code
@import compass
@import susy
@import normalize
@import base
$base-font-size: 18px
$base-line-height: 30px
+establish-baseline
ul
background-color: rgb(111, 50%, 250)
li
background: rgba(200,50,0,.2)
text-align: right
a
background: rgba(0,220,0,.2)
display: block
h1
+adjust-font-size-to(90px)
+adjust-leading-to(4, 90px)
+leader(2, 90px)
background: rgba(0,20,200,.3)
h1#logo
+adjust-font-size-to(30px)
+adjust-leading-to(2, 30px)
+leader(0, 30px)
h2
+adjust-font-size-to(25px)
+adjust-leading-to(1, 25px)
background: rgba(250,250,0,.2)
p
+leader(1)
+trailer(1)
background: rgba(0,220,0,.2)
.page, header, .pagenav, .main, .pagefoot
+transition(all .3s ease)
.page
+container($total-columns, $tablet, $desktop)
+susy-grid-background
/* BREAKPOINTS */
+at-breakpoint($desktop)
.page
+susy-grid-background
header
+container
+susy-grid-background
background: rgba(250,0,0,.2)
position: fixed
left: 0
right: 0
h1#logo a
+hide-text
float: right
+span-columns(2)
background: rgba(200,10,250,.1)
.pagenav
clear: both
float: right
+span-columns(2)
background: rgba(0,140,250,.3)
.main
+span-columns(12 omega)
+leader(2)
background: rgba(1,240,200,.3)
.tile
+span-columns(3, 12)
+adjust-leading-to(9)
+trailer(1)
background: #0f6
.pagefoot
background: rgba(45,0,120,.3)
+span-columns(12,12)
回答1:
Thanks to Eric I was referred to an older similar question that he had answered before over here:
Weird misalignment in my Susy layout
Susy grids are (by default) fluid on the inside. All fluid grids suffer from some amount of sub-pixel rounding on the browser end. That said, what you are mainly seeing is sub-pixel rounding on the background grid, which is normally worse than the actual element-rounding. That is noted in the docs - the grid background is a rough guide, not a pixel-exact ruler.
Susy also has isolation options, which can be used to stop sub-pixel errors from compounding.
So for this particular problem, I just replaced +span-columns(3,12)
with +isolate-grid(3, 12)
so my final .tile
sass looks like this
.tile
+isolate-grid(3, 12)
+adjust-leading-to(9)
+trailer(1)
background: #0f6
And this is the result
来源:https://stackoverflow.com/questions/16796385/margin-right-not-respecting-my-gutter-value-in-susy