I just started to play with Susy. I have a 12 column grid that has grid-padding on it. Now i want the header of my page to span the whole grid including the grid-padding. What I’m doing right now is calculating the overall width and then setting a negative margin on the header. That’s feels rather hacky to me… Is there a cleaner way to do it?
$total-columns : 12;
$column-width : 3.5em;
$gutter-width : 1.25em;
$grid-padding : 2em;
$total-width: ( $total-columns * ($column-width + $gutter-width) ) + ( 2 * $grid-padding ) - $gutter-width;
header {
height: 150px;
width: $total-width;
margin-left: -$grid-padding;
}
You have two good options. One is a simplified version of what you have. Since block elements are 100% width by default, you can simply eliminate your width setting (and all that hacky math).
Your other option is to use multiple containers on the page. That requires a change to the markup, but sometimes it’s a simplification that works well. If you move the header outside your current container, and declare it as a container of it’s own, that will do the trick.
(as a side note: if you do need the full width ever, you can simply use the
columns-width()function (for inner width, without padding) orcontainer-outer-width()for the full width including the padding.)UPDATE:
I’ve been using this mixin, to apply bleed anywhere I need it:
Some examples: