Возможно ли разделение контента, презентации и поведения каждый раз? - PullRequest
4 голосов
/ 10 февраля 2010

Возможно ли разделение контента, презентации и поведения каждый раз?

Много раз через javascript мы добавляем классы в html и используем в CSS visibility:hidden inline.

Должны ли мы всегда вкладывать время, чтобы держать все отдельно?

Ответы [ 4 ]

2 голосов
/ 10 февраля 2010

Хотя это обычно возможно, но часто это не практично. Как вы говорите сами, это стоит времени. Желаете ли вы инвестировать это время, зависит от многих факторов, из которых только один пуризм.

На самом деле, можно утверждать (и я был свидетелем того, как это спорили из первых рук), что поскольку такие теги, как div или span, не несут никакого семантического значения сами по себе, но были Придуманный специально для стиля, в тот момент, когда вы используете один из них на своей странице, вы уже смешиваете контент и презентацию. Это хорошая философская дискуссия, но в деловом контексте она ни к чему не приведет.

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

1 голос
/ 11 февраля 2010

Одной вещью, о которой не говорят слишком много, является то, как сохранить стиль в своем поведении - то есть стиль, такой как $('element').css({color: 'purple'}), из вашего Javascript, когда это возможно. По причинам эстетики кода, а также общего здравого смысла, я обнаружил, что гораздо лучше, чтобы код вносил изменения в стиль, обновляя значения «класса». Другими словами, не думайте в коде, что что-то должно быть «фиолетовым» & mdash; думаю, что это должно быть "царственным" или "отличительным" или "некрасивым":

$('.sections li.updated').each(function() {
  // ...
  if (thingsLookRight) $(this).addClass('kind-of-ugly');
  // ...
});

Тогда ваш CSS может вступить во владение:

li.updated.kind-of-ugly { color: purple; }

Теперь вы можете вносить небольшие изменения в стиле "некрасиво", когда вам захочется, без необходимости портить свой Javascript. Сделайте шрифт больше, сделайте его скрытым, что угодно; логика и действие в коде остаются прежними.

Точно так же вы можете делать удивительные вещи, используя родительские / дочерние классовые отношения в CSS, чтобы сохранить ваше поведение простым, быстрым и свободным от стиля.

1 голос
/ 10 февраля 2010

Ваш вопрос слишком общий, чтобы мы могли дать вам определенный ответ.

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

В то же время я бы сказал, что:

  • Иногда это будет стоить так дорого, что вы этого не сделаете
  • Иногда это будетвсе гораздо сложнее, чем не разделять, так что вы не сделаете это
0 голосов
/ 10 февраля 2010

Я думаю, что как концептуальное разделение, да.

...