Я работаю с футболистами, но такие игроки, как Oxlade-Chamberlain, слишком велики, чтобы показывать их на карте, поэтому я хочу изменить размер шрифта, если в нем более 15 символов. Я использую это
<?php
$sql = "SELECT * FROM `15players` WHERE `id`=" . $row['id'] . "";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
$row = mysql_fetch_array($result);
if($row['Common_Name'] === NULL)
echo $row['Last_Name'];
else
echo $row['Common_Name'];
if ($row['Common_Name'] > 14 )
?>
Поэтому я хочу изменить if ($row['Common_Name'] > 14 )
на что-то, что может изменить мой размер шрифта, когда он будет большим (более 14 символов)
Вроде Швайнштайгер подходит идеально (http://jterweele.informatica.bc-enschede.nl/speler.php?id=823) но Оксладе-Чемберлен все портит (http://jterweele.informatica.bc-enschede.nl/speler.php?id=6997)
РЕДАКТИРОВАТЬ: я нашел ответ.
я бы предложил обернуть <span>
вокруг текста, а затем создать класс
if($row['Common_Name'] === NULL)
{
echo $row['Last_Name'];
}
else
{
// since you are outputting $row['Common_Name'] to the page i am assuming
// it's a string and if you want to check the length you want strlen
if (strlen($row['Common_Name']) > 14 )
{
echo "<span class='smaller'>".$row['Common_Name']."</span>";
}
else
{
echo $row['Common_Name'];
}
}
приведенный выше код должен служить вашей цели, но если вы хотите улучшить его, вы можете сделать что-то вроде этого
$name = "";
if($row['Common_Name'] === NULL)
{
$name = $row['Last_Name'];
}
else
{
$name = $row['Common_Name'];
}
echo "<span class='";
$nameLen = strlen($name);
switch (true)
{
case $nameLen > 14:
echo "smaller";
break;
case $nameLen > 20:
echo "evenSmaller";
break;
default:
echo "normal";
}
echo "'>".$name."</span>";
с этим кодом независимо от того, если $row['Last_Name']
, $row['Common_Name']
или что бы то ни было выбрано (поскольку сами фамилии могут быть очень длинными, посмотрите на «Аппу» в «Симпсонах»), вы можете настроить размер для нескольких ситуаций.
причина, по которой я храню длину в переменной — по двум причинам
если вам нужно манипулировать значением длины из-за особых ситуаций (т. е. если фамилия была McDonald и прописные буквы должны отображаться в два раза больше обычных букв, и вы хотите добавить +1 к длине для каждой заглавной буквы)
редкое событие, где strlen()
по какой-то причине стал устаревшим, и вам нужно заменить его на новую функцию или даже если вы хотите использовать свою собственную strlen()
функция, с этим кодом вам нужно только изменить его в одном месте
Вы можете сделать это с помощью jQuery:
1. Прежде всего, включите библиотеку jQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
2. Во-вторых, используйте этот код:
<?php $sql = "SELECT * FROM `15players` WHERE `id`=" . $row['id'] . "";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
$row = mysql_fetch_array($result);
if($row['Common_Name'] === NULL)
echo $row['Last_Name'];
else
echo $row['Common_Name'];
?>
<script type="text/javascript">
$(document).ready(function(){
_name = "<?php echo $row['Common_Name'] ?>";
if (_name.length > 14) {
$('body').css('font-size', '12px');
};
});
</script>