diff options
| author | Mark Otto <[email protected]> | 2015-12-07 23:41:55 -0800 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2015-12-07 23:41:55 -0800 |
| commit | a9f53f0fc0360d35666284adf65cdcc0bcab3a00 (patch) | |
| tree | 4d56c46434d4c25f1780ec0e34d7a56c2438129c | |
| parent | 38847f564c966ac75612226502c4c4d6b93c8256 (diff) | |
| parent | e7edf104737af04c5713d48c577c6f113fef6340 (diff) | |
| download | bootstrap-a9f53f0fc0360d35666284adf65cdcc0bcab3a00.tar.xz bootstrap-a9f53f0fc0360d35666284adf65cdcc0bcab3a00.zip | |
Merge pull request #18110 from twbs/pagination-classes
Refactor pagination classes to avoid tag selectors & child selectors
| -rw-r--r-- | docs/components/pagination.md | 72 | ||||
| -rw-r--r-- | scss/_pagination.scss | 79 | ||||
| -rw-r--r-- | scss/mixins/_pagination.scss | 20 |
3 files changed, 80 insertions, 91 deletions
diff --git a/docs/components/pagination.md b/docs/components/pagination.md index 99d4220fa..4230a6647 100644 --- a/docs/components/pagination.md +++ b/docs/components/pagination.md @@ -18,19 +18,19 @@ Simple pagination inspired by Rdio, great for apps and search results. The large {% example html %} <nav> <ul class="pagination"> - <li> - <a href="#" aria-label="Previous"> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Previous"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </a> </li> - <li><a href="#">1</a></li> - <li><a href="#">2</a></li> - <li><a href="#">3</a></li> - <li><a href="#">4</a></li> - <li><a href="#">5</a></li> - <li> - <a href="#" aria-label="Next"> + <li class="page-item"><a class="page-link" href="#">1</a></li> + <li class="page-item"><a class="page-link" href="#">2</a></li> + <li class="page-item"><a class="page-link" href="#">3</a></li> + <li class="page-item"><a class="page-link" href="#">4</a></li> + <li class="page-item"><a class="page-link" href="#">5</a></li> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Next"> <span aria-hidden="true">»</span> <span class="sr-only">Next</span> </a> @@ -46,21 +46,21 @@ Links are customizable for different circumstances. Use `.disabled` for unclicka {% example html %} <nav> <ul class="pagination"> - <li class="disabled"> - <a href="#" aria-label="Previous"> + <li class="page-item disabled"> + <a class="page-link" href="#" aria-label="Previous"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </a> </li> - <li class="active"> - <a href="#">1 <span class="sr-only">(current)</span></a> + <li class="page-item active"> + <a class="page-link" href="#">1 <span class="sr-only">(current)</span></a> </li> - <li><a href="#">2</a></li> - <li><a href="#">3</a></li> - <li><a href="#">4</a></li> - <li><a href="#">5</a></li> - <li> - <a href="#" aria-label="Next"> + <li class="page-item"><a class="page-link" href="#">2</a></li> + <li class="page-item"><a class="page-link" href="#">3</a></li> + <li class="page-item"><a class="page-link" href="#">4</a></li> + <li class="page-item"><a class="page-link" href="#">5</a></li> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Next"> <span aria-hidden="true">»</span> <span class="sr-only">Next</span> </a> @@ -74,13 +74,13 @@ You can optionally swap out active or disabled anchors for `<span>`, or omit the {% example html %} <nav> <ul class="pagination"> - <li class="disabled"> - <span aria-label="Previous"> + <li class="page-item disabled"> + <span class="page-link" aria-label="Previous"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </span> </li> - <li class="active"><span>1 <span class="sr-only">(current)</span></span></li> + <li class="page-item active"><span class="page-link">1 <span class="sr-only">(current)</span></span></li> </ul> </nav> {% endexample %} @@ -93,17 +93,17 @@ Fancy larger or smaller pagination? Add `.pagination-lg` or `.pagination-sm` for {% example html %} <nav> <ul class="pagination pagination-lg"> - <li> - <a href="#" aria-label="Previous"> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Previous"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </a> </li> - <li><a href="#">1</a></li> - <li><a href="#">2</a></li> - <li><a href="#">3</a></li> - <li> - <a href="#" aria-label="Next"> + <li class="page-item"><a class="page-link" href="#">1</a></li> + <li class="page-item"><a class="page-link" href="#">2</a></li> + <li class="page-item"><a class="page-link" href="#">3</a></li> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Next"> <span aria-hidden="true">»</span> <span class="sr-only">Next</span> </a> @@ -115,17 +115,17 @@ Fancy larger or smaller pagination? Add `.pagination-lg` or `.pagination-sm` for {% example html %} <nav> <ul class="pagination pagination-sm"> - <li> - <a href="#" aria-label="Previous"> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Previous"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </a> </li> - <li><a href="#">1</a></li> - <li><a href="#">2</a></li> - <li><a href="#">3</a></li> - <li> - <a href="#" aria-label="Next"> + <li class="page-item"><a class="page-link" href="#">1</a></li> + <li class="page-item"><a class="page-link" href="#">2</a></li> + <li class="page-item"><a class="page-link" href="#">3</a></li> + <li class="page-item"> + <a class="page-link" href="#" aria-label="Next"> <span aria-hidden="true">»</span> <span class="sr-only">Next</span> </a> diff --git a/scss/_pagination.scss b/scss/_pagination.scss index 282cd4886..10559516f 100644 --- a/scss/_pagination.scss +++ b/scss/_pagination.scss @@ -4,48 +4,24 @@ margin-top: $spacer-y; margin-bottom: $spacer-y; @include border-radius(); +} - > li { - display: inline; // Remove list-style and block-level defaults +.page-item { + display: inline; // Remove list-style and block-level defaults - > a, - > span { - position: relative; - float: left; // Collapse white-space - padding: $pagination-padding-y $pagination-padding-x; - margin-left: -1px; - line-height: $line-height; - color: $pagination-color; - text-decoration: none; - background-color: $pagination-bg; - border: $pagination-border-width solid $pagination-border-color; - } - &:first-child { - > a, - > span { - margin-left: 0; - @include border-left-radius($border-radius); - } - } - &:last-child { - > a, - > span { - @include border-right-radius($border-radius); - } + &:first-child { + .page-link { + margin-left: 0; + @include border-left-radius($border-radius); } } - - > li > a, - > li > span { - @include hover-focus { - color: $pagination-hover-color; - background-color: $pagination-hover-bg; - border-color: $pagination-hover-border; + &:last-child { + .page-link { + @include border-right-radius($border-radius); } } - > .active > a, - > .active > span { + &.active .page-link { @include plain-hover-focus { z-index: 2; color: $pagination-active-color; @@ -55,19 +31,34 @@ } } - > .disabled { - > span, - > a { - @include plain-hover-focus { - color: $pagination-disabled-color; - cursor: $cursor-disabled; - background-color: $pagination-disabled-bg; - border-color: $pagination-disabled-border; - } + &.disabled .page-link { + @include plain-hover-focus { + color: $pagination-disabled-color; + cursor: $cursor-disabled; + background-color: $pagination-disabled-bg; + border-color: $pagination-disabled-border; } } } +.page-link { + position: relative; + float: left; // Collapse white-space + padding: $pagination-padding-y $pagination-padding-x; + margin-left: -1px; + line-height: $line-height; + color: $pagination-color; + text-decoration: none; + background-color: $pagination-bg; + border: 1px solid $pagination-border; + + @include hover-focus { + color: $pagination-hover-color; + background-color: $pagination-hover-bg; + border-color: $pagination-hover-border; + } +} + // // Sizing diff --git a/scss/mixins/_pagination.scss b/scss/mixins/_pagination.scss index d4a5404fc..eaebe8955 100644 --- a/scss/mixins/_pagination.scss +++ b/scss/mixins/_pagination.scss @@ -1,22 +1,20 @@ // Pagination @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { - > li { - > a, - > span { - padding: $padding-vertical $padding-horizontal; - font-size: $font-size; - line-height: $line-height; - } + .page-link { + padding: $padding-vertical $padding-horizontal; + font-size: $font-size; + line-height: $line-height; + } + + .page-item { &:first-child { - > a, - > span { + .page-link { @include border-left-radius($border-radius); } } &:last-child { - > a, - > span { + .page-link { @include border-right-radius($border-radius); } } |
