Подтвердить что ты не робот

Sass: первый ребенок не работает

Я не использовал SASS в течение очень долгого времени и хотел знать, есть ли какие-то проблемы с псевдоэлементами, такими как :first-child или :last-child?

4b9b3361

Ответ 1

Хотя @Andre правильно, что есть проблемы с псевдоэлементами и их поддержкой, особенно в более старых (IE) браузерах, эта поддержка постоянно улучшается.

Что касается вашего вопроса о том, есть ли какие-либо проблемы, я бы сказал, что я их вообще не видел, хотя синтаксис псевдоэлемента может быть немного сложным, особенно когда он сначала разбирается. Итак:

div#top-level
  declarations: ...
  div.inside
    declarations: ...
    &:first-child
      declarations: ...

который компилируется, как и следовало ожидать:

div#top-level{
  declarations... }
div#top-level div.inside {
  declarations... }
div#top-level div.inside:first-child {
  declarations... }

Я не видел ни одной документации по этому поводу, за исключением утверждения, что "sass может делать все, что может сделать css". Как всегда, с Haml и SASS отступом является все.

Ответ 2

Я думаю, что лучше (по моему опыту) использовать: :first-of-type, :nth-of-type(), :last-of-type. Это можно сделать с небольшим изменением правил, но я смог сделать гораздо больше, чем whit *-of-type, чем селектора *-child.

Ответ 3

Прежде всего, есть еще браузеры, которые не поддерживают эти псевдоэлементы (то есть: first-child,: last-child), поэтому вам нужно "решить" эту проблему.

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

http://www.darowski.com/tracesofinspiration/2010/01/11/this-newbies-first-impressions-of-haml-and-sass/

        - см. пример трубы разделителя.

Надеюсь, это было полезно.