У меня есть эти простые divs, разработанные в стиле jquery mobile:
<fieldset class="ui-grid-b">
<div class="ui-block-a">
<legend>Question 1 haveng a looong text to explain what the user need to answer</legend>
</div>
<div class="ui-block-b">
<select name="question1" id="question1">
<option value='0'>Choose...</option>
<option value='1'>Option 1</option>
</select>
</div>
<div class="ui-block-c" id="id-error">
<label for="question1" class="error" generated="true"></label>
</div>
</fieldset>
CSS:
.ui-grid-b .ui-block-a {
padding-top:20px;
width: 60%;
}
.ui-grid-b .ui-block-b {
width: 30%;
}
.ui-grid-b .ui-block-c {
width: 10%; padding-top:20px;
}
Код представляет собой страницу, разделенную на три столбца (div ui-block-a, ui-block-b, ui-block-c), занимая соответственно 60%, 30% и 10% всего пространства страницы. Все работает отлично на каждом браузере на земле, но не на проводнике. В проводнике, если ui-block-текст слишком длинный, вместо продолжения на новой строке, он продолжается под выбором. Как я могу избежать перекрытия ui-block-a с помощью ui-block-b?
Возможно, IE интерпретирует fieldset
и legend
буквально, поскольку они предназначены (с легендой, являющейся прямым потомком fieldset - http://www.w3.org/wiki/HTML/Elements/fieldset), и применяет некоторый стиль, специфичный для браузера, который является беспорядочным ваши намерения.
Если вы попробуете этот макет с div
вместо fieldset и легенды, я думаю, что это сработает.
Так как легенда о полете обычно отображается браузерами как плавающий заголовок в верхней части родительского контейнера, прерывая границу (см. Пример http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_fieldset), я думаю, что IE обеспечивает это поведение, заставляя обертку ни к чему.
измените css как
div{
word-break: break-all;
}
.ui-grid-b .ui-block-a {
padding-top:20px;
width: 60%;
float:left;
}
.ui-grid-b .ui-block-b {
width: 30%;
float:left;
}
.ui-grid-b .ui-block-c {
width: 10%; padding-top:20px;
float:left;
}
demo: jsfiddle