Jump to content
  • 0

Селекторы CSS


V.A.R.
 Share

Question

Здравствуйте, дорогие!

Надоело мне сворачивать и разворачивать на Абсурдопедии таблицу категории снизу ручками и решил я сделать для неё стиль в Stylish. Во время написания оного я столкнулся с такой вещью:


@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("absurdopedia.net") {

/* Первый tr - заголовок. Его трогать нельзя. Да, вобщем-то, тогда и вопроса бы не было */

table.navbox.collapsible.autocollapse.nowraplinks tbody tr:nth-child(2)
,table.navbox.collapsible.autocollapse.nowraplinks tbody tr:nth-child(3)
,table.navbox.collapsible.autocollapse.nowraplinks tbody tr:nth-child(4)
,table.navbox.collapsible.autocollapse.nowraplinks tbody tr:nth-child(5)

/* И так до 20-го. На всякий случай. Мало ли таблица будет ну очень большая */

{visibility:collapse !important}

table.navbox.collapsible.autocollapse.nowraplinks:hover tbody tr:nth-child(2)
,table.navbox.collapsible.autocollapse.nowraplinks:hover tbody tr:nth-child(3)
,table.navbox.collapsible.autocollapse.nowraplinks:hover tbody tr:nth-child(4)
,table.navbox.collapsible.autocollapse.nowraplinks:hover tbody tr:nth-child(5)

/* Тоже до 20-го */

{visibility:visible !important}
}

Представили себе 20 строк селектора, да? Вот...

Вопрос, собственно, такой: можно ли объединить их в, желательно, одну?

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Плюс у нас обозначает только следующий элемент. Чуваку писать лестницу из 20 строк вида

tr + tr,

tr + tr + tr ? Или я что-то упускаю?

А у меня одной строкой то, что нам надо.

↓ Ок, а как тут с быстродействием? ↓


tr {
blablabla: blablabla;
}

tr:first-child {
blablabla: noblablabla;
}

Edited by antonKar
Link to comment
Share on other sites

  • 0
Или я что-то упускаю?

Нам надо проверить, что данная tr-ка — не первая. Т.е. перед ней есть хотя бы одна другая. C «+» для каждой tr-ки нужна ровно 1 доп. проверка — именно та, что нас интересует. Всё. Никаких 20 строк :)

С «~», формально, для каждой tr требуется перебрать всех ее предшественников и проверить, не является ли какой-то из них первой tr-кой (да, выглядит нелепицей и в браузерах, вероятно, оптимизировано... но алгоритм есть алгоритм :)).

а как тут с быстродействием?

Нормально. Короткие селекторы рулят :)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy