Действительно ли z-индекс является единственным способом вынудить элемент быть расположенным над вершиной другого, если не, что другие методы там?

Вот первая попытка понять, что должен делать ваш код на основе структуры XML: обработчик

  • для узлов Selection ищет дочерние узлы Content с атрибутом language == 'en' в узлах Message в узлах Content
    • преобразуется в XPath ./Contents/Message/Content[@language='en']
    • , если он имеет атрибут imagelibraryid, сохранить значение этого
    • в противном случае сохраните содержимое CDATA первого дочернего элемента.
    • установите refid значение атрибута из родительского узла Message
  • и добавьте их к список содержимого для узла Selection
  • , чтобы показать, что было собрано, используйте Data :: Dumper в массиве ref
#!/usr/bin/perl
use warnings;
use strict;

use XML::Twig;
use Data::Dumper;

my %selections;

my $twig = XML::Twig->new(
    twig_handlers => {
        Selection => sub {
            #

Вот первая попытка понять, что должен делать ваш код на основе структуры XML: обработчик

  • для узлов Selection ищет дочерние узлы Content с атрибутом language == 'en' в узлах Message в узлах Content
    • преобразуется в XPath ./Contents/Message/Content[@language='en']
    • , если он имеет атрибут imagelibraryid, сохранить значение этого
    • в противном случае сохраните содержимое CDATA первого дочернего элемента.
    • установите refid значение атрибута из родительского узла Message
  • и добавьте их к список содержимого для узла Selection
  • , чтобы показать, что было собрано, используйте Data :: Dumper в массиве ref
[110]

Тестовый прогон:

$ perl dummy.pl
selection id: 54008473
selection id: 54008475
Selection '54008473' messages: $VAR1 = [
          {
            'refid' => '123991123',
            'library' => '5492396'
          },
          {
            'cata' => '

Some English content

', 'refid' => '128054778' } ]; Selection '54008475' messages: $VAR1 = [ { 'cata' => '

ada

', 'refid' => '128054778' } ];
->print(); print "selection id: ",

Вот первая попытка понять, что должен делать ваш код на основе структуры XML: обработчик

  • для узлов Selection ищет дочерние узлы Content с атрибутом language == 'en' в узлах Message в узлах Content
    • преобразуется в XPath ./Contents/Message/Content[@language='en']
    • , если он имеет атрибут imagelibraryid, сохранить значение этого
    • в противном случае сохраните содержимое CDATA первого дочернего элемента.
    • установите refid значение атрибута из родительского узла Message
  • и добавьте их к список содержимого для узла Selection
  • , чтобы показать, что было собрано, используйте Data :: Dumper в массиве ref
[110]

Тестовый прогон:

$ perl dummy.pl
selection id: 54008473
selection id: 54008475
Selection '54008473' messages: $VAR1 = [
          {
            'refid' => '123991123',
            'library' => '5492396'
          },
          {
            'cata' => '

Some English content

', 'refid' => '128054778' } ]; Selection '54008475' messages: $VAR1 = [ { 'cata' => '

ada

', 'refid' => '128054778' } ];
->att('id'), "\n"; my @contents; foreach my $content (

Вот первая попытка понять, что должен делать ваш код на основе структуры XML: обработчик

  • для узлов Selection ищет дочерние узлы Content с атрибутом language == 'en' в узлах Message в узлах Content
    • преобразуется в XPath ./Contents/Message/Content[@language='en']
    • , если он имеет атрибут imagelibraryid, сохранить значение этого
    • в противном случае сохраните содержимое CDATA первого дочернего элемента.
    • установите refid значение атрибута из родительского узла Message
  • и добавьте их к список содержимого для узла Selection
  • , чтобы показать, что было собрано, используйте Data :: Dumper в массиве ref
[110]

Тестовый прогон:

$ perl dummy.pl
selection id: 54008473
selection id: 54008475
Selection '54008473' messages: $VAR1 = [
          {
            'refid' => '123991123',
            'library' => '5492396'
          },
          {
            'cata' => '

Some English content

', 'refid' => '128054778' } ]; Selection '54008475' messages: $VAR1 = [ { 'cata' => '

ada

', 'refid' => '128054778' } ];
->findnodes("./Contents/Message/Content[\@language='en']")) { my $result = { refid => $content->parent->att('refid'), }; my $id = $content->att('imagelibraryid'); if (defined $id) { $result->{library} = $id; } else { $result->{cata} = $content->first_child->cdata; } push(@contents, $result); } # store collected Content nodes under selection ID $selections{

Вот первая попытка понять, что должен делать ваш код на основе структуры XML: обработчик

  • для узлов Selection ищет дочерние узлы Content с атрибутом language == 'en' в узлах Message в узлах Content
    • преобразуется в XPath ./Contents/Message/Content[@language='en']
    • , если он имеет атрибут imagelibraryid, сохранить значение этого
    • в противном случае сохраните содержимое CDATA первого дочернего элемента.
    • установите refid значение атрибута из родительского узла Message
  • и добавьте их к список содержимого для узла Selection
  • , чтобы показать, что было собрано, используйте Data :: Dumper в массиве ref
[110]

Тестовый прогон:

$ perl dummy.pl
selection id: 54008473
selection id: 54008475
Selection '54008473' messages: $VAR1 = [
          {
            'refid' => '123991123',
            'library' => '5492396'
          },
          {
            'cata' => '

Some English content

', 'refid' => '128054778' } ]; Selection '54008475' messages: $VAR1 = [ { 'cata' => '

ada

', 'refid' => '128054778' } ];
->att('id') } = \@contents; }, } ); $twig->parse(\*DATA); while (my($id, $contents) = each %selections) { my $dump = Dumper($contents); print "Selection '${id}' messages: $dump\n"; } exit 0; __DATA__ ... the rest of your XML left out ...

Тестовый прогон:

$ perl dummy.pl
selection id: 54008473
selection id: 54008475
Selection '54008473' messages: $VAR1 = [
          {
            'refid' => '123991123',
            'library' => '5492396'
          },
          {
            'cata' => '

Some English content

', 'refid' => '128054778' } ]; Selection '54008475' messages: $VAR1 = [ { 'cata' => '

ada

', 'refid' => '128054778' } ];

5
задан Ólafur Waage 26 March 2009 в 22:48
поделиться

6 ответов

Вы поражаете ошибку контекста укладки

http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html

Каждое расположенное отделение в IE создаст новый контекст укладки и предотвратит z-индекс от различных контекстов укладки для добавлений к другим.

Решение состоит в том, чтобы иметь окно, на котором Вы хотите, пополняют в дереве (в тело, например) и z-индексная терка значения, чем z-индекс всех родителей другого отделения, покрывающего Ваше окно.

Обширная информация для понимания проблемы здесь: http://richa.avasthi.name/blogs/tepumpkin/2008/01/11/ie7-lessons-learned/

8
ответ дан 13 December 2019 в 22:16
поделиться

расположение и отрицательные поля является единственным способом заставить элементы перекрывать это, я знаю о. z-индекс просто используется для явного сообщения браузера, как разделить элементы на уровни.

относительно Вашей проблемы, IE требует контейнерных элементов и/или элементов, которые Вы перекрываете, чтобы иметь position:relative; или position:absolute; чтобы z-индекс работал правильно. Когда кто-то говорит, что расположение они обычно подразумевают наличие position набор свойств в CSS. Также, когда работа с z-индексом удостоверяется, что наложение elementa на том же уровне друг с другом.

Надеюсь, это поможет

1
ответ дан 13 December 2019 в 22:16
поделиться

Как подсказал другими ответами, position:relative и position:absolute сбросьте "контекст укладки" в IE.

0
ответ дан 13 December 2019 в 22:16
поделиться

Если Вы хотите более ленивый ответ, Вы могли бы использовать JavaScript и скрыть отделение, когда Вы нажимаете на карту и показываете его при закрытии карты.

Необходимо будет сделать, это с любым выбирает на странице так или иначе, потому что в т.е. они не работают с z-индексом.

0
ответ дан 13 December 2019 в 22:16
поделиться

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

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

Необходимо запланировать HTML вперед при необходимости в сложных заказах укладки.

1
ответ дан 13 December 2019 в 22:16
поделиться

Я столкнулся с этой той же проблемой пара несколько дней назад и нашел отрицательное поле, как предложил Darko Z работавшим отлично. (Мой представитель не достаточно хорош все же для голосования за Darko),

Я записал быстрое сообщение на нем.

http://www.swards.net/2009/03/layering-html-elements-without-using.html

0
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: