Сайты - по стандартам, но не стандартные сайты!
Страниц: 1
Сила CSS - именно в каскадах и наследовании. Однако вот тут столкнулся с тем, что это выступает скорее недостатком.
Есть разного рода типовые элементы (навскидку - рамка с закруглёнными краями из таблицы 3х3), "внутренности" оформления которых прописаны в стилевых таблицах. Однако, очень часто приходится вкладывать один элемент в другой и часто правила накладываются одно на другое так сложно, что с трудом разберешь, как их записать оптимальнее.
Вот возник вопрос - можно ли как-то "сбросить", запретить наследование от вышестоящего элемента? Пока знаю только два способа: явно устанавливать все свойства объекта, чтобы "перешибить" унаследованное с верхних уровней и задавать более специфичный селектор.
Ответа в стандарте ("Каскады и наследование. Порядок каскадирования") не нашел.
Нет на форуме
questor: нет такой возможности, увы.
В CSS вообще много чего не хватает — например, банальных констант или наследования в нужном селекторе правил от нужного класса.
Нет на форуме
На всякий случай: в некоторых случаях для повышения специфичности полезна инструкция !important, например:
.myclass {color: #000 !important; }
Нет на форуме
А ещё лучше выделить специфические правила, и создать уникальные идентификаторы под них:
table.roundedcorners td.roundedCornerBL {} table.roundedcorners td.roundedCornerTR {}
Отредактированно Ilya Lebedev (30.07.2011 16:24)
Нет на форуме
Ilya Lebedev написал:
А ещё лучше выделить специфические правила, и создать уникальные идентификаторы под них
Это и есть написание правил с большей специфичностью. Но тут фишка в чём: во-первых, если элементов три - это уже шесть вариантов вложения элементов друг в друга; во-вторых, не бывает таких простых правил, бывает простыня на полстраницы:
/* PrettyTable */ table.pt {} table.pt td {} table.pt td.left {} table.pt td.right {} table.pt tr.bottom td {} table.pt tr.bottom td.left {} table.pt tr.botom td.right {} table.pt tr.head td {} table.pt tr.head td.left {} table.pt tr.head td.right {} ..... и ещё строк тридцать подобных конструкций
И попробуйте не свихнуться, засовывая эту конструкцию внутрь другой, потом внутрь ещё одной, потом ещё...
Отредактированно questor (30.07.2011 16:53)
Нет на форуме
questor написал:
засовывая эту конструкцию внутрь другой, потом внутрь ещё одной, потом ещё...
давайте начнём с вопроса о необходимости таблиц с тремя уровнями вложенности
Нет на форуме
alemiks Сомневаетесь? Зря. Дело даже не в том, что дизайнеры нарисуют нечто чудовищное и непотребное, сверстанное таблицами.
Три таблицы, три DIV'a... Даже на средненькой странице наберется третий уровень.
Нет на форуме
А что делать ? приходится писать все эти вложенности
Нет на форуме
Страниц: 1