2013-05-12 2 views
2

http://11bouchardg.decmultimedia.ca/myriam_coiffureНастройка «Авто» ширина по рассчитанным дает 0, но высота работы

Проблема касается веб-сайта связана выше.

http://pastebin.com/HyyB9vhL

Это часть кода, который не работает должным образом. Посмотрите комментарии. Выше - это линии, которые являются проблематичными.

Код, который я указал с комментариями, намеревается заменить значение высоты/ширины двух элементов, которое является «авто», с его текущим значением в пикселях, поэтому я могу позже выполнить переход на CSS3 - как вы, возможно, знаете, свойство перехода не может работать со значением «auto».

В принципе, я могу восстановить вычисленное значение с этим:

someVariable=window.getComputedStyle(<"my element">).getPropertyValue('<"width or height">'); 

Тогда я применить его к элементу с этим:

<"my element">.style.<"width or height">=someVariable; 

Высота отлично работает. Ширина, однако, делает ширину 0 ... которая делает, чтобы сделать переход CSS3, но также перемещает ножницы влево. Вы можете увидеть, как это проблема, открыв раздел и снова закрыв его на странице. (Вы открываете или закрываете раздел, щелкнув заголовок.)

Обратите внимание, что получение вычисленных значений не там, где проблема. Как вы можете видеть в ссылке pastebin в начале сообщения, вывод их с console.log() дает ожидаемые значения.

Это сайт, на котором я работаю, а не архивная копия только для этого сайта . Поэтому доступ к нему после того, как был принят ответ, будет (надеюсь, что!) Приведет вас к беспроблемной странице. Или ошибка 404 не найдена ошибка, в зависимости от того, когда вы пытаетесь получить к ней доступ.


Редактировать

Хорошо, так, так как проблема была не очень ясно, я создал два скрипки изолирующих проблемы как можно больше. И пояснение.

1 - С содержанием. Позволит вам увидеть, как высота контента правильно установлена ​​в соответствии с сохраненным значением. (Да, контент снова не появляется, если вы снова открываете раздел. Не хочется смотреть на эту проблему, так как это не имеет значения здесь. Должно быть, убрана какая-то важная строка, когда я сводил к минимуму количество кода. некрасиво, потому что я не стал работать на пропорции или что-нибудь)

http://jsfiddle.net/ubCB3/1/

2 -. без содержания. Это одно из того, что вы видите только то, что непосредственно связано с проблемой. Да, это еще более уродливо, так как я минимизировал количество CSS тоже. Переход сильно удлинен, поэтому вы можете видеть, что происходит очень хорошо.

http://jsfiddle.net/ubCB3/3/

И объяснение рисунок. (Full size here, for reading the small text).Вы также можете увеличить масштаб с помощью Ctrl +. And the explanation drawing is here.

+0

Можете ли вы изолировать код (проблему) и создать скрипку [jsFiddle] (www.jsfiddle.com) или что-то в этом роде. Я уверен, что больше людей смогут помочь, если вы это сделаете. – drinchev

+0

Я довольно четко выделил код в ссылке Pastebin (это всего лишь несколько строк, все это означает, что вы понимаете цель кода, а все важные строки становятся очевидными с комментарием). Но если этого недостаточно, я сделаю скрипку, как вы просите, позже, когда у меня будет больше времени. – Ariane

+0

@drinchev Я добавил много контента к основному вопросу. Скажите, пожалуйста, вы сейчас поняли проблему. – Ariane

ответ

0

Вы должны использовать max-width : 0 для закрытия ножниц и max-width:1000px; для открытого состояния. Делая это, вы переопределяете width:auto, что является проблемой при вашем переходе.

+0

Проблема ТОЧНО, что я не хочу ширину нуля для закрытого состояния. Я хочу ширину «авто», направленную по ширине ребенка, которая составляет около 0,4 метра. Кроме того, проблема заключается не в том, как сделать работу перехода, а в том, как правильно установить мою ширину в ее значение auto, но явно с пикселями. Точно так же, как я успешно справился с высотой. – Ariane

+0

Это то, чего вы хотите достичь? http://jsbin.com/ayewos/1/edit – drinchev

+0

Совсем нет. Позвольте мне сделать вам рисунок. Он должен быть готов в течение получаса. – Ariane

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