[РЕШЕНО сам лапух]Проблема с CSS

Главные вкладки

Аватар пользователя ХулиGUN ХулиGUN 9 мая 2011 в 22:08

Перечитав кучу мануалов решил сделать собственную тему под друпал, так как искать подходящие, переделывать всю графику и копаться в чужом коде не очень то хочется. Сделал *theme*.info, где прописал регионы, цсс и обозначил движок phptemplate. template.php сделал и оставил пустым, так как в пхп не силён и всю логику я бы не осилил, а брать из других тем и копипастить то, что не до конца понимаю, заменяя названия в функциях на свои, я не стал. Сделал шаблон page.tpl.php... всё отображается, как я и хочу. Косяки исправляю методом научного тыка на локалхосте (кеш отключил, но после каждого внесения изменений в цсс или **.tpl.php всё равно его очищаю)Появилась потребность изменить вид комментариев, для чего я взял шаблон comment.tpl.php из "гирлянды" и закинул в корень своей темы. В шаблоне классы дивов заменил на свои и прописал их в своём файле цсс (он у меня 1 на всю тему) но на сайте я этих изменений не вижу, хотя шаблон по идее работает, так как я в нём убирал титл коментов и он перестал отображаться... но таблица стилей к нему не цепляется... Вопрос: где я накосячил? И как сделать, чтоб всё работало? )))) Если по можете разобраться с этим, то думаю по аналогии разберусь с остальными кастомными шаблонами)))

Комментарии

Аватар пользователя Wscript Wscript 10 мая 2011 в 0:33

Если работает сам шаблон и подгружаются для него стили то это ошибка уже не в drupal, а в верстке. Или я не совсем правильно вас понял.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 1:23

Garland специфически кэширует свои CSS и шаблоны - это как бы факт, который нужно знать. ("Гирлянда" - это garland, я правильно понял?)

Лучше возьмите тему Framework за основу (http://drupal.org/project/framework). Пусть не так красиво как Garland, зато легко поддаётся модификации. Практически - чистый каркас, заготовка.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 1:34

Не пойму:

1)

"ХулиgUN" wrote:
дивам назначил свой класс типа:
<?php

пхп принт то, что мне надо

?>


Это зачем вы HTML пытаетесь выести как PHP-код?
Тогда уж так:

<?php
print '<div class="свой_класс">пхп принт то, что мне надо</div>';
?>

2) ЧТО ТАКОЕ "ГИРЛЯНДА" (таки)? Smile

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 2:16

ХулиgUN wrote:

.comment_zone {
        border: 3px;
        border-style: outset;
        width: 100%;
        padding: 10px;
        background:#fff;
}


атрибут border должет задаваться полностью, типа: border: 3px outset green;

атрибут background должет задаваться полностью, типа: background: #fff url("bg.jpg") repeat-x center top;

Вообще-то, любые проблемы с css решаются на 100% по простому алгоритму:

  1. Убеждаемся, что подгрузился нужный css-файл.
  2. Убеждаемся, что это файл берется не из кэша и что в нем присутствует нужные атрибуты.
  3. Убеждаемся, что сгенерированный html-файл берется не из кэша.
  4. Убеждаемся, что сгенерированный html-файл содержит нужные class и id.
  5. Проверяем, чтобы написание class и id в html-файле соответствует написанию в селекторах в css'е.
  6. После этого открывает firebug и смотрим какое каскадное правило пересилило наш селектор. Добавляем вес в наш селектор.
  7. ПРОФИТ!

Хотя я обычно начинаю проверку с конца. Но иногда приходится проходить этот список полностью.

К слову, использовать знак подчеркивания в селекторе "_" некорректно, в спецификации указан только "-". Но проблема, точно не в этом.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 1:50

Ну вот вам и первая ошибка (как я и писал выше):

<?php<div class="comment_zone">
 ......
</div>?>

