More techniques here, including multi-line ellipsis.
Default list styling
ul {
margin:0 0 1.5em 0;
}
ul {
list-style-type:disc;
margin-left:1.3em;
}
ol {
list-style-type:decimal;
margin-left:2em;
}
ol li {
list-style-type:decimal;
display:list-item;
}
ul li {
list-style-type:disc;
}
ul ul li {
list-style-type:circle;
}
ul ul ul li {
list-style-type:square;
}
ol ol li {
list-style-type:lower-alpha;
}
ol ol ol li {
list-style-type:lower-roman;
}
dl {
margin:0 0 1.5em 0;
}
dl dt {
font-weight:bold;
}
dd {
margin-left:1.5em;
}
Sure, you can use .nav li + li or even .nav li:first-child ~ li, but with :not() the intent is very clear and the CSS selector defines the border the way a human would describe it.
IE Browser Specific Conditions
The following table describes the operators that can be used to create conditional expressions.
Item
Example
Comment
!
[if !IE]
The NOT operator. This is placed immediately in front of the feature, operator, or subexpressionto reverse the Boolean meaning of the expression.
lt
[if lt IE 5.5]
The less-than operator. Returns true if the first argument is less than the second argument.
lte
[if lte IE 6]
The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument.
gt
[if gt IE 5]
The greater-than operator. Returns true if the first argument is greater than the second argument.
gte
[if gte IE 7]
The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument.
( )
[if !(IE 7)]
Subexpression operators. Used in conjunction with boolean operators to create more complex expressions.
&
[if (gt IE 5)&(lt IE 7)]
The AND operator. Returns true if all subexpressions evaluate to true