Compass Horizontal List
Easy mode using simple descendant li selectors:
ul.nav
+horizontal-list
Advanced mode: If you need to target the list items using a different selector then use +horizontal-list-container on your ul/ol and +horizontal-list-item on your li. This may help when working on layouts involving nested lists. For example:
ul.nav
+horizontal-list-container
> li
+horizontal-list-item
This file can be imported using:
@import "compass/utilities/lists/horizontal-list"
View the Source for this module on Github.
Imports
The following sass files are automatically imported when you import this file:
- Bullets – Mixins for managing list bullets.
- Clearfix – Mixins for clearfixing.
- Float – Mixins for cross-browser floats.
- Reset – Mixins for resetting elements (old import).
Mixins
View Source: Sass | SCSShorizontal-list-container
=horizontal-list-container
+reset-box-model
+clearfix
@mixin horizontal-list-container { @include reset-box-model; @include clearfix; }
Can be mixed into any selector that target a ul or ol that is meant to have a horizontal layout. Used to implement +horizontal-list.
horizontal-list-item($padding, $direction)
=horizontal-list-item($padding: 4px, $direction: left)
+no-bullet
white-space: nowrap
+float($direction)
@if $padding
padding:
left: $padding
right: $padding
&:first-child, &.first
padding-#{$direction}: 0
&:last-child
padding-#{opposite-position($direction)}: 0
&.last
padding-#{opposite-position($direction)}: 0
@mixin horizontal-list-item($padding: 4px, $direction: left) { @include no-bullet; white-space: nowrap; @include float($direction); @if $padding { padding: { left: $padding; right: $padding; }; &:first-child, &.first { padding-#{$direction}: 0; } &:last-child { padding-#{opposite-position($direction)}: 0; } &.last { padding-#{opposite-position($direction)}: 0; } } }
Can be mixed into any li selector that is meant to participate in a horizontal layout. Used to implement +horizontal-list.
:last-child is not fully supported see http://www.quirksmode.org/css/contents.html#t29 for the support matrix
IE8 ignores rules that are included on the same line as :last-child see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
Setting $padding to false disables the padding between list elements
horizontal-list($padding, $direction)
=horizontal-list($padding: 4px, $direction: left)
+horizontal-list-container
li
+horizontal-list-item($padding, $direction)
@mixin horizontal-list($padding: 4px, $direction: left) { @include horizontal-list-container; li { @include horizontal-list-item($padding, $direction); } }
A list(ol,ul) that is layed out such that the elements are floated left and won’t wrap. This is not an inline list.
Setting $padding to false disables the padding between list elements