Темы Vs.Стили старой школы - PullRequest
       20

Темы Vs.Стили старой школы

2 голосов
/ 20 апреля 2011

Я давно занимаюсь разработкой сайтов на ASP.NET.Когда я впервые узнал, как работают Темы и Скины в ASP.NET, я обнаружил, что это здорово, легко и все.

Но позже я начал находить подход App_Themes довольно раздражающим, и CSS, который мы вставили в него.это, совсем не гибки и никак.Я что-то упустил?

  1. CSS-файлы автоматически добавляются на страницы aspx, используя тему:

    Я использовал эту информацию, когдаСначала начал веб-разработку.Но позже, когда я узнал все больше о CSS, я начал находить это действительно тревожным.Иногда существуют страницы, на которых бесполезно добавлять определенный файл CSS.

    И, что хуже всего, он всегда добавляет их в алфавитном порядке, поэтому вы не можете контролировать, какой файл стоит первым.Это особенно важно, если вы сделали какой-то CSS-файл «перезагрузки».Таким образом, присвоение имен файлам не всегда может быть таким, каким вы хотите их видеть, поскольку вы хотите, чтобы CSS-файл сброса занимал верхнюю позицию в алфавитном порядке.

    Я понимаю, что решение для этого может быть в том, чтобывесь код CSS в одном файле (что на самом деле лучше для производственной среды).Но это довольно негибко и сделает управление вашим CSS-кодом довольно сложным.

  2. Перезапись URL

    Это серьезная проблема, так какCSS-файлы, которые добавляются на веб-сайт, имеют относительный путь к реальной странице aspx, а не к URL-адресу после того, как он был перезаписан.

    Например, если этот URL: http://www.example.com/date/category/item.aspx переписанот http://www.example.com/items.aspx?id=item. Ссылка на файл CSS внутри этой страницы будет выглядеть следующим образом:

    <link href="App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    Где это должно быть: <link href="../../App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    Или просто: <link href="http://www.example.com/App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    Таким образом нарушается дизайн веб-страницы, так как браузеры не найдут файл CSS.

Это две основные проблемы, с которыми я столкнулсятемы.Таким образом, я спрашиваю, является ли плохим ходом отказ от подхода App_Themes и переключение обратно на дизайн старой школы CSS (т.е. создайте обычную папку, поместите в нее мои CSS-файлы и добавьте ссылки на эти CSS вручную в мой файл).страницы)?Есть ли какая-то особенность, которую мне здесь не хватает?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

См. MSDN для различий между двумя подходами - по сути, используя тему, вы можете установить любые свойства элементов управления, а не только элемент управления. Если вы используете темы только для стилизации, то вы не потеряете что-либо в стиле CSS. Я лично обнаружил, что использование CSS обеспечивает гораздо лучший контроль, чем использование встроенных тем.

1 голос
/ 20 апреля 2011

Я считаю, что сочетание обоих подходов работает лучше всего.Когда вы думаете об использовании тем, вы должны только создавать CSS-файлы, изображения, файлы обложек, которые управляют внешним видом сайта (изменяя цвета или логотипы и т. Д.) Между различными темами.

Чтобы убедиться, чтосайт структурирован правильно, у меня всегда есть base.css, reset.css и любые другие структурные css-файлы вне директории темы, которые находятся в его собственной папке в основной части сайта (например, / includes / css /)и / includes / js / для моего javascript).

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

Что касается перезаписи URL-адреса, ссылки на мои ссылки всегда начинаются с /, чтобы убедиться, что сервер знает, что он всегда должен начинаться с корня сервера, чтобы найти необходимые файлы.Поэтому моя ссылка на мои структурные CSS-файлы всегда будет такой:

<link href="/includes/css/base.css" type="text/css" rel="stylesheet" />

HTH.

0 голосов
/ 20 апреля 2011

Я думаю, что лучше иметь отдельную таблицу стилей только для целей управления и рекурсивности.Если вы хотите повторить какой-то стиль, вы можете легко получить к нему доступ в любое время, вместо того, чтобы повторять код для каждого стилизованного объекта.Если вы хотите изменить стиль для нескольких объектов, просто измените его в таблице стилей, и это повлияет на все объекты!

Надеюсь, это поможет.

...