2012-02-03 2 views
1

Мы делаем этот шаблон на нашем языке, персидском, то есть справа налево (RTL). Template addressКак изменить файл css для этой цели?

Теперь все части RTL, за исключением того, что подменю, которое открывается с правой стороны,

as you see in this Picture:

Вопрос: Какие изменения должны быть сделаны this css file шаблона, так что ширина подменю быть такой же, как и его ширина меню? Или: как можно открыть подменю для открытия с левой стороны?

Имейте в виду, что речь не идет о тексте в подменю (текст РТЛ теперь, как вы видите на картинке)

+0

Добро пожаловать дехкан. Используйте инструменты, предоставляемые интерфейсом редактирования, чтобы вставлять веб-ссылки и изображения. Многое исправить это позже. Благодарю. –

ответ

1

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

Есть несколько способов обойти это, я только собираюсь попасть в один из них.

Один из способов решения этой проблемы - настроить, как меню переписывает CSS на лету для подменю. В этом случае вы можете указать Javascript для отрицательного значения для атрибута элемента «left:» CSS, чтобы позиция подменю открывалась, когда вы хотите. Примечание. В этом решении это может не работать в старых браузерах Internet Explorer. Я не уверен, что это вызывает беспокойство. Однако в современных браузерах это будет очень хорошо (по крайней мере, те, о которых я уже говорил).

Откройте свою копию файла ddsmoothmenu.js, это маленький искатель, который вызывает все проблемы здесь.

Изменение должно быть сделано в функции

$curobj.hover(function(e){..}) 

. Оставайтесь со мной, я объясню ...

Эта функция вычисляет начальную левую позицию вашего подменю, когда пользователь наводит указатель мыши на выбор главного меню. А именно, эта линия здесь является виновником:

var menuleft=header.istopheader && setting.orientation!='v'? 0 : header._dimensions.w 

Как вы можете видеть, она возвращается «0» для вас, что означает, что якорь в левой части подменю, заставляя его вылиться в как сейчас.

Однако, не бойтесь!

Поскольку вам нужно подменю для закрепления с правой стороны и вывести его влево вместо этого, нам просто нужно изменить это из предположения '0' в формулу с небольшим интеллектом за ней.

Что нам нужно, это для Javascript, чтобы найти правильную позицию для привязки подменю справа. Мы делаем это, помогая маршрутизатору понять, что такое «правая сторона» элемента «header».

Чтобы найти это, мы просто берем ширину заголовка, удаляем из этого левого смещения тега a-href, который фактически содержит текст заголовка (это в случае любых полей, которые существуют, - которые у этого есть некоторые установлен в CSS), а затем удалить фактическую ширину самого подменю UL-тега. Теперь, в качестве побочного элемента, мне жаль, что мне не нужно было использовать что-то настолько неточное, как предположение, что заголовок является первым ребенком, но ... а ... иногда вы работаете с тем, что получили.

Так закомментируйте строку, я уже упоминал выше, и поставить эту строку в вместо:

var menuleft=((header._dimensions.w-header.childNodes[0].offsetLeft)-header._dimensions.subulw); 

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

Надеюсь, этот ответ поможет больше, чем мой предыдущий.

2

Просто мысли от верхней части моей головы ...

Я подозреваю вас будет отрегулировать эту строку:

width: 140px; /*width of sub menus*/ 

, что отражает более узкую ширину для ваших нужд.

Если вам нужно сделать это динамически, вам может потребоваться выполнить некоторую работу с Javascript, чтобы проверить применяемый текст, а затем отредактировать ссылку на класс с помощью специальной ссылки на класс ... ИЛИ ... применить новую ширину к элемент непосредственно ... после того, как выпадающие записи были заполнены.

+0

Спасибо, да видели эту строку раньше, но есть проблема, что каждая ширина подменю отличается, но этот параметр применяет конкретную ширину o всех подменю, не знаю javascript, это связано .js file> http://pastebin.com/DxQWST61 – dehqan

Смежные вопросы