|
|
|
| здравствуйте!
у меня проблема: существует таблицы, в ней слева две ячейки, а справа одна ячейка с роуспан=2, при этом первые две ячейки имеют равную высоту, а мне нужно, чтобы верхняя была 20 пикселей, а нижняя динамически именялась от разморов картинки. | |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 15:35)
| | Она и будет изменяться в зависимости от картинки. | |
|
|
|
|
|
|
|
для: sim5
(05.11.2007 в 15:52)
| | извиняюсь - непрвильно написал: нижняя ячейка изменяется от картинки, которая в ячеке с роуспеном
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td height=20 class=tenleftend> </td>
<td rowspan=2 class=foto>
<?
тут код пхп
?>
</td>
</tr>
<tr>
<td width=20 class=tenleft> </td>хотелось бы эту ячейку сделать резиновой
</tr>
<tr>
<td class=tencorner> </td>
<td class=tenbottom> </td>
</tr></table>
|
| |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 16:13)
| | тут на форуме нашел неплохую ссылку
http://theshapeofdays.com/2005/11/29/my-contribution-to-the-css-shadow-kerfuffle.html
, в принципе подходит, но как все таки решить мою задачу. прилагаю эскиз. | |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 16:13)
| | В IE пока ваши левые ячейки будут пусты, они будут иметь одинковую высоту, если задать им размер явно, все будет так ка вы хотите:
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td height="20" class=tenleftend>20</td>
<td rowspan=2 class=foto><img src="image.jpg" width="200" height="100"></td>
</tr>
<tr>
<td height="<?=$imgHgt - 20;?>" class=tenleft>180</td>
</tr>
</table>
|
| |
|
|
|
|
|
|
|
для: sim5
(05.11.2007 в 16:56)
| | если честно то я не понял, не могли бы более подробно
<img src="image.jpg" width="200" height="100">
|
тут на самом деле код пхп, где размер по горизонтале всегда 100 px, а по вертикали от 20 до 100 пикселей | |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 17:22)
| | Это просто как пример, я ведь не предлагаю вам такую картинку :) Вы же на стороне сервера вставляете картинку в ячейку, а значит не сложно получить ее размер по высоте. Затем отнять от него 20 и узнать высоту нижней левой ячейки. Читайте о функции getimagesize(). | |
|
|
|
|
|
|
|
для: sim5
(05.11.2007 в 17:26)
| | прилагаю код превьющки: (он идет как файл imgresize.php)
<?php
$filename = $_GET['file'];
resizeimg($filename, 100,100);
function resizeimg($filename, $w, $h)
{
$filename = $filename;
$ratio = $w/$h;
$size_img = getimagesize($filename);
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
$src_ratio=$size_img[0]/$size_img[1];
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
} else
{
$w = $h*$src_ratio+1;
}
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
elseif ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
elseif ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
if ($size_img[2]==2) {header('Content-type: image/jpg'); imagejpeg($dest_img);}
elseif ($size_img[2]==1) {header('Content-type: image/gif'); imagegif($dest_img);}
elseif ($size_img[2]==3) {header('Content-type: image/png'); imagepng($dest_img);}
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
?>
|
и код в таблице:
<td rowspan=2 class=foto>
<?
echo "<img src=imgresize.php?file=".$postrow[img]." alt=".$postrow[img_description]."/>";?>
</td>
|
| |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 18:27)
| | У вас пользовательская функция изменяет размер изображения, поэтому чтобы получить размеры изображения придется изменить функцию так, чтобы вычисление нового размера изображения происходило в отельной функции, и возвращало эти значения.
А что у вас будет в левых ячейках, может быть можно иначе решить вопрос? | |
|
|
|
|
|
|
|
для: sim5
(05.11.2007 в 19:14)
| | я пошел другим путем, на этом сайте нашел ссылку, где все на дивах:
<div class="shadow"><? echo "<div class=img><img src=\"imgresize25.php?file=".$postrow["img"]."\" alt=\"".$postrow["img_description"]."\"></div>"; ?><div class="topleft"></div><div class="topright"></div><div class="bottomleft"></div><div class="bottomright"></div></div>
<br class="clear" />
|
ВСЕ дивы в одну линию:)
и файл css:
body {
background: white;
margin: 30px;
}
br.clear {
clear: both;
height: 0;
line-height: 0px;
}
div.shadow {
float: left;
padding: 0 1px;
background: #bfbfbf;
border-left: 1px solid #eaeaea;
border-right: 1px solid #eaeaea;
position: relative;
}
div.shadow div.img {
padding: 5px 5px 9px 5px;
background: white url(../shad_bottom.png) repeat-x bottom left;
}
div.shadow div.topleft {
width: 2px;
height: 4px;
background: url(../img/shad_tlcorner.png) no-repeat top left;
position: absolute;
top: 0px;
left: -1px;
}
div.shadow div.topright {
width: 2px;
height: 4px;
background: url(../img/shad_trcorner.png) no-repeat top right;
position: absolute;
top: 0px;
right: -1px;
}
div.shadow div.bottomleft {
width: 4px;
height: 4px;
background: url(../img/shad_blcorner.png) no-repeat bottom left;
position: absolute;
bottom: 0px;
left: -1px;
}
div.shadow div.bottomright {
width: 4px;
height: 4px;
background: url(../img/shad_brcorner.png) no-repeat bottom right;
position: absolute;
bottom: 0px;
right: -1px;
}
|
файлы png прилагаются: | |
|
|
|
|
|
|
|
для: ronin
(05.11.2007 в 19:38)
| | Но мне хотель найти решение с rowspan, так как я понял, это крепкий орешек, неужели AlexSol пройдет мимо такой темы? | |
|
|
|