Как настроить переключатель CSS

Настроить переключатель CSS

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

Я планирую использовать магическое значение строки запроса и/или ссылку javascript в нижнем колонтитуле, которая записывает cookie для выбора новой страницы CSS. Мы работаем в ASP_NET 3.5. Есть какие-нибудь рекомендации?

Переключатель CSS

Я должен упомянуть, что мы используем условные комментарии IE для поддержки IE8, 7 и 6. Я могу создать функцию, которая выполняет замену:

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->

4 ответа

В Asp_net 3.5 вы должны иметь возможность настроить тег Link в заголовке как тег сервера. Затем в codebehind вы можете установить свойство href для элемента link на основе значения cookie, строки запроса, даты и т. д.

В вашем aspx-файле:

<head>
   <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

И в коде:

protected void Page_Load(object sender, EventArgs e) {
   string stylesheetAddress = // logic to determine stylesheet
   linkStyles.Href = stylesheetAddress;
}

Спасибо, я об этом не подумал, но . NET с этим не очень хорошо справился: <link rel="stylesheet" href="/style.css<%= VersionQueryString %>" type="text/css" />

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

Я бы предложил сохранить выборку таблиц стилей в сеансе, чтобы вам не приходилось полагаться на постоянное присутствие ключа querystring. Вы можете проверить сеанс в Page_Load и добавить соответствующую ссылку на таблицу стилей. Похоже, что это временная/разрабатываемая ситуация, поэтому используйте то, что легко и работает.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
   Session.Add("CSS",Request.QueryString["css"]);

Я бы сделал следующее: www _ website _ com _ ?stylesheet=new.css Затем в вашем коде ASP_NET:

if (Request.Querystring["stylesheet"] != null) {
     Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
     Response.Redirect(<Current Page>);
}

Затем вы определяете свои таблицы стилей:

if (Request.Cookies["stylesheet"] != null) {
     // New Stylesheet
} else {
     // Default
}

что вы делаете, когда пользователь переходит на другую страницу? приходит по внешней ссылке?

Объединение списков в столбцы

Обернуть списки в столбцы

Я использую ColdFusion для заполнения шаблона, который включает в себя неупорядоченные списки HTML ( <ul> ы). Большинство из них не такие уж длинные, но некоторые имеют смехотворно большую длину и могли бы поместиться в 2-3 колонки Есть ли способ сделать это легко с помощью HTML, ColdFusion или, может быть, JavaScript (я принимаю решения jQuery)? Не стоит использовать слишком сложное тяжеловесное решение, чтобы сэкономить время на прокрутке. Этот плагин jquery вам чем-то полезен? Ознакомьтесь с плагином Columnizer jQuery. 13 ответов Итак, я откопал эту статью из A List Apart CSS Swag: Многоколоночные списки. Я в итоге использовал первое решение, оно не лучшее, но другие требуют либо использования сложного HTML, который нельзя сгенерировать динамически, либо создания множества пользовательских классов, что можно сделать, но это потребует множества встроенных стилей и, возможно, огромной страницы. Однако другие решения по-прежнему…

Подробнее »

Как в JS использовать клавиатуру для перемещения в раскрывающимся меню

Использование клавиатуры для перемещения в раскрывающимся меню

Как в JavaScript использовать клавиатуру для перемещения по опциям в раскрывающимся меню У меня есть специально созданный динамический раскрывающийся список на основе ajax [div]. У меня есть поле [ввода], которое; onkeyup , запускает поиск Ajax, который возвращает результаты в div и возвращается с помощью innerHTML . Все div имеют основные моменты onmouseover , поэтому типичный успешный поиск дает следующую структуру (простите за полукод): [input] [div id=results] //this gets overwritten contantly by my AJAX function [div id=result1 onmouseover=highlight onclick=input.value=result1] [div id=result2 onmouseover=highlight…

Подробнее »

Http Auth в букмарклете Firefox

Http Auth в букмарклете Firefox

Я пытаюсь создать букмарклет для размещения закладок del_icio_us в отдельной учетной записи. Я тестировал это из командной строки, например: wget -O - --no-check-certificate \ "https _ seconduser:thepassword@ api _ del _ icio _ us/v1/posts/add?url=http _ seet _ dk&description=test" Это прекрасно работает. Затем я захотел создать закладку в своем Firefox. Я погуглил, нашел кусочки и в итоге получил следующее: javascript:void( open('https _ seconduser:password@ api _ del…

Подробнее »