Есть ли синтаксис для селектора CSS с тремя строками?

Я изучаю экзамен по HTML, CSS, JS и нашел различные ресурсы, которые помогут мне учиться. Выполняя викторину, я нашел вопрос о селекторе tr line CSS:

What the selector should be doing

This is what the question and options are

Опрос говорит мне, что вариант B правильный.

Из моего исследования нет синтаксиса селектора [line | -0,1,3].

Я хочу проверить, правильно ли этот синтаксис, или я прав, говоря, что это ошибка в части викторины.

Я тестировал это в редакторе codepen.io, который тоже не работает, это можно найти здесь: http://codepen.io/anon/pen/dPwwpB?editors=110

tr [line |- 0,1,3] {
  background-color: blue;
}

Наконец, если этот синтаксис неверен, можете ли вы также подтвердить правильный синтаксис? (HTML исключен из этого сообщения для ясности, но доступен на ссылке Codepen)

Ответы

Ответ 1

Как уже упоминалось, выбор C, tr:first-of-type, tr:last-of-type является правильным ответом, но только если строки семантически разделены на элементы thead и a tbody, как предполагает выбор А.

Здесь показано, как каждый из желаемых элементов будет сопоставляться на основе вышеприведенного предположения:

tr:first-of-type, tr:last-of-type {
  background-color: lightblue;
}
<table>
  <thead>
    <tr><th>Product         <!-- tr:first-of-type, tr:last-of-type -->
  <tbody>
    <tr><td>Adjustable Race <!-- tr:first-of-type -->
    <tr><td>Blade
    <tr><td>Chainring
    <tr><td>Down Tube       <!-- tr:last-of-type -->
</table>

Ответ 2

В вашем конкретном случае ваш ответ определенно был правильным выбором, а [line |- whatever] - неправильный синтаксис CSS.

В общем случае единственным правильным синтаксисом CSS является selector:specific-something, selector:specific(something) или selector[attr=val]. Все, что выглядит иначе, возможно, неверно (если вы не используете препроцессор CSS).

Ответ 3

HTML на вашем кодефене не соответствует вопросу - где строка/подстрока "Регулируемая раса" /независимо?

Если сказано, что "Продукт" является единственным tr в thead, а "Регулируемая раса" и "Вниз" - это первые и последние tr в tbody, тогда ответ C должен быть правильный.

tr [line |- 0,1,3], похоже, не имеет никакого смысла - даже если это означало селектор атрибутов, атрибут line должны быть на элементах td (из-за пробела между tr и [), но такого атрибута не видно нигде в вашем HTML (а атрибут line не существует в HTML), и |- должно быть |=.

Ответ 4

есть 2 варианта ответа на этот вопрос:

 first-of-type,tr-last-of-type  

или

tr:nth-child(3n+1) {background-color: blue;} 

оба из них истинны