Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как растянуть фоновую картинку в ячейке таблицы?
 
 автор: Kostya   (04.04.2009 в 19:27)   письмо автору
 
 

Всем доброго времени суток!

Вопрос на первый взгляд легкий, но здесь фишка такая:
Надо в первой ячейке растянуть фоновую картинку по вертикали так, чтобы при изменении объема содержимого во второй ячейки этот фон изменял свою высоту автоматически. А третья ячейка (расположенная под первой ячейкой) должна сохранить свой фиксированный размер. Потому что она потом должна заканчивать рисунок из первой ячейки.


<table width="50%" cellspacing="0" border="1">
   <tr> 
        <!-- Ячейка 1 -->
    <td style="background-image:url(img.jpg); background-repeat:repeat-y; width:50px;"></td>
        <!-- Ячейка 2 -->
        <td rowspan="2">text text text text text text text text... <br><br><br><br><br>...text text text text</td>
   </tr>
   <tr>
        <!-- Ячейка 3 -->
       <td style="height:10px;">&nbsp;</td>
   </tr>
</table> 


Вот этот код идеально работает в FF, но в остальных браузерах работает наоборот - растягивается почему-то третья ячейка вместо первой.
Почему так? подскажите плз!

  Ответить  
 
 автор: PAT   (04.04.2009 в 22:51)   письмо автору
 
   для: Kostya   (04.04.2009 в 19:27)
 

Если правильно понял, то "третья ячейка" нужна вам ТОЛЬКО как "продолжение рисунка", так?
Тогда лучше от неё вовсе избавиться.
<table width="50%" cellspacing="0" border="1">
   <tr> 
        <!-- Ячейка 1 -->
    <td valign="bottom" style="padding: 0; background-image:url(img.jpg); background-repeat:repeat-y; width:50px"
    ><div style="height: 10px; font-size: 0; line-height: 0; background-image:url(продолжение_рисунка)"></div></td>
        <!-- Ячейка 2 -->
        <td>text text text text text text text text...  <br><br><br><br><br>...text text text text</td>
   </tr>
</table>
PS. Обратите внимание на необходимость СЛИТНОГО написания дива с тегами ячейки.

Это дело будет работать ВЕЗДЕ.
И работать будет ОДИНАКОВО (почти, кроме OPERA - см. ниже).

В FireFox, кстати, ваш вариант работал тоже далеко не идеально - высота вашей "третьей ячейки" имела прямую зависимость от размера шрифта. Сами можете в этом убедиться, кликнув несколько раз подряд на "Увеличить размер шрифта" в меню "Вид" браузера.
В предложенном варианте масштаб шрифта не влияет на высоту картинки-продолжения.
Последнее замечание не относится, разумеется, к браузеру OPERA - изменение размеров при изменении масштаба там происходит по весьма малопонятному алгоритму.
Говорят, что и в Сафари последней тоже есть такая "беда", но не знаю точно - не пользовал ещё.

  Ответить  
 
 автор: Kostya   (05.04.2009 в 13:06)   письмо автору
 
   для: PAT   (04.04.2009 в 22:51)
 

PAT, всё заработало нормально во всех браузерах! Даже при изменении масштабов никаких глюков нету! Применил div и всё ОК!
Спасибо :)

  Ответить  
 
 автор: sim5   (05.04.2009 в 03:53)   письмо автору
 
   для: Kostya   (04.04.2009 в 19:27)
 

Проще в третью ячейку поместить картинку, и будет нормально во всех браузерах.

  Ответить  
 
 автор: PAT   (05.04.2009 в 04:16)   письмо автору
 
   для: sim5   (05.04.2009 в 03:53)
 

Проще, говорите?
И будет нормально, говорите?

А испробовать свой совет на практике не хотите?

Попытайтесь. Потом расскажете здесь о результатах.

  Ответить  
 
 автор: sim5   (05.04.2009 в 04:34)   письмо автору
 
   для: PAT   (05.04.2009 в 04:16)
 

А что есть сложности с просто добавлением картинки в ячейку?

  Ответить  
 
 автор: Kostya   (05.04.2009 в 12:27)   письмо автору
 
   для: sim5   (05.04.2009 в 04:34)
 

Мой пример кода - это и есть ваш совет. В первой ячейке рисунок растягивается, а третья ячейка его заканчивает.
Я сейчас попробую реализовать совет с div'ом.

  Ответить  
 
 автор: sim5   (05.04.2009 в 12:32)   письмо автору
 
   для: Kostya   (05.04.2009 в 12:27)
 

Что значит растягивается? Если поместить картинку в ячейку, то ячейка примет размер картики. Интересно, и как картинка смотрится, если таблица имеет бордюр?

  Ответить  
 
 автор: PAT   (05.04.2009 в 12:58)   письмо автору
 
   для: sim5   (05.04.2009 в 12:32)
 

>"Если поместить картинку в ячейку, то ячейка примет размер картики"
<script>
function f (x)
{
x.disabled = true;
V = 0;
TBR = document.createElement ('br');
CLON = x;
OBJ = x.parentNode;
f2 ();
}

function f2 ()
{
V++;
var p = TBR.cloneNode (1);
var s = CLON.cloneNode (1);
OBJ.appendChild (p);
if (V < 10) {OBJ.appendChild (s); setTimeout (f2, 1000)}
else alert ('Красная ячейка ДЕЙСТВИТЕЛЬНО принимает размер картинки ВСЕГДА?')
}
</script>
<table cellpadding="0" cellspacing="0" border="1">

<tr><td>&nbsp;</td>

<td rowspan="2" style="padding: 5px">
<input type="button" value="Всё отлично, не так ли?" onclick="f (this)"></td></tr>

<tr><td bgcolor="red">
<img width="200" height="50" alt="КАРТИНКА" style="background-color: lime"></td></tr>

</table>


Вам бы агитатором-пропагандистом в советское время работать:-)
Они тоже любили утверждать голословно.., например, что "Партия - ум, честь и совесть нашей эпохи!"

  Ответить  
 
 автор: Kostya   (05.04.2009 в 13:03)   письмо автору
 
   для: sim5   (05.04.2009 в 12:32)
 

"Растягивается" - т.е.(в моём случае) ячейка вытягивается по высоте, в зависимости от объема содержания соседней ячейки. А третья клетка должна была заканчивать рисунок из этой "растягивающейся" ячейки, т.к. имеет градиент. В общем теоретически всё просто, но на практике это работает только в FireFox.

Ну а табличка это тестовая, поэтому чтобы было понятней - решил бордюры не убирать :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования