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
?
Ответы
Ответ 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;