gecko-dev/layout/reftests/css-selectors/nth-child-2.html
Manish Goregaokar 652a30c309 Bug 1364009 - Don't allow comments/spaces between signs,numbers,and n in an+b syntax for nth-child; r=dbaron
In the an+b syntax, this continues to allow comments and spaces like so:
` an + b `. It does not allow `a n+b`, or `- an+b` or `+ an+b` (and the
same for the `an-b` form). Similarly, it does not allow `- b` or `+ b`.

Additionally, it *does* allow `+/*comment*/n+b` or `-/*comment*/n+b`,
but not `+ n+b` or `-n+b`. This is specced; in this one case we
parse two tokens but do not allow whitespace in between.

MozReview-Commit-ID: INzFGeMPeK7

--HG--
extra : rebase_source : ca5bcf4034759823f79b9a925dc72998d8f0218b
2017-06-01 15:54:14 -07:00

42 lines
1.4 KiB
HTML

<!DOCTYPE HTML>
<html><head>
<meta charset="utf-8">
<title>Tests :nth-child(An+B) matching</title>
<style type="text/css">
div :nth-child(+3N/**/-2) { background-color:black; }
div :nth-child(+3N/**/-2) { font-size:12px; }
div :nth-child(+3N-/**/2) { text-decoration: underline; }
div :nth-child(+3N-2/**/) { border-left-width: 1px; }
div :nth-child(+3N/**/-2) { border-top-width: 1px; }
div :nth-child(+3N/**/-2) { border-bottom-width: 1px; }
div :nth-child(+3N-/**/2) { border-right-width: 1px; }
div :nth-child(+3N-2/**/) { border-style: solid; border-color: blue;}
/* valid but will not match anything */
div :nth-child(-N/**/-2) { color:red; }
div :nth-child(-N/**/-2) { color:red; }
div :nth-child(-N-/**/2) { color:red; }
div :nth-child(-N-2/**/) { color:red; }
div :nth-child(-1N/**/-2) { color:red; }
div :nth-child(-1N/**/-2) { color:red; }
div :nth-child(-1N-/**/2) { color:red; }
div :nth-child(-1N-2/**/) { color:red; }
/* invalid */
div :nth-child(-/**/ N-2) { color:red; }
div :nth-child(- /**/N-2) { color:red; }
div :nth-child(+/**/ N-2) { color:red; }
div :nth-child(+ /**/N-2) { color:red; }
div :nth-child(+3/**/N-2) { color:red; }
div :nth-child(-/**/N-2) {color: red;}
</style>
</head>
<body>
<div><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x></div>
</body>
</html>