Как эмулировать минимальную ширину в IE8 - PullRequest
7 голосов
/ 11 ноября 2011

Документация IE8 говорит, что она поддерживает минимальную ширину, но, похоже, она не работает для меня.

HTML-код, минимальная ширина которого я хочу, находится в ячейках таблицы.

Здесь я увидел еще один вопрос, в котором предлагалось добавить в каждую ячейку div высоты в 1 пиксель с настройкой ширины, но это не сработало - IE почему-то отображает его как высоту 18 пикселей.

ВотHTML-код:

<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<style type="text/css">
table.keyboard div.key {
    height: 50px;
    font-size:50px;
    border: 5px outset gray;
    min-width: 60px;
    text-align: center;
}
table.keyboard div.spc {
    height: 1px;
    width: 60px;
    background-color: green;
}

table.keyboard td:hover {
    background-color: lightblue;
}
table.keyboard {
    border: 3px inset blue;
}
</style>
</head>
<body>
<div id="body">
<div>Here is some stuff</div>
<table class='keyboard'>
    <tbody>
        <tr>
            <td><div class='key'>1</div><div class='spc'></div></td>
            <td><div class='key'>2</div><div class='spc'></div></td>
            <td><div class='key'>3</div><div class='spc'></div></td>
            <td><div class='key'>4</div><div class='spc'></div></td>
            <td><div class='key'>5</div><div class='spc'></div></td>
        </tr>
    </tbody>
</table>
</div>
</body>
</html>

Div "spc" появляется высотой 18 пикселей!

Конечно, если бы работала минимальная ширина, мне бы не понадобился div ...

<table class='keyboard'>
    <tbody>
        <tr>
            <td><div class='key'>1</div></td>
            <td><div class='key'>2</div></td>
            <td><div class='key'>3</div></td>
            <td><div class='key'>4</div></td>
            <td><div class='key'>5</div></td>
        </tr>
    </tbody>
</table>

Есть какие-нибудь подсказки?

Просто, чтобы сделать это проще, я разместил 3 разные версии этого кода на своем сайте .

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

http://jsfiddle.net/3htmA/

IE8. ваш код работает отлично.

0 голосов
/ 11 ноября 2011

Попробуйте это:

table.keyboard .key
{
min-width:60px;
width: expression(this.width < 60 ? 60: true);
}

Это выражение ширины является альтернативой для min-width, оно должно быть обходным путем для более старых версий IE.

Я думаю, что ваша проблема в том, чтоваш столбец определяет ширину элемента, а не div.

РЕДАКТИРОВАТЬ:

Также проверьте, не находится ли ваш браузер в режиме совместимости.

0 голосов
/ 11 ноября 2011

Спецификация HTML TABLE использует COL для определения ширины столбца. См. Следующую спецификацию: http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4

Вот пример того, как это используется: http://www.htmldog.com/guides/htmladvanced/tables/

Минимальная ширина ячеек таблицы работает иначе, чем элементы уровня блока. Ячейки таблицы контролируются на уровне столбцов, а не на уровне отдельных ячеек. Если заданный размер ячейки увеличивается или уменьшается, будет затронут весь столбец, если только он явно не контролируется тегом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...