.a.b .c.d li.e {
margin-top:none; }
<div class="a b">
<ul class="c d">
<li class="e">
This is the area being referred to in the CSS.
</li>
</ul>
</div>
Select element with class a and b, then select the children of that element but only with class c and d, then select the list item children of that element, but only those with the class e.
I'm guessing that there's a <ul> tag in there as a direct parent of the <li>. For valid HTML, there would need to be.
When CSS has no space between two selectors it means both selectors are used on the same element, with a space between them.
.c.d refers to
<div class="c d"></div>
#c.d Would refer to
<div id="c" class="d"></div>
where as .c .d would refer to
<div class="c">
<div class="d"></div>
</div>`
The space in the CSS means .d is a child of .c. No space means both selectors are used on the same element.
The below kind of does the same thing. However it would select something referred to as "sects" but that's not a valid tag and there's no declaration character (# or . ) before it to indicate an ID or Class. Then only the "sects' with the class item. So... the below is sort of broken. (Unless someone is using custom HTML5 tags).
.a.b .c.d sects.item {
border-top: 1px; }
eanditemclasses?jsfiddle] and the markup in the jsfiddle passes HTML validator nu conformance checker.