Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   div внутри ячейки таблицы (https://javascript.ru/forum/xhtml-html-css/18354-div-vnutri-yachejjki-tablicy.html)

cmygeHm 27.06.2011 15:15

div внутри ячейки таблицы
 
Физкульт-привет!
Ребят, штука не понятная. Причем очень не понятная.
Есть таблица. Внутри ячейки имеется div. Ему задана ширина в пикселях на пару пикселей меньше чем у ячейки. В диве длинный текст. И поэтому для него заданы:
{
overflow: hidden;
white-space: nowrap;
width: {{ td.width-2 }}
}

Так вот между дивом и ячейкой появляется пустое пространство.
|----------------------------------|
|-------------- ______________ |
| div _______ | __ пустота ___ |
|-------------- ______________ |
|___ячейка________________|

Очень долго искал откуда оно. Ну нет нигде. И в конце концов напоролся на то, что если обычный текст в тегах span или p со свойством атрибута white-space: nowrap вставить в таблицу, то образуется пустое пространство. Причем это не один-два пикселя, а сотни пикселей. margin'ы и padding'и заданы в ноль все.

Если в фаербаге увеличиваю ширину дива, то ширина пустого пространства тоже растет и расширяет ячейку.
Подскажите в чем проблема? Как лечить?

trikadin 27.06.2011 16:12

Пожалуйста, приведите пример кода.

cmygeHm 27.06.2011 16:24

html:
<table cellpadding="0px" cellspacing="0px" class="DbGrid">
<thead>
	<tr>
		<th width="30px">asdf</th>
		<th width="100px">asdf</th>
		<th width="50px">asdf</th>
		<th width="50px">asdfasd</th>
		<th width="50px">asdfasdf</th>
	</tr>
</thead>
<tbody>
	<tr>
		<td><div style="width:30px;">146002</div></td>
		<td><div style="width:100px;">1008 asdf asdfasdf asdfasd fasdf asdfasdf</div></td>
		<td><div style="width:50px;">Севастопольская, 29</div></td>
		<td><div style="width:50px;" class="textAlignRight">610</div></td>
		<td><div style="width:50px;" class="textAlignRight">13</div></td>
	</tr>
</tbody>
</table>

css:
.DbGrid {
    margin-top: 25px;
    font-size: 12px;
    /*border-collapse:collapse;*/
    width: 100%;
    border-top: 1px solid #99BBE8;
    border-left: 1px solid #99BBE8;
    border-right: 1px solid #99BBE8;
    border-bottom: 1px solid #99BBE8;
    
}
.DbGrid thead tr {
    height: 25px;
    background: url("cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png") repeat-x scroll 50% 50%;    
}
.DbGrid thead th {
    text-align: center;
    padding-left: 4px;
    padding-right: 4px;
    border-bottom:1px dotted #999;
    border-right: 1px solid #999;
}
.DbGrid thead th:last-child {
    border-right: 0px none;
}
.DbGrid tbody td {
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 4px;
    padding-right: 4px;
    border-bottom:1px solid #D0D2C1;
    border-right: 1px solid #C0C0C0;
}
.DbGrid tbody td:last-child {
    border-right: 0px none;
    /*text-align: center;*/
}
.DbGrid tbody tr:last-child td{
    border-bottom: 0px none;
}

.DbGrid tbody td div{
    width: 100px;
    overflow: hidden;
    white-space: nowrap;
    margin: 0px;
    padding: 0px;
}
.DbGrid tbody td{
    margin: 0px;
    padding: 0px;
}
.textAlignRight {
    text-align: right;
}
.textAlignCenter {
    text-align: center;
}

Serg_pnz 27.06.2011 17:37

Мое мнение, что таблице нельзя указывать свойство ширины 100%, раз уж все ширины фиксированы, то ширина таблицы тоже пусть будет фиксированной.

cmygeHm 27.06.2011 17:41

хм. учтем. спасибо

ksa 28.06.2011 10:19

Собрал всё в кучу...

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
.DbGrid {
    margin-top: 25px;
    font-size: 12px;
    /*border-collapse:collapse;*/
    width: 100%;
    border: 1px solid #99BBE8;
}
.DbGrid thead tr {
    height: 25px;
    background: url("cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png") repeat-x scroll 50% 50%;    
}
.DbGrid thead th {
    text-align: center;
    padding-left: 4px;
    padding-right: 4px;
    border-bottom:1px dotted #999;
    border-right: 1px solid #999;
}
.DbGrid thead th:last-child {
    border-right: 0px none;
}
.DbGrid tbody td {
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 4px;
    padding-right: 4px;
    border-bottom:1px solid #D0D2C1;
    border-right: 1px solid #C0C0C0;
}
.DbGrid tbody td:last-child {
    border-right: 0px none;
    /*text-align: center;*/
}
.DbGrid tbody tr:last-child td{
    border-bottom: 0px none;
}
.DbGrid tbody td div {
    width: 100px;
    overflow: hidden;
    white-space: nowrap;
    margin: 0px;
    padding: 0px;
}
.DbGrid tbody td{
    margin: 0px;
    padding: 0px;
}
.textAlignRight {
    text-align: right;
}
.textAlignCenter {
    text-align: center;
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<table cellpadding="0px" cellspacing="0px" class="DbGrid">
<thead>
	<tr>
		<th width="30px">asdf</th>
		<th width="100px">asdf</th>
		<th width="50px">asdf</th>
		<th width="50px">asdfasd</th>
		<th width="50px">asdfasdf</th>
	</tr>
</thead>
<tbody>
	<tr>
		<td><div style="width:30px;">146002</div></td>
		<td><div style="width:100px;">1008 asdf asdfasdf asdfasd fasdf asdfasdf</div></td>
		<td><div style="width:50px;">Севастопольская, 29</div></td>
		<td><div style="width:50px;" class="textAlignRight">610</div></td>
		<td><div style="width:50px;" class="textAlignRight">13</div></td>
	</tr>
</tbody>
</table>
</body>
</html>


Где собственно криминал? Как его посмотреть?

Для меня очень странно когда размеры в шапке указывают отличные от размеров в самом теле таблицы... :)
Вообще с размерами у автора какая-то каша.

cmygeHm 28.06.2011 10:44

тема закрыта. я просто целый день перебирал-перебирал. что-то где унаследовалось или еще что... ничего не нашел. написал заново с нуля. самое удивительное почти такая же таблица надо этой отображается нормально....

cmygeHm 28.06.2011 10:46

я думаю тему можно даже удалить с форума ибо не несет никакой пользы в мир. А КСА спасибо, буду аккуратнее оформлять вопросы и код. жаль что нет на форуме возможности удаления темы. а если писать то кому? модераторам?


Часовой пояс GMT +3, время: 10:41.