Плавающие элементы опускаются ниже плавающего ввода в UL в IE - но в Chrome все нормально

0

Я работаю над этим около часа, и я не могу на всю жизнь понять, почему это происходит в IE.

У меня есть следующий HTML-код, чтобы показать мою регистрационную форму (выдержка):

<ul id="register_form_list">
    <li><label for="register_full_name" class="register_label">Full Name</label></li>
    <li class="input_wrapper">
        <input type="text" class="register_text_input" name="full_name" id="register_full_name" value="">
        <div class="register_field_help">
            <span class="register_field_error_text" style="display: none">Enter your first and last name</span>
        </div>
            <div class="register_field_error">
        <span class="register_field_error_text">Please enter your full name</span>
    </div>
    </li>
</ul>

У меня есть следующий CSS, для показа моих элементов регистрации и "подсказок", которые я создал:

ul#register_form_list { float: left; clear: left; margin: 25px 0 0 29px; width: 670px; }
ul#register_form_list li { float: left; clear: left; display: inline; margin-left:0px; }
ul#register_form_list li.input_wrapper { padding: 0 0 15px 0; }
label.register_label { float: left; font-size: 0.9em; font-weight: bold; color: #093C5D; text-decoration: none; }
ul#register_form_list input.register_text_input { float: left; clear: left; margin: 6px 0 0 0; padding: 5px; width: 260px; border: #B0B0B0 1px solid; background: #FFFFFF url(images/quizmaker/field_shadow_bg.png) repeat-x; background-position: top; outline: none; font-family: Arial, sans-serif; }
ul#register_form_list input.register_submit { float: left; clear: left; margin: 0 0 0 0; padding: 5px 14px 5px 14px; }
div.register_field_help { float: left; display: none; margin: 0 0 0 6px; width: 386px; height: 39px; background: url(images/welcome/register_text_help.png) top left no-repeat; }
span.register_field_help_text { float: left; margin: 10px 0 0 20px; color: #FFFFFF; }
div.register_field_error { float: left; margin: 0 0 0 6px; width: 386px; height: 39px; background: url(images/welcome/register_text_error.png) top left no-repeat; }
span.register_field_error_text { float: left; margin: 10px 0 0 20px; color: #FFFFFF; }

По какой-то причине div.register_field_error элементы подсказки div.register_field_error снижаются ниже моих полей input, когда я хотел бы, чтобы они отображались бок о бок.

Он отлично работает в Chrome, в моей ul достаточно ширины для размещения всплывающих подсказок (670px), но мне нужно настроить ul на width: 733px или более в инструментах разработчика, чтобы они отображались бок о бок в IE.

Код здесь живой, просто нажмите "Зарегистрировать", не заполняя ни один из элементов ввода, и всплывающие подсказки отображаются каждым элементом ввода.

Это как если бы у UL было какое-то правостороннее дополнение на нем, но я попробовал margin:0 и padding:0 на UL для тестирования, и это не сработало.

Похоже, что эта проблема возникает, когда у меня IE11 эмуляция IE7. Я хотел бы, чтобы сайт работал в IE7

Изображение 174551

  • 0
    Что ты имеешь ввиду ?
  • 0
    Пожалуйста, смотрите скриншот, который я добавил к вопросу. Это тоже в IE11?
Показать ещё 6 комментариев
Теги:
css-float
internet-explorer

1 ответ

0
Лучший ответ

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

Теперь я использую display: inline-block и display: table для макетов, таких как пример, который я предоставил.

Я полностью разделил "float" и "clear" из моего CSS, за исключением случаев, когда мне может понадобиться некоторый текст для обтекания изображения. Я почти уверен, что это то, для чего первоначально предназначался float.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню