ASP.Net, Master Pages: таблица стилей на страницу - PullRequest
2 голосов
/ 06 октября 2009

Это мои предположения, это правильно?

  1. Макет с использованием CSS предпочтительнее, чем используя таблицы.
  2. CSS должен быть извлечен в отдельный файл, а не в строку.
  3. CSS импортируются (связываются) из того, что находится в site.master, поэтому все .css импортируются (и применяются к) для всех страниц .aspx

Учитывая это, у меня есть проект с одной главной страницей и двумя .aspx страницами. На каждой из этих страниц есть таблица с идентификатором «records».

Вопрос: Можно ли импортировать файл .css для каждой отдельной страницы .aspx?

Есть ли лучший способ область действия HTML-элементы на одной странице?

Ответы [ 5 ]

10 голосов
/ 06 октября 2009

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

К первому вопросу - конечно, вы можете включить файлы CSS на отдельной странице. Вы даже можете сделать это с помощью заполнителей:

.master:
<head>
    <link rel="stylesheet" type="text/css" href="global.css" />
    <asp:ContentPlaceHolder runat="server" id="stylesheet" />
</head>

.aspx:
<asp:Content runat="server" ContentPlaceHolderID="stylesheet">
    <link rel="stylesheet" type="text/css" href="page_specific.css" />
</asp:Content>

Чтобы ограничить стили до уровня страницы, я часто помещаю класс в тег <body>:

<body class="contact-page">

Затем в CSS я могу указывать конкретные элементы, которые должны отличаться на этой странице:

.contact-page .something h3 .more {style}
1 голос
/ 06 октября 2009

настроить темы. CSS-файл как часть темы будет импортирован автоматически.

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

1 голос
/ 06 октября 2009

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

Когда люди говорят «использовать CSS вместо таблиц», они имеют в виду не использование таблиц для общего макета страницы (например, где находится меню, верхний колонтитул, нижний колонтитул и содержимое страницы), но использовать таблицы для реальных таблиц ^^

0 голосов
/ 06 октября 2009

Давайте посмотрим на ваши предположения. Все они в общем правильны, но стоит присмотреться:

1) Макет с использованием CSS предпочтительнее, чем с использованием таблиц.

Вроде. Было бы точнее сказать, что это семантическая компоновка по сравнению с несемантической компоновкой, и CSS является нормальным средством для реализации семантической компоновки. Разница в том, что иногда просто невозможно достичь желаемого макета, используя только семантически подходящие структуры. Я собираюсь съесть его для этого, но когда передо мной стоит выбор между целой кучей дополнительных тегов div, которые не относятся к одной таблице, таблица может быть лучшим выбором.

2) CSS должен быть извлечен в отдельный файл, а не в строку

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

3) CSS импортируются (связываются) из того, что находится в site.master, поэтому все .css импортируются (и применяются к) для всех страниц .aspx.

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

0 голосов
/ 06 октября 2009

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

так что-то вроде:

<html>
<head>
<link to your css file />
</head>
<body>
<asp:ContentPlaceHolder id="content" runat="server" />
</body>
</html

в файле главной страницы, вы можете сделать это:

<html>
<head>
<asp:ContentPlaceHolder id="head" runat="server" />
</head>
<body>
<asp:ContentPlaceHolder id="content" runat="server" />
</body>
</html

и затем поместите различные файлы CSS в этот новый заполнитель содержимого в заголовке документа.

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