Но если вам приходится править существующий код, который уже ими напичкан, и который нельзя (нет времени и денег) переписать, то тут уж никуда не денешься и будешь говнокодить дальше, еще больше засирая код.
Бустрап добавил импортанты по той простой причине, что заранее неизвестно в каком окружении будет работать этот код. И, да, им нужно гарантировать задуманное поведение класса.
В своем коде, даже для классов-хелперов, использование important я считаю моветоном. Их всегда можно подключить в конце таблицы стилей, а самих стилях использовать селекторы с минимальной специфичностью (один класс в селекторе). Да и в целом использование хелперов лучше свести к минимуму, и уж тем более не переопределять их.
А почему бы вам просто не взять и попробовать? Разошлите резюме, откликнитесь на вакансии, сходите на собеседования.
И сами увидите — можно или нет. Заодно узнаете какие пробелы в знаниях вам будет нужно восполнить.
Бояться не надо, вас же палкой не ударят =))
Ragtime Kitty, создать элемент, вставить в страницу (полностью прозрачным и абсолютом), прочитать getBoundingClientRect(), получить высоту (rect.bottom - rect.top), установить высоту в ноль, убрать абсолют и далее, как писал выше.
Ragtime Kitty, точно так же.
Генерим блок, ставим стили трансформации, полную прозрачность и нулевую высоту.
Вставляем в нужное место.
Анимируем высоту.
После того как высота будет готова, анимируем opacity и transform
Как-то бредово звучит, не находите?