// The `zoom` approach generates less CSS but does not validate. // Set this to `block` to use the display-property to hack the // element to gain layout. $default-has-layout-approach: zoom !default;

// This mixin causes an element matching the selector // to gain the “hasLayout” property in internet explorer. // More information on [hasLayout](reference.sitepoint.com/css/haslayout). @mixin has-layout($using: $default-has-layout-approach) {

@if $using == zoom {
  @include has-layout-zoom;
} @else if $using == block {
  @include has-layout-block;
} @else {
  @warn "Unknown has-layout approach: #{$using}";
  @include has-layout-zoom;
}

}

@mixin has-layout-zoom {

*zoom: 1;

}

@mixin has-layout-block {

// This makes ie6 get layout
display: inline-block;
// and this puts it back to block
& { display: block; }

}

// A hack to supply IE6 (and below) with a different property value. // [Read more](www.cssportal.com/css-hacks/#in_css-important). @mixin bang-hack($property, $value, $ie6-value) {

#{$property}: #{$value} !important;
#{$property}: #{$ie6-value}; }