Подтвердить что ты не робот

Td ширина, не работает?

Итак, у меня есть этот код:

<table>
    <tr>
        <td width="200px" valign="top">
            <div class="left_menu">
                <div class="menu_item">
                    <a href="#">Home</a>
                </div>
            </div>
        </td>
        <td width="1000px" valign="top">Content</td>
    </tr>
</table>

с CSS

.left_menu {
    background: none repeat scroll 0 0 #333333;
    border-radius: 5px 5px 5px 5px;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 12px;
    font-weight: bold;
    padding: 5px;
}

.menu_item {
    background: none repeat scroll 0 0 #CCCCCC;
    border-bottom: 1px solid #999999;
    border-radius: 5px 5px 5px 5px;
    border-top: 1px solid #FFFFCC;
    cursor: pointer;
    padding: 5px;
}

Он отлично работает в моем браузере, и я тестировал его в каждом браузере как на Mac, так и на ПК, но кто-то жалуется, что td с width из 200 продолжает меняться. Я понятия не имею, о чем он говорит. Кто-нибудь знает, почему он или она видит изменение ширины на td?

4b9b3361

Ответ 1

Это должно быть:

<td width="200">

или

<td style="width: 200px">

Обратите внимание, что если ваша ячейка содержит контент, который не вписывается в 200px (например, somelongwordwithoutanyspaces), ячейка будет растягиваться, если ваш CSS не содержит table-layout: fixed для таблицы.

ИЗМЕНИТЬ

Как отметили в ее ответе дети из kristina, вы должны избегать атрибута width и использовать встроенный CSS (с атрибутом style). Это хорошая практика, чтобы как можно больше отделить стиль и структуру.

Ответ 2

Ширина и/или высота в таблицах не являются стандартными; как говорит Янззз, они устарели. Вместо этого лучший способ сделать это - иметь блок-элемент внутри ячейки таблицы, который будет держать ячейку открытой до нужного размера:

<table>
    <tr>
        <td valign="top">
            <div class="left_menu">
                <div class="menu_item">
                    <a href="#">Home</a>
                </div>
            </div>
        </td>
        <td valign="top" class="content">Content</td>
    </tr>
</table>

CSS

.content {
    width: 1000px;
}

.left_menu {
    background: none repeat scroll 0 0 #333333;
    border-radius: 5px 5px 5px 5px;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 12px;
    font-weight: bold;
    padding: 5px;
    width: 200px;
}

.menu_item {
    background: none repeat scroll 0 0 #CCCCCC;
    border-bottom: 1px solid #999999;
    border-radius: 5px 5px 5px 5px;
    border-top: 1px solid #FFFFCC;
    cursor: pointer;
    padding: 5px;
}

Ответ 3

 <table style="table-layout:fixed;">

Это приведет к стильной ширине <td>. Если текст переполняет его, он будет перекрывать другой текст <td>. Поэтому попробуйте использовать медиа-запросы.

Ответ 4

Вы не можете указывать единицы в атрибутах width/height таблицы; они всегда находятся в пикселях, но вы не должны использовать их вообще, так как они устарели.

Ответ 5

попробуйте использовать

word-wrap: break-word;

надеюсь, что эта помощь

Ответ 6

Вы можете попробовать "table-layout: fixed;" к вашей таблице

table-layout: fixed;
width: 150px;

150px или желаемая ширина.

Ссылка: https://css-tricks.com/fixing-tables-long-strings/

Ответ 7

Обратите внимание, что настройка ширины столбца в thead будет влиять на всю таблицу

<table>
    <thead>
        <tr width="25">
            <th>Name</th>
            <th>Email</th>
        </tr>
    </thead>
    <tr>
        <td>Joe</td>
        <td>[email protected]</td>
    </tr>
</table>

В моем случае ширина на thead > tr была непосредственно перекрыта шириной на таблице > tr > td.

Ответ 8

попробуйте следующее:

word-break: break-all;