Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с "передачей" стилей

16K
20 апреля 2006 года
DrWoq
13 / / 20.04.2006
Привет всем,
Может, кто-то уже решал подобную проблему:
Данное (всё смоделировано специально, как иллюстрация):
1. Есть пользовательская страница (http://www.myreal.net/example/index.html), со своими стилями;
2. Есть промежуточная страница (страница проверки) сервиса, которая вызывается методом form с первой страницы (http://www.myreal.net/SendMail.aspx -- не откроется простым переходом, а только в случае наличия у пользователя первой страницы и домена (второго уровня) на сервере) со своими (одинаковыми для всех) стилями;
3. Есть завершающая страница, находящаяся там же, где и первая -- на хосте пользователя (http://www.myreal.net/example/sendok.html) с теми же, пользовательскими стилями, что и первая;

Требуется:
Передать стили первой (и третьей) страницы -- второй. Причем, не известно какие стили у пользователей, не известно сколько пользователей.
Методы, вроде background:none; не работают.
Из-за того, что не известно, какие стили у пользователей -- решение должно быть в "руках" у пользователя. Шаблоны (разнообразные) тоже не подходят -- сильно грузят сервер.

С уважением, Valery
352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
А при обращение к стр. 2, можно передать url пользовательских стилей или нет? Если да,
то потом при формирование второй страницы эти урлы и юзать.
ЗЫ если пользователь в своем документе юзал что-то вроде <div style="align: center;">рыба</div>, а скорее всего таких будет большинство,
то из его страницы тебе и это нужно извлечь, а иначе передача стилей бесполезна.
352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by skywalker
А при обращение к стр. 2, можно передать url пользовательских стилей или нет? Если да,
то потом при формирование второй страницы эти урлы и юзать.
ЗЫ если пользователь в своем документе юзал что-то вроде <div style="align: center;">рыба</div>, а скорее всего таких будет большинство,
то из его страницы тебе и это нужно извлечь, а иначе передача стилей бесполезна.


А вообще в css есть команда import("file.css") ; если тбе это поможет.

832
21 апреля 2006 года
Carpus
390 / / 14.04.2005
Цитата:
Originally posted by skywalker
А вообще в css есть команда import("file.css") ; если тбе это поможет.



Ну, вообще-то это не команда, а at-правило (at-ruler) - @import "style.css"; или @import "http://your.host.net/style.css";

352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by Carpus
Ну, вообще-то это не команда, а at-правило (at-ruler) - @import "style.css"; или @import "http://your.host.net/style.css";


Да правило, :) , спасибо за замечание.

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
А вообще в css есть команда import("file.css") ; если тбе это поможет.


Я может, по-дурному описал проблему?
1. Есть юзер (я его не знаю) и не узнаю никогда. Сервис все юзают анонимно.
2. У юзера есть страница (как правило статика) и есть свои стили (о которых я тоже ничего не знаю). Мне он ничего не передаст.
3. Есть моя страница (о которой он знает) и если что-то сечёт в CSS, то ему необходимо что-то "подсунуть" на моей (динамической) странице, чтобы он смог использовать и получить на моей странице -- свои стили. Во, проблемка.
Соединение статики и динамики. Я специально дал беграунд чёрный, дабы была заметна разница. На динамике -- беграунд -- белый.

С уважением, Valery

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
А при обращение к стр. 2, можно передать url пользовательских стилей или нет? Если да,
то потом при формирование второй страницы эти урлы и юзать.
ЗЫ если пользователь в своем документе юзал что-то вроде <div style="align: center;">рыба</div>, а скорее всего таких будет большинство,
то из его страницы тебе и это нужно извлечь, а иначе передача стилей бесполезна.


Нельзя. Регистрации нет. Заставлять юзера вносить допинформацию об урле CSS -- непрактично. К тому же это утяжелит работу сервака. Он и так "серьезно" пашет над рассылкой почты.

832
21 апреля 2006 года
Carpus
390 / / 14.04.2005
Цитата:
Originally posted by DrWoq
Нельзя. Регистрации нет. Заставлять юзера вносить допинформацию об урле CSS -- непрактично. К тому же это утяжелит работу сервака. Он и так "серьезно" пашет над рассылкой почты.



А если время от времени проверять наличие у пользователей собственной таблицы стилей (например через cron в часы наименьшей загрузки сервера) и записывать их в базу?

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by Carpus
А если время от времени проверять наличие у пользователей собственной таблицы стилей (например через cron в часы наименьшей загрузки сервера) и записывать их в базу?


У меня нет данных о пользователях. Это данное. Регистрации нет, данные все в зашифрованном виде. Я не знаю, кто из пользователей использует удалённую процедуру, логи не ведутся. ПОЛНАЯ анонимность. Я, просто НЕ МОГУ проверять, я не знаю ГДЕ и ЧТО проверять. Если вести логи, парсить данные, значит вся затея рассыпается -- можно добраться до данных юзеров и продать данные спамерам, посему на это мы не пойдём.
В этом и проблема :(
Я вот думаю, может xml подсунуть вместо формы, но тогда следует дать ещё один пример формы в связке xml-xslt, но юзеры разные, возьмут всё равно пример попроще: простую хтмл-вёрстку. Заставлять не можем.
Я ощущаю, что где-то есть какой-то хитрый ход с CSS, но, как собака -- сказать не могу :)
С уважением, Valery
P.S. Если какой-то вариант подскажете, я прямо по живому попробую, как в "За стеклом" :)

352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
А просто обратиться по веб интерфейсу не льзя, нужна авторизация? А то можно было бы в конце концов прогой обращаться к странице, и анализировать ответный html код, смотреть стили.
Просто css можно только влючить в документ (но ты не можешь определить url), а других ходов нет.
16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
А просто обратиться по веб интерфейсу не льзя, нужна авторизация? А то можно было бы в конце концов прогой обращаться к странице, и анализировать ответный html код, смотреть стили.
Просто css можно только влючить в документ (но ты не можешь определить url), а других ходов нет.


Я, знаешь какую конструкцию испытывал:
Прописывал стили, которых не существует на второй странице, т.е. не определял в хидере css-файл, а в коде писал классы (т.е. те, которые на второй странице не определены).
Затем эти же классы прописывал в стилях первой страницы, в надежде на то, что есть родительские стили, вторая должна подхватить потоки, блоки, слои, цвета и... фиг. Я вот в каком направлении думаю, вдруг можно что-то вымутить.

С уважением, Valery

352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by DrWoq
Я, знаешь какую конструкцию испытывал:
Прописывал стили, которых не существует на второй странице, т.е. не определял в хидере css-файл, а в коде писал классы (т.е. те, которые на второй странице не определены).
Затем эти же классы прописывал в стилях первой страницы, в надежде на то, что есть родительские стили, вторая должна подхватить потоки, блоки, слои, цвета и... фиг. Я вот в каком направлении думаю, вдруг можно что-то вымутить.

С уважением, Valery


А можешь html для примера выложить? Может просто в коде заморочки.

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
А можешь html для примера выложить? Может просто в коде заморочки.


Сейчас, я ещё одну тему попробую, потом (если ничего не выйдет) -- выложу.
А как тут выкладывать? Просто, копи-паст?

С уважением, Valery

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by DrWoq
Сейчас, я ещё одну тему попробую, потом (если ничего не выйдет) -- выложу.


Не вышло :(
Ладно, а кода с гулькин код (для иллюстрации).
1. Первая страница имеет код:
BODY {
background:#000000;
color:#ffffff;
}
2. Вторая страница не имеет в сss-файле раздела бади. Зато в коде (конечно же) имеет тэг <body>.
Идея была в том, что первая страница, со своими классами, является родительской по отношению ко второй, но... чуда не случилось.

Та же беда касается и конструкций чего-то_там.класс {и собственно все правила}.

С уважением, Valery

352
21 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by DrWoq
Не вышло :(
Ладно, а кода с гулькин код (для иллюстрации).
1. Первая страница имеет код:
BODY {
background:#000000;
color:#ffffff;
}
2. Вторая страница не имеет в сss-файле раздела бади. Зато в коде (конечно же) имеет тэг <body>.
Идея была в том, что первая страница, со своими классами, является родительской по отношению ко второй, но... чуда не случилось.

Та же беда касается и конструкций чего-то_там.класс {и собственно все правила}.

С уважением, Valery


Что бы наследование было, нужно явно указать от чего что наследуется, т.е.:
body чего-то_там.класс {и собственно все правила}
соответсвенно body должно быть описано раньше, чем начнет использоваться.
Даже если ты напишешь:
BODY {
background:#000000;
color:#ffffff;
}
, а юзер чей стиль грузиться после
p{color: red;}
то использоваться будет последний, он унаследует
background, но отменит старый цвет текста, сделает красным, так что такое совмещение может вообще изуродовать дизайн

16K
21 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
Что бы наследование было, нужно явно указать от чего что наследуется, т.е.:
body чего-то_там.класс {и собственно все правила}
соответсвенно body должно быть описано раньше, чем начнет использоваться.
Даже если ты напишешь:
BODY {
background:#000000;
color:#ffffff;
}
, а юзер чей стиль грузиться после
p{color: red;}
то использоваться будет последний, он унаследует
background, но отменит старый цвет текста, сделает красным, так что такое совмещение может вообще изуродовать дизайн


Я так и делаю. у меня вообще стиль с правилами есть только для первой страницы, а на второй класс указан, но правила для класса не установлены. А можно более популярно?
Предположим у меня есть конструкция на первой странице p{color:red;}, а мне требуется на второй получить в p -- color:red, причём на второй странице я не использую никаких правил для стилей, но использую тэг

?
Причем, первая страница на одном урл, вторая на другом.
Да, с наступающими всех праздниками.
Valery

352
22 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by DrWoq
Я так и делаю. у меня вообще стиль с правилами есть только для первой страницы, а на второй класс указан, но правила для класса не установлены. А можно более популярно?
Предположим у меня есть конструкция на первой странице p{color:red;}, а мне требуется на второй получить в p -- color:red, причём на второй странице я не использую никаких правил для стилей, но использую тэг

?
Причем, первая страница на одном урл, вторая на другом.
Да, с наступающими всех праздниками.
Valery


Спасибо, тебя и Всех с праздником!
В css все последующие объявления отменяют предыдущие, если они им протворечат, т.е. объявив 2 раза p использоваться будет последнее, за одним исключением вариант использовать инструкцию !important;
Например:
1 файл css:
p {color: red !important}
2 файл css:
p {color: green;}
p.blue{color: blue;}

<p class="blue">рыба</p>
Так вот там где установлено !impotant и будет использоваться правило стилей, т.е. текст параграфа будет красным, нисмотря на то что последуещие ему противоречат. Но если продвинутый юзер поставит тоже !important, то будет использоваться последнее объявление, т.е.
1 файл css:
p {color: red !important}
2 файл css:
p {color: green !important}
p.blue{color: blue;}

<p class="blue">рыба</p>
Текст станет зеленым. Мой тебе совет, делать так и надеется что ни кто из пользователей ни знает об существовании !important или же отказаться от этой затеи вообще, иначе у шибко продвинутого юзера дизайн страницы слетит вообще.

P.S. А вообще попробуй загружать все наоборот сначала стили юзера, а потом твои, но в своих, на всякий случай, пропиши !important, везде, может что получится.
Если нет, то подумаем еще, задача странная, но интересная.

16K
22 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
Спасибо, тебя и Всех с праздником!
В css все последующие объявления отменяют предыдущие, если они им протворечат, т.е. объявив 2 раза p использоваться будет последнее, за одним исключением вариант использовать инструкцию !important;
Например:
1 файл css:
p {color: red !important}
2 файл css:
p {color: green;}
p.blue{color: blue;}

<p class="blue">рыба</p>
Так вот там где установлено !impotant и будет использоваться правило стилей, т.е. текст параграфа будет красным, нисмотря на то что последуещие ему противоречат. Но если продвинутый юзер поставит тоже !important, то будет использоваться последнее объявление, т.е.
1 файл css:
p {color: red !important}
2 файл css:
p {color: green !important}
p.blue{color: blue;}

<p class="blue">рыба</p>
Текст станет зеленым. Мой тебе совет, делать так и надеется что ни кто из пользователей ни знает об существовании !important или же отказаться от этой затеи вообще, иначе у шибко продвинутого юзера дизайн страницы слетит вообще.

P.S. А вообще попробуй загружать все наоборот сначала стили юзера, а потом твои, но в своих, на всякий случай, пропиши !important, везде, может что получится.
Если нет, то подумаем еще, задача странная, но интересная.


Сейчас попробую, спасибо за участие :)
"Это тебе не C# и не ASP.NET -- это Великий и Могучий CSS" :)))

