stylesheets/h5bp/_helpers.scss in compass-h5bp-0.0.5 vs stylesheets/h5bp/_helpers.scss in compass-h5bp-0.1.0

- old
+ new

@@ -1,7 +1,7 @@ // -// Non-semantic helper classes +// Helper classes // @mixin h5bp-helpers { .ir { @include image-replacement; } @@ -14,18 +14,29 @@ .clearfix { @include micro-clearfix; } } -// For image replacement +// Image replacement @mixin image-replacement($img: none, $x: 50%, $y: 50%) { - display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; *line-height: 0; + background-color: transparent; + border: 0; + overflow: hidden; + // IE 6/7 fallback + *text-indent: -9999px; + + &:before { + content: ""; + display: block; + width: 0; + height: 100%; + } + @if $img != none { background-image: image-url($img); background-position: $x $y; } - br { display: none; } } // Uses image dimensions @mixin sized-image-replacement($img, $x: 50%, $y: 50%) { @include image-replacement($img, $x, $y); @@ -39,20 +50,58 @@ visibility: hidden; } // Hide only visually, but have it available for screenreaders: h5bp.com/v @mixin visually-hidden { - border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; - &.focusable:active, &.focusable:focus { - clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + + // Extends the .visuallyhidden class to allow the element to be focusable + // when navigated to via the keyboard: h5bp.com/p + &.focusable:active, + &.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } } // Hide visually and from screenreaders, but maintain layout -@mixin invisible { visibility: hidden; } +@mixin invisible { + visibility: hidden; +} -// Contain floats: h5bp.com/q +// Clearfix: contain floats +// +// For modern browsers +// 1. The space content is one way to avoid an Opera bug when the +// `contenteditable` attribute is included anywhere else in the document. +// Otherwise it causes space to appear at the top and bottom of elements +// that receive the `clearfix` class. +// 2. The use of `table` rather than `block` is only necessary if using +// `:before` to contain the top-margins of child elements. @mixin micro-clearfix { - &:before, &:after { content: ""; display: table; } - &:after { clear: both; } - & { *zoom: 1; } + &:before, + &:after { + content: " "; // 1 + display: table; // 2 + } + + &:after { + clear: both; + } + + // For IE 6/7 only + // Include this rule to trigger hasLayout and contain floats. + & { + *zoom: 1; + } } \ No newline at end of file