Вы пытаетесь HTML (DIV'ы и всё остальное внутри) интерпретировать как код PHP.

Уберите <?php .... ?> в начале и в конце этого фрагмента.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 2:20

ХулиgUN wrote:
...Пробовал проверять Фаербаг`ом... клас определяет верно, но пишет "В данном элементе нет правил стилей." Значит цсс не подсоединяет((( Что может быть?

Пункт 2 или пункт 5.

Ты в drupal'е кэширование css отключил на время разработки, или перед проверкой кэш чистишь?

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 2:42

ХулиgUN wrote:
"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
Пункт 2 или пункт 5.

Честно, я не очень волоку во всём этом... и не знаю каким макаром убеждаться в перечисленных пунктах... я просто в мозиле открыл свою страницу с комментариями, нашёл нужный div и справа мне показало, что нет правил(((

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

Если селектор есть, а браузер его не видит, то 100% ошибка в коде. Или точку в начале селекора пропустил или, например, предыдущее css правило написано с ошибкой, без "}" и эта ошибка распространяется на то правило, с которым ты пытаешься разобраться.

Или перепутал буквы в названии местами, или случайно русскую "С" набрал в имени селектора...

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 2:29

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
Пункт 2 или пункт 5.

У него по идее вообще этот фрагмент не должен выводиться - учитывая ошибку в PHP, про которую я писал выше.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 2:33

OldWarrior wrote:
"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
Пункт 2 или пункт 5.

У него по идее вообще этот фрагмент не должен выводиться - учитывая ошибку в PHP, про которую я писал выше.

да это похоже здесь так коряво работает "расскраска" кода, вставляет открывющий и закрывающий php-теги, когда указано code=php.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 2:40

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
да это похоже здесь так коряво работает "расскраска" кода, вставляет открывющий и закрывающий php-теги, когда указано code=php.

Хм... вроде не встречал такого ранее. Ну-ка проверим:

<?php
// а это PHP-код всех времён и народов
print phpinfo();
?>

PS. Лол, да, так и есть. Smile
Впервые обратил внимание.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 2:45

По сабжу:

1) откройте исходный код и убедитесь, что CSS-файл вообще цепляется.

2) там же - в исходном коде - убедитесь, что к нужным div'ам точно привязан класс (ну а вдруг?).

3) очистите кэш браузера.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 2:55

Посмотрел страницу - класс comment_zone в div'е есть, в CSS его определение - тоже.
Остаётся то, о чём писал v1adimir@drupal.org. То есть - указать полностью все свойства border.

Ну и ещё убедиться, что не вставили случайно русские буквы в название класса (ну, например, "а" или "о").

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 2:58

Кэш чистил на странице http://avtorclub.ru/admin/settings/performance ??? По кнопке "Clear cached data" ?

У тебя похоже там жесткое кэширование работает, может даже не у друпала, а у хостера. Если запрашиваю по адресу http://avtorclub.ru/sites/all/themes/notebook/css/style.css То там есть нужное правило, а вместе со страницей отдеется, что-то не то.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 3:02

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
Если запрашиваю по адресу http://avtorclub.ru/sites/all/themes/notebook/css/style.css То там есть нужное правило, а вместе со страницей отдеется, что-то не то.

Странно. У меня отдаётся именно это.

<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/notebook/css/style.css?Y" />

Это из FF.

Аватар пользователя OldWarrior OldWarrior 10 мая 2011 в 3:06

Лол.
Товарищ, удалите, пожалуйста лишнюю скобку (перед .comment_zone)!

.block {
        font-size: 100%;
        }
}
.comment_zone {
        border: 3px;
        border-style: outset;
        width: 100%;
        padding: 10px;
        background:#fff;
}
Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 10 мая 2011 в 3:13

Ну может у хостера, стоит принудительный обратный прокси, вот оно и не дает обновлять кэш.

vladimir@funny: telnet avtorclub.ru 80
Trying 91.218.229.13...
Connected to avtorclub.ru.
Escape character is '^]'.
HEAD /sites/all/themes/notebook/css/style.css?Y HTTP/1.1
HOST: avtorclub.ru

HTTP/1.1 200 OK
Date: Mon, 09 May 2011 23:10:31 GMT
Server: LiteSpeed
Accept-Ranges: bytes
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
ETag: "1591-4dc87423-cfa80c4"
Last-Modified: Mon, 09 May 2011 23:09:23 GMT
Content-Type: text/css
Content-Length: 5521
Cache-Control: max-age=604800
Expires: Mon, 16 May 2011 23:10:31 GMT

Connection closed by foreign host.