2010-09-30 4 views
0

Мне нужно знать, правильно ли я что-то делаю.Требуется проверка наследования наследования Coldfusion

Для данной страницы я создаю объект для самой страницы. Давайте назовем этот объект myPage. Внутри страницы у меня есть контейнеры (обычно теги div). Когда я перехожу к админ-компоненту для работы с определенным div, я также создаю объект для этого. Назовем это myDiv.

Теперь одной из вещей, с которыми я хочу работать для данного div, является стилизация этого div. Поэтому обычно я бы подумал, что я просто применил бы некоторые связанные с стилем методы, такие как myDiv.getPadding() или myDiv.getBackgroundColor() и т. Д.

Но мне приходит в голову, что в конечном итоге у меня могут быть другие объекты для которых мне также может понадобиться заниматься стилем.

Учитывая это, должен ли я создать отдельный style.cfc? Будет ли это расширено объектом div? Или объект стиля будет расширять объект div? Я понимаю, что более конкретный объект расширяет менее специфический, но я не уверен, что более конкретно в этом случае: является ли это объектом div, который ссылается на конкретный div или объект стиля, который предоставляет определенный набор данные?

Заранее благодарен!

+2

Это работа CSS, а не CFC – Henry

ответ

3

Во-первых, если вам не нужно писать стили «на лету», я бы создал один или несколько таблиц стилей и динамически связывал их, вместо того чтобы создавать их динамически.

Предполагая, однако, что вам нужно создать их на лету ...

я бы не иметь либо контроля (дел) продлить стиль или наоборот. Стиль не является более конкретным определением div и не является обратным. Я хотел бы создать объект стиля, который содержит только метаданные отображения для данного элемента или набора элементов. Это может содержаться внутри вашего объекта control/div (а не расширения) или может быть частью объекта страницы. Стиль определенно связан с элементом управления, но я бы не совмещал их, так как это затрудняет разделение контента и презентации.

+0

Определенно лучший способ пойти. Я все для полного развода вашего кода CF и кода CSS. Я бы не стал писать какой-либо фактический стиль с CF и делать то, что Бен защищает, динамически меняя Лист стиля, связанный с. –

+0

Я не разрабатываю таблицы стилей, которые будут загружаться динамически. Я использую CF для написания статических таблиц стилей, но я хочу, чтобы значения в этих стилях настраивались моими пользователями. – Gary

+1

Я бы написал таблицу стилей пользователя с использованием cffile и загрузил ее динамически. Таким образом, вы записываете его только при внесении изменений не каждый раз, когда страница загружается. –

0

Отнюдь не я говорю, что это лучший подход, но если вы действительно хотели использовать ХФУ для стилизации своих страниц, вы могли бы расширить DivTag.cfc HtmlTag.cfc, который будет действовать как ваш базовый класс для все теги HTML. Затем вы можете создать StyleAttribute.cfc в свой HtmlTag.cfc для работы с любыми свойствами стиля, такими как цвета фона и отступы. Итак, вы в конечном итоге вызываете функции, такие как myDiv.getStyle(). GetPadding().

В общем, вы должны попытаться одобрить композицию («имеет») над наследованием («является») и не слишком сумасшедшую с вашими иерархиями компонентов. В этом случае я бы рекомендовал использовать CSS-файлы для стилизации ваших страниц.

Смежные вопросы