Я просто потратил некоторое время, пытаясь понять, почему содержание формы полностью исчезло в IE8 и IE9. После некоторого расследования, похоже, что ошибка наличия набора полей для отображения: table-column. Если я установил fieldset для отображения: table или display: block, тогда все будет выглядеть отлично, снова.
При тестировании этого html на моих виртуальных машинах IE8 и IE9 я могу видеть только заголовок "Не внутри набора полей". Если я удалю стиль набора полей, я увижу и то, и другое.
кто-нибудь знает, почему это произошло?
<html>
<head>
<style type="text/css">
fieldset
{
display: table-column;
vertical-align: top
}
</style>
</head>
<body>
<form>
<fieldset>
<div class="row">
<h6>Inside a fieldset</h6>
</div>
</fieldset>
<form>
<h6>Not inside a fieldset</h6>
</body>
</html>
display: table-column
означает, что он действует как <col>
в HTML. Тег <col>
- это невидимый элемент, который используется для указания свойств столбца типа стилей и т.д. Это не то же самое, что <td>
(который display: table-cell
).
Вместо этого вы должны использовать table-cell
.
Источник - Random832 ответ в этом SO Thread
EDIT: table-column
прежнему отображается в IE 7, FireFox 24, Chrome и Opera 15. Он не работает в IE 8, 9 и 10.
Все элементы по умолчанию расположены вертикально сверху. Вам не нужно писать лишний код. Я считаю, что ниже кода должно быть достаточно:
<html>
<head>
<style type="text/css">
fieldset
{
height: 50px; /*************** Not Required, Just to show what I mean by my sentence mentioned above :) ****************/
}
h6,div {
margin: 0; padding:0;
}
</style>
</head>
<body>
<form>
<fieldset>
<div class="row">
<h6>Inside a fieldset</h6>
</div>
</fieldset>
<form>
<h6>Not inside a fieldset</h6>
</body>
</html>