Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подключение разных стилей (https://javascript.ru/forum/events/54753-podklyuchenie-raznykh-stilejj.html)

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'овской опере, лисе и ие стили не цепляются.

В чём может быть проблема?

ksa 31.03.2015 08:34

Цитата:

Сообщение от telekomstoy
В чём может быть проблема?

Смотря что ты там тем ПХП намастыриваешь...

telekomstoy 31.03.2015 12:30

Цитата:

Сообщение от ksa (Сообщение 364085)
Смотря что ты там тем ПХП намастыриваешь...

Скрипт, учитывая переданный параметр, возвращает строку с испортом нужного файла стилей
@import url('style.css');

ksa 31.03.2015 13:34

Цитата:

Сообщение от telekomstoy (Сообщение 364121)
Скрипт, учитывая переданный параметр, возвращает строку с испортом нужного файла стилей
@import url('style.css');

Согласно этой статейки все поддерживается современными браузерами...

telekomstoy 31.03.2015 13:51

Цитата:

Сообщение от ksa (Сообщение 364129)
Согласно этой статейки все поддерживается современными браузерами...

В том то и дело. Вроде как поддерживается всё, а на практике где-то есть косяк. Всемогущий гугл как-то тоже не особо кишит знаниями по этому вопросу.

Пытался найти ответ на вопрос, не лагают ли браузеры с файлом стиле в формате php - тоже что-то ничего не нашёл.

ksa 31.03.2015 14:03

Цитата:

Сообщение от telekomstoy
на практике где-то есть косяк

Делай тестовый пример (простой и полный) выкладывай сюда...

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

Цитата:

Сообщение от Poznakomlus (Сообщение 364322)
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.

jsnb 01.04.2015 07:12

Цитата:

Сообщение от telekomstoy (Сообщение 364307)
Там и нет практически ничего. Файл 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");';}
?>


Часовой пояс GMT +3, время: 14:37.