16K
22 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by DrWoq
Сейчас попробую, спасибо за участие :)
"Это тебе не C# и не ASP.NET -- это Великий и Могучий CSS" :)))


Не работает, выглядит так:
1 страница (правила):
BODY {
background: #000000 !important;
color: #ffffff !important;
}
DIV.body {
background: #000000 !important;
color: #ffffff !important;
}
DIV.body_two {
background: #000000 !important;
color: #ffffff !important;
}

2. страница (правила):
BODY {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 11px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
DIV.body {
WIDTH: expression(((document.documentElement.clientWidth || document.body.clientWidth) < 800)? "800px" : "100%")
}
DIV.body_two {
min-width: 800px
}
Т.е., на второй странице вообще нет бэграунда и цвета шрифта, должно по идее использовать правила, установленные на первой, а не использует.

С уважением, Valery

352
22 апреля 2006 года
skywalker
694 / / 10.02.2006
:!!!: :!!!: Все работает , проверял в IE и FireFox.
Может ты в документ их не правильно включил, проверь, или выложи посмотреть.
16K
22 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
:!!!: :!!!: Все работает , проверял в IE и FireFox.
Может ты в документ их не правильно включил, проверь, или выложи посмотреть.


Первая страница та же, что я указывал вначале (правлю по-живому, смотрю в Осле и Лисе -- результат один и тот же): http://www.myreal.net/example/index.html;
Её CSS: http://www.myreal.net/example/examples.css.
Вторая страница: http://www.myreal.net/SendMail.aspx, правильно откроется, если на первой чего-то напишешь в поля и нажмёшь пымпу [Далее];
Её CSS: http://www.myreal.net/clear.css

С уважением, Valery

352
22 апреля 2006 года
skywalker
694 / / 10.02.2006
Цитата:
Originally posted by DrWoq
Первая страница та же, что я указывал вначале (правлю по-живому, смотрю в Осле и Лисе -- результат один и тот же): http://www.myreal.net/example/index.html;
Её CSS: http://www.myreal.net/example/examples.css.
Вторая страница: http://www.myreal.net/SendMail.aspx, правильно откроется, если на первой чего-то напишешь в поля и нажмёшь пымпу [Далее];
Её CSS: http://www.myreal.net/clear.css

С уважением, Valery


Написал t во всех полях, нажал далее, попал на 2 страницу, но на ней ни нашел ни одного включения 1 страницы стилей, :!!!: она у тебя туда не импортируется ни как не @import ("http://www.myreal.net/example/examples.css") ; ни <link href="http://www.myreal.net/example/examples.css" type="text/css" rel="stylesheet"> в коде html, я вообще не нашел examples.css нигде.

16K
22 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
Написал t во всех полях, нажал далее, попал на 2 страницу, но на ней ни нашел ни одного включения 1 страницы стилей, :!!!: она у тебя туда не импортируется ни как не @import ("http://www.myreal.net/example/examples.css") ; ни <link href="http://www.myreal.net/example/examples.css" type="text/css" rel="stylesheet"> в коде html, я вообще не нашел examples.css нигде.


А!!!... Так не могу импортировать, потому как не знаю о ней ничего. В этом же и дело. Я-то думал, что как в C# наследуем родительский признак.
А иначе никак?
Динамикой я запросто могу. Вставить переменную <% any_css %> и получи, как импорт, но нагрузка (если динамика), а со статики я не получу, только с динамики, а сервис расчитан на любые страницы, понимаешь? Э-э-эх, блин. Подожди, а в CSS нет такой фиговины как в XML, что-то типа DTD, я бы определил правила, ссылку делали бы на правила?
С уважением, Valery

352
22 апреля 2006 года
skywalker
694 / / 10.02.2006
может просто сделать несколько вариантов css файлов и пусть юзер выберит что нравиться и это значение хранить, а правила типа dtd в xml, для css не составишь, если можешь импортируй файл или url файла.
16K
22 апреля 2006 года
DrWoq
13 / / 20.04.2006
Цитата:
Originally posted by skywalker
может просто сделать несколько вариантов css файлов и пусть юзер выберит что нравиться и это значение хранить, а правила типа dtd в xml, для css не составишь, если можешь импортируй файл или url файла.


Можно было бы ещё проще. Но, ... теоретически, можно определить какой адрес, какой css запрашивает, следовательно (теретически) можно вычислить ряд адресов, секретность страдает, нагрузка увеличивается, что не есть -- хорошо для такого сервиса. А ему, бедному (сервису) следует трудиться над спам-проверкой и рассылкой сообщений. Хотя, разве что, дать еще одну переменную в форму: хайден, если выбрал какой-то из наших CSS, то пропиши его урл и получи страницу, хоть удалённо похожую на свою.
Я уверен, что есть какой-то, простой (не динамический) способ, пока не могу его выловить. Ещё подумаю. Всё равно спасибо тебе, за участие. Неплохой у Вас форум, честно. С наступающей Пасхой тебя, удачи и счастья.
С уважением, Valery

12
22 апреля 2006 года
alekciy
3.0K / / 13.12.2005
Цитата:
Originally posted by DrWoq
Я уверен, что есть какой-то, простой (не динамический) способ, пока не могу его выловить.


На чем строиться такая уверенность? В контексте поставленой тобою задачи (когда нифига не известно о пользователе, и нужно оградить пользователя от лишних теледвижений) это сделать нельзя.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог