Просмотр полной версии : Подключение разных стилей
telekomstoy
30.03.2015, 21:00
Здравствуйте. Такая ситуация:
Для страницы нужно подключать разные стили, в зависимости от профиля пользователя. На самой странице подключаю стили таким образом:
<link type="text/css" href="http://site.ru/test.php/?profile=%PROFILE%" rel="stylesheet" media="all">
%PROFILE% - возвращает id пользователя.
Соответственно, на php-скрипт отправляется id, скрипт отдаёт нужные стили.
Конструкция работает в хроме (и, думаю, во всех web-kit'овских браузерах). А вот в не web-kit'овской опере, лисе и ие стили не цепляются.
В чём может быть проблема?
В чём может быть проблема?
Смотря что ты там тем ПХП намастыриваешь...
telekomstoy
31.03.2015, 12:30
Смотря что ты там тем ПХП намастыриваешь...
Скрипт, учитывая переданный параметр, возвращает строку с испортом нужного файла стилей
@import url('style.css');
Скрипт, учитывая переданный параметр, возвращает строку с испортом нужного файла стилей
@import url('style.css');
Согласно этой статейки (http://htmlbook.ru/css/import) все поддерживается современными браузерами...
telekomstoy
31.03.2015, 13:51
Согласно этой статейки (http://htmlbook.ru/css/import) все поддерживается современными браузерами...
В том то и дело. Вроде как поддерживается всё, а на практике где-то есть косяк. Всемогущий гугл как-то тоже не особо кишит знаниями по этому вопросу.
Пытался найти ответ на вопрос, не лагают ли браузеры с файлом стиле в формате php - тоже что-то ничего не нашёл.
на практике где-то есть косяк
Делай тестовый пример (простой и полный) выкладывай сюда...
telekomstoy
01.04.2015, 00:16
Там и нет практически ничего. Файл php:
<?php
$profile = $_GET['profile'];
if ($profile == '2') {echo 'import url("style1.css")';}
elseif ($profile == '4') {echo 'import url("style4.css")';}
elseif ($profile == '50') {echo 'import url("style3.css")';}
else {echo 'import url("style.css")';}
?>
Подключение уже написал выше
Vlasenko Fedor
01.04.2015, 03:01
switch ($_GET['profile']) {
case 2:
$style = 'style1.css';
break;
case 4:
$style = 'style4.css';
break;
case 50:
$style = 'style3.css';
break;
default:
$style = 'style.css';
break;
}
<link type="text/css" href="<?php echo $style;?>" rel="stylesheet" media="all">
telekomstoy
01.04.2015, 04:33
switch ($_GET['profile']) {
case 2:
$style = 'style1.css';
break;
case 4:
$style = 'style4.css';
break;
case 50:
$style = 'style3.css';
break;
default:
$style = 'style.css';
break;
}
<link type="text/css" href="<?php echo $style;?>" rel="stylesheet" media="all">
К сожалению, данный метод не подходит, т.к. на сервере, на котором лежит страница, нет возможности использовать php.
Там и нет практически ничего. Файл php:
<?php
$profile = $_GET['profile'];
if ($profile == '2') {echo 'import url("style1.css")';}
elseif ($profile == '4') {echo 'import url("style4.css")';}
elseif ($profile == '50') {echo 'import url("style3.css")';}
else {echo 'import url("style.css")';}
?>
Во-первых, где собака перед import? А, во-вторых, пропиши header('Content-Type: text/css'); в начало скрипта, чтобы правильный MIME-тип был. Ну и току с запятой после закрывающей скобки для url надо поставить. В общем, как-то так:
<?php
header('Content-Type: text/css');
$profile = $_GET['profile'];
if ($profile == '2') {echo '@import url("style1.css");';}
elseif ($profile == '4') {echo '@import url("style4.css");';}
elseif ($profile == '50') {echo '@import url("style3.css");';}
else {echo '@import url("style.css");';}
?>
telekomstoy
02.04.2015, 03:31
Во-первых, где собака перед import? А, во-вторых, пропиши header('Content-Type: text/css'); в начало скрипта, чтобы правильный MIME-тип был. Ну и току с запятой после закрывающей скобки для url надо поставить. В общем, как-то так:
<?php
header('Content-Type: text/css');
$profile = $_GET['profile'];
if ($profile == '2') {echo '@import url("style1.css");';}
elseif ($profile == '4') {echo '@import url("style4.css");';}
elseif ($profile == '50') {echo '@import url("style3.css");';}
else {echo '@import url("style.css");';}
?>
Да, прошу прощения, собака и ; стоит. Заметил уже. Хэдер пропишу, отпишусь о результатах.
telekomstoy
02.04.2015, 04:20
Спасибо, с объявленным хэдером, кажется, всё работает.
Прям аж стыдно стало :D
Спасибо! :)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot