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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как закрасить квадратики :)

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-50] 

 
 автор: Бамси   (20.04.2007 в 07:30)   письмо автору
 
   для: Бамси   (18.04.2007 в 19:11)
 

Я не знаю :)

   
 
 автор: Бамси   (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"

?>

Как сделать что бы надпись всегда была ровно по середине ячейки?

   
 
 автор: ZuArt   (21.03.2007 в 10:06)   письмо автору
 
   для: Trianon   (20.03.2007 в 16:36)
 

код перед Вашим постом вообще-то и размещает текст-надписи по центру... может просто не ту версию смотрели =)...
Но в последнем варианте точно включено отображение текста.

   
 
 автор: ZuArt   (21.03.2007 в 09:53)   письмо автору
 
   для: Valick   (20.03.2007 в 17:20)
 

Хотите без таблиц??? Пожалуйста - исправил всего 3 строчки... Тестил под IE, FF. Opera.
<?
$w 
150$h 20;
$arr = array(200907542122);
?>
<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...

   
 
 автор: ZuArt   (21.03.2007 в 09:44)   письмо автору
 
   для: Nemesis   (20.03.2007 в 17:22)
 

ВНИМАТЕЛЬНО читаем описание... в массиве 0 элемент = 100% в числовом отображении... т.е. В ПРИНЦИПЕ все остальные значения не могут быть БОЛЬШЕ чем 1 число!!! (110 < 214 и 110 < 400 - некорректные значения)

   
 
 автор: Бамси   (20.03.2007 в 19:47)   письмо автору
 
   для: Бамси   (08.03.2007 в 18:57)
 

Ого... отошел на 2 дня.
Всем бооольшое спасибо, очень понравились ответы каждого, и собственно сама дискуссия :)
Больше всего понравился вариант Nemesis'а по мойму он идеален, и это именно то что мне было нужно.

   
 
 автор: Бамси   (20.03.2007 в 19:46)   письмо автору
 
   для: Nemesis   (20.03.2007 в 15:26)
 

-

   
 
 автор: Valick   (20.03.2007 в 17:41)   письмо автору
 
   для: Nemesis   (20.03.2007 в 17:22)
 

Nemesis? поставте width:<?echo $w;?>px; border:0px solid #0000FF; и будет счастье, этот скрипт работает приемлимо, но мы же люди исскуства!))) даёшь ДИВ без ТАБЛЕ!!!!))

   
 
 автор: Nemesis   (20.03.2007 в 17:22)   письмо автору
 
   для: ZuArt   (20.03.2007 в 16:10)
 

У меня Ваш пример, только со значениями :

$arr = array("110","102","214","356","400"); 
"поплыл".

   
 
 автор: Valick   (20.03.2007 в 17:20)   письмо автору
 
   для: ZuArt   (20.03.2007 в 16:10)
 

Молодой человек, вы наверное не поняли в том-то вся и фишка, чтобы сделать слоями без использования таблиц, тут я немного противоречу сам себе:
Конечному пользователю всё равно как, ему главное чтобы всё работало.
но на это можно не обращать внимание:)
И в Опере лично для меня не пашет, сдвиг на пару пикселей лично для меня критичен, но на это тоже не стоит обращать внимания, потому как я не програмист и не дизайнер, я тупо глупый юзер)
З.Ы. Бамси, ну и заварил ты кашу)))

   

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-50] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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