|
|
|
|
|
для: Бамси
(18.04.2007 в 19:11)
| | Я не знаю :) | |
|
|
|
|
|
|
|
для: Бамси
(20.03.2007 в 19:47)
| |
<style type="text/css">
.wrap {
background-color: #eee;
color: #000;
border: solid 1px #000;
margin-top: 2px;
overflow: hidden;
}
.golosa {
background-color: #c0c0c0;
font-size: 8pt;
display: block;
height:15px;
}
.proc {
padding-left: 45px;
position: absolute;
}
</style>
<?
$arr[] = 2;
$arr[] = 0;
$arr[] = 10;
$arr[] = 30;
$max=$arr[0];
foreach ($arr as $key=>$value) {
if ($value>$max) {
$max=$value;
}
}
$width=$max/10;
foreach ($arr as $key=>$value) {
$percent=$value*100/$max;
echo "<div class=\"wrap\" style=\"width:100px\">\n";
echo "<span class=\"golosa\" style=\"background: #CCCCCC; width: ".round($percent,-1)."px;\"><span class=\"proc\">".$value."</span></span>\n";
echo "</div>\n";
}
?>
|
Как сделать что бы надпись всегда была ровно по середине ячейки? | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 16:36)
| | код перед Вашим постом вообще-то и размещает текст-надписи по центру... может просто не ту версию смотрели =)...
Но в последнем варианте точно включено отображение текста. | |
|
|
|
|
|
|
|
для: Valick
(20.03.2007 в 17:20)
| | Хотите без таблиц??? Пожалуйста - исправил всего 3 строчки... Тестил под IE, FF. Opera.
<?
$w = 150; $h = 20;
$arr = array(200, 90, 75, 42, 122);
?>
<html><body>
<style>
#tPos {
width:<?echo $w;?>px;
background-color:#FF0000;
text-align:left
}
.sPos {
height:<?echo $h;?>px;
background-color:#00FF00;
display:block;
}
.sTxt {
position:absolute; z-index:10;
width:<?echo $w;?>px; border:1px solid #0000FF;
display:block; text-align:center
}
</style>
<div id="tPos">
<?
$tr = array();
for($i = 1; $i < count($arr); $i++)
echo "<span class=\"sTxt\">".(100*$arr[$i]/$arr[0])."%</span><span class=\"sPos\" style=\"width:".round($w*$arr[$i]/$arr[0])."px\"></span>";
?>
</div>
</body>
</html>
|
ЕЩЕ РАЗ поясняю...
$w - ширина в пиксах отображения в браузере (типа ширина 100%)
$h - высота полоски
$arr - массив значений, где НУЛЕВОЙ индекс - значение, эквивалентное 100%
т.е. в данном случае 200 ~ 100%, соответственно все остальные значения должны быть НЕ БОЛЬШЕ 200... | |
|
|
|
|
|
|
|
для: Nemesis
(20.03.2007 в 17:22)
| | ВНИМАТЕЛЬНО читаем описание... в массиве 0 элемент = 100% в числовом отображении... т.е. В ПРИНЦИПЕ все остальные значения не могут быть БОЛЬШЕ чем 1 число!!! (110 < 214 и 110 < 400 - некорректные значения) | |
|
|
|
|
|
|
|
для: Бамси
(08.03.2007 в 18:57)
| | Ого... отошел на 2 дня.
Всем бооольшое спасибо, очень понравились ответы каждого, и собственно сама дискуссия :)
Больше всего понравился вариант Nemesis'а по мойму он идеален, и это именно то что мне было нужно. | |
|
|
|
|
|
|
|
для: Nemesis
(20.03.2007 в 15:26)
| | - | |
|
|
|
|
|
|
|
для: Nemesis
(20.03.2007 в 17:22)
| | Nemesis? поставте width:<?echo $w;?>px; border:0px solid #0000FF; и будет счастье, этот скрипт работает приемлимо, но мы же люди исскуства!))) даёшь ДИВ без ТАБЛЕ!!!!)) | |
|
|
|
|
|
|
|
для: ZuArt
(20.03.2007 в 16:10)
| | У меня Ваш пример, только со значениями :
$arr = array("110","102","214","356","400");
| "поплыл". | |
|
|
|
|
|
|
|
для: ZuArt
(20.03.2007 в 16:10)
| | Молодой человек, вы наверное не поняли в том-то вся и фишка, чтобы сделать слоями без использования таблиц, тут я немного противоречу сам себе:
Конечному пользователю всё равно как, ему главное чтобы всё работало.
но на это можно не обращать внимание:)
И в Опере лично для меня не пашет, сдвиг на пару пикселей лично для меня критичен, но на это тоже не стоит обращать внимания, потому как я не програмист и не дизайнер, я тупо глупый юзер)
З.Ы. Бамси, ну и заварил ты кашу))) | |
|
|
|
|