Jump to content
  • 0

drupal проблема с классами


Kerny
 Share

Question

Привет всем верстаю для сайта на drupal 7, возникла проблема. Установил модуль fivestar (оценка материала), соответственно, делаю для него красивые рамочки. Но есть загвоздка, там существует два режима, когда зарезанный пользователь смотри и просто гость. Для зареганого я назначаю, такой код:

form.fivestar-widget {
display: inline;
float:right;
border: 1px solid #D3D7D9;
padding: 20px;
margin-bottom:-50px;
}

Выглядит это так:

30i_2.jpg

Затем я добавляю класс в css, это как-бы получается для зарегистрированных пользователей:

.fivestar-static-form-item{
display: inline;
float:right;
border: 1px solid #D3D7D9;
padding: 20px;
margin-bottom:-50px;
}

Выглядит, это вот так:

29v.jpg

Вроде все нормально, но когда захожу под зарегистрированным пользователем и смотрю статью, форматирование выглядит так:

28x_1.jpg

Это связано с тем, что класс div с классом .fivestar-static-form-item, входит в div, который имеет класс .fivestar-widget. Помогите решить проблему.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Вы описали ситуацию с зарегистрированным пользователем и к нему классы и код и проблема с ним же так в чем суть? Подправьте стили

Или же вы имеете виду, что структур кода для анонима и зарегистрированного разная? Тогда надо и хотя бы и тот и тот код показать.

В общем лично мне примерно понятно в чем скорее всего вопрос, но слишком мало информации чтобы помочь

Link to comment
Share on other sites

  • 0

Я хочу сказать, что html структура для зарегистрированного пользователя чуть-чуть отличается от структуры анонима. Для зарегистрированного пользователя выводится значения двух виджетов Средняя оценка всех пользователей и Личная оценка текущего пользователя, эти два виджета описаны в одном div с классом (в css он имеет описание fivestar-widget), то есть div c этим классом включает в себя еще div'ы. Первый fivestar-static-form-item(средняя оценка, она выводится анониму и зарегистрированному пользователю), второй form-type-fivestar form-item-vote (выводится только зареганному).

Отображается это так:

Скрин

Теперь если я выхожу из аккаунта и смотрю из под анонима, то форматирования нет. Соответственно, я лезу в структуру дивов и смотрю нужный класс. Он оказывается fivestar-static-form-item(то есть тот у которого в зарегистрированном варианте родитель тот самый главный див fivestar-widget) Я добавляю css класс и получаю это:

скрин

Все вроде хорошо, но когда вновь авторизоваться, получаю это

скрин

Это потому, что fivestar-static-form-item входит в структуру, главного дива и css обрабатывает сначала главный див, а потом конкретно fivestar-static-form-item. Так вот мне надо, что он его не обрабатывал, когда пользователь зареган и обрабатывал, когда аноним.

Вот структура, когда смотрит зарезанный пользователь

--другие дивы

+главный див

--див средней оценки

--див оценки пользователя

Когда аноним

--другие дивы

--див средней оценки

Вот скрин html в зареганом варианте, выделен главный див.

30y_2.jpg

Edited by Kerny
Link to comment
Share on other sites

  • 0

В общем свертал другим способом... более извращенным... Снял стили, с так называемого главного div'а, и сделал по отдельности каждому div'у виджетов стиль.

Тот самый виджет, которые должны видеть и анонимные и зарегистрированные пользователи:


/**аноним*/
.fivestar-static-form-item{
float:right;
margin-bottom:-50px;
padding:20px;
border: 1px solid #D3D7D9;
padding-right:10px;
margin-right: 30px;/**равняем*/
}
/**зарегистрированный, в этом режиме
создается доп. класс fivestar-combo-stars, поэтому
мы можем обращаться отдельно*/
.fivestar-combo-stars .fivestar-static-form-item{
float:right;
margin-bottom:-50px;
padding:20px;
border: 1px solid #D3D7D9;
padding-right:10px;
margin-right: -30px;/**равняем*/
}

А вот стиль второго, на него-то и попала большая часть извращений:

 
.form-type-fivestar {
padding-top:20px;
padding-right:20px;
padding-bottom:20px;
padding-left:30px;
border-top: 1px solid #D3D7D9;
border-bottom: 1px solid #D3D7D9;
border-right: 1px solid #D3D7D9;
background:#f7f7f8; /**цвет фона сайта*/
}

Здесь мы заливаем, фон цветом сайта, потом продливаем область виджета и бордюры с помощью padding-left, чтобы фон наложился и скрыл в рег. режиме правый бордюр первого виджета, а бордюры дополнили разрыв и соединили в единую визуальную область два дива.

Если-бы в режиме анонимного просмотра drupal или fivestar, создавал отдельный див с классом и оборачивал в него fivestar-static-form-item, а во время просмотра зарегистрированным пользователем его не создавал, то все решилось бы отдельным стилем для этого класса. В моем случае было-бы всего три строки, вместо громоздких наворотов.

{
border: 1px solid #D3D7D9;
padding:20px;
float:right;
}

Надо покопаться в коде, может научусь создавать. Вдруг еще возникнет такая необходимость, а выворачивать мозг всякими эпическими конструкциями не очень хочется. Может кто-нибудь уже разобрался?

Edited by Kerny
Link to comment
Share on other sites

  • 0

А вы в php прописали структуру типа: если это зарегеный пользователь, то показать так, убрать так, а если аноним, то показать это, убрать это?

Откуда ваш CSS знает, когда какие стили применять\не применять?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy