Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изменение размера шрифта в завис. от длины строки 
V
    Опции темы
olegti
Дата 20.8.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Всем доброго времени суток!
У меня такой вопрос!
есть блок с пременной

Код

<div style="color:#FFFFFF;position:relative;top:83px;right:30px;"><h1><?=(isset($ADV->header)) ? $ADV->header:'New Advertise'?></h1></div>


эта переменная вытаскивает название компании.

мне нужно сделать так, чтобы размер шрифта этого названия менялся в зависимости от количества символов.

например если символов <=20, то размер шрифта 15px
                 если символов больше 20 но меньше 35, то размер шрифта 13px
                 если символов больше 35, то размер шрифта = 11px

подскажите пожалуйста как это можно реализовать?!!!!!!
PM MAIL   Вверх
bars80080
Дата 20.8.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



ну, дык померить длину строки не сложно: 

strlen($ADV->header);

а выбрать размер в зависимости от длины - поможет if()
PM MAIL WWW   Вверх
olegti
Дата 20.8.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @ 20.8.2009,  17:32)
ну, дык померить длину строки не сложно: 

strlen($ADV->header);

а выбрать размер в зависимости от длины - поможет if()

а не могли бы вы поподробней описать эту реализацию, а тоя сам верстальщик и php очень плохо знаю
PM MAIL   Вверх
olegti
Дата 20.8.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Цитата(olegti @ 20.8.2009,  17:04)
Всем доброго времени суток!
У меня такой вопрос!
есть блок с пременной

Код

<div style="color:#FFFFFF;position:relative;top:83px;right:30px;"><h1><?=(isset($ADV->header)) ? $ADV->header:'New Advertise'?></h1></div>


эта переменная вытаскивает название компании.

мне нужно сделать так, чтобы размер шрифта этого названия менялся в зависимости от количества символов.

например если символов <=20, то размер шрифта 15px
                 если символов больше 20 но меньше 35, то размер шрифта 13px
                 если символов больше 35, то размер шрифта = 11px

подскажите пожалуйста как это можно реализовать?!!!!!!

я сделал вот так вот, но что-то не работает

Код

<? if ( strlen ($ADV->header)>20 ) { ?>
<div style="color:#FFFFFF;position:relative;top:83px;right:30px;font-size:9px"><h1><?=(isset($ADV->header)) ? $ADV->header:'New Advertise'?></h1></div>
<? } else { ?><div style="color:#FFFFFF;position:relative;top:83px;right:30px;"><h1><?=(isset($ADV->header)) ? $ADV->header:'New Advertise'?></h1></div> <? }?>

PM MAIL   Вверх
TUMS
Дата 20.8.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 16.3.2008

Репутация: нет
Всего: 3



а не проще вынести логику в css файл?
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
bars80080
Дата 20.8.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



попробуйте заместо

Код

<div style="color:#FFFFFF;position:relative;top:83px;right:30px;"><h1><?=(isset($ADV->header)) ? $ADV->header:'New Advertise'?></h1></div>


это:

Код

<?php
if(isset($ADV->header)) {
    $header = $ADV->header;
    $len = strlen($header);
    if($len <= 20) { $fs = 15; }
    elseif($len > 20 && $len < 35) { $fs = 13; }
    else { $fs = 11; }
} else {
    $header = 'New Advertise'; $fs = 15;
}
?>
<div style="color:#FFFFFF;position:relative;top:83px;right:30px;font-size:<?php echo $fs; ?>px;"><h1><?php echo $header; ?></h1></div>



PM MAIL WWW   Вверх
skyboy
Дата 20.8.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(TUMS @  20.8.2009,  18:26 Найти цитируемый пост)
а не проще вынести логику в css файл? 

мне вот тоже пришла идея подобная: если задача уместить название в определенную область и избежать переноса строки, то можно попробовать отрисованную надпись просто ограничить по ширине(по высоте будет изменение размера идти пропорционально): ресайз средствами браузера может быть не настолько хорош, как текст заданного размера, но, в зависимости от шрифта, такое решение будет гибче размера в пискелах в зависимости от длины.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.