Как применить главную страницу и CSS к дочерней странице - PullRequest
3 голосов
/ 04 марта 2011

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

Iиметь такой набор папок:

RootContent
      UsersContent
      AdminContent

Поскольку главная страница и файлы css находятся в корневом содержимом, когда главная страница пытается найти файл css внутри UsersContent или AdminContent, она не может найти его.

Я использую JavaScript, чтобы обнаружить браузер и правильно установить CSS для большинства браузеров и другой файл для IE6, поскольку здесь требуется какая-либо идея?.

<script type="text/javascript">
    if((BrowserDetect.browser.toString() == "Firefox") && (BrowserDetect.version.toString() == "3.5"))
    {
        document.write('<link rel="Stylesheet" href="<%=ResolveUrl("~/StyleSheet.css") %>" type="text/css" />');
    }
    else if((BrowserDetect.browser.toString() == "Explorer") && (BrowserDetect.version.toString() == "6"))
    {
        document.write('<link rel="Stylesheet" href="~/StylesheetIE6.css" type="text/css" />');
    }
</script>

В кодеВыше я попытался <% ResolveUrl("~/StyleSheet.css") %>, но не работал, он работает в той же папке, но не в дочерних файлах.

РЕДАКТИРОВАТЬ: Просто чтобы уточнить, что мой CSS-файл находится в моей корневой папке, а не в дочерних

Ответы [ 3 ]

2 голосов
/ 04 марта 2011

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

В вашем файле web.config добавьте

. Он будет автоматически добавлен на каждую страницу.

Примечание: - В этом случае будут применены все CSS.Если у вас есть браузер css, то это не тот путь.

[SEE UPDATED]

CSS-файл, такой как "iespecific.css", который будет загружен в IE 6, а не в других браузерах, используйте следующий кодв разделе HEAD вашей веб-страницы:

<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

Аналогично, для любой версии IE 5 (включая 5.0, 5.01, 5.5 и т. д.) используйте следующее:

<!--[if IE 5]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

чтобы определить версию выпуска IE 5.5, вам потребуется следующий код:

<!--[if IE 5.5000]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

Например, для тестирования всех версий IE, больших или равных версии 6, вы можете использовать

<!--[if gte IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

Приведенные выше примеры кода работают, потому что обычный браузер видит весь блок как комментарии HTML, так как они заключены в "".IE 5 или выше, однако, попытается проанализировать блок, чтобы увидеть, есть ли в нем определенные инструкции.

Вы также можете исключить определенную таблицу стилей, используя этот метод.Например, чтобы исключить файл CSS "not-ie.css" из IE 6, используйте:

<![if !(IE 6)]>
<link rel="stylesheet" type="text/css" href="not-ie.css" />
<![endif]>

Обратите внимание на оператор "!"непосредственно предшествующий "IE".Это оператор NOT, поэтому следующие операторы должны использоваться только в том случае, если браузер не сопоставляет выражение «IE 6».

Опять же, приведенный выше код работает, поскольку обычный браузер будет интерпретировать «» и «<[endif]> "как теги HTML, которые он не распознает, и игнорирует их.Однако этот код не будет проверяться как корректный в валидаторе HTML, так как он не использует допустимые теги HTML.

Обратите внимание, что вы также можете проверить IE, не указав номер версии.Например, следующее загружает таблицу стилей, только если браузер не IE 5 или выше:

<![if !IE]>
<link rel="stylesheet" type="text/css" href="not-ie.css" />
<![endif]>

Документацию Microsoft для этой нестандартной функции можно найти по адресу http://msdn2.microsoft.com/en-us/library/ms537512.aspx

Поскольку в документации не указано, что эти функции применимы только к версиям IE для Windows, я предполагаю, что они также применимы к версии для Macintosh.Я не могу проверить это, хотя.

0 голосов
/ 18 марта 2011

Вы пытались добавить runat="server" к тегу ссылки?Работал на меня.

0 голосов
/ 04 марта 2011

Я всегда использовал ResolveClientUrl для этой цели. Можете ли вы попробовать это вместо ResolveUrl? И вот сообщение , обсуждающее разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...