【问题标题】:If ['Name'] is longer than 15 characters, change font-size [closed]如果 ['Name'] 超过 15 个字符,请更改字体大小 [关闭]
【发布时间】:2016-02-05 15:02:39
【问题描述】:

我与足球运动员一起工作,但像 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'] &gt; 14 ) 更改为可以在字体变大(超过 14 个字符)时改变我的字体大小的东西

就像 Schweinsteiger 完美契合 (http://jterweele.informatica.bc-enschede.nl/speler.php?id=823) 但 Oxlade-Chamberlain 搞砸了一切 (http://jterweele.informatica.bc-enschede.nl/speler.php?id=6997)

编辑:我找到了答案。

【问题讨论】:

  • 我同意这是重复的,但这个问题的公认答案充其量是很差的。
  • @blm 我不认为它很差。我实际上打算建议相同的功能,但是有几种方法可以实现 OP 想要在这里做的事情。
  • @Fred-ii- 在服务器端代码中嵌入诸如字体大小之类的演示内容很糟糕。使用一个类并将字体大小放在css中。
  • 请记住,“WWW”比“iii”宽得多。我看到解决此问题的一种方法是在浏览器中创建一个不附加的 div,添加文本并测量宽度。

标签: javascript php mysql css font-size


【解决方案1】:

我建议将&lt;span&gt; 包裹在文本周围,然后设置一个类

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'] 或其他任何代码(因为姓氏本身可能很长,请查看辛普森一家中的 Apu),您都可以针对多种情况调整大小。

我将长度存储在变量中的原因有两个

  1. 如果您因为特殊情况需要操作长度值(即,如果姓氏是 McDonald 并且大写字母设置为显示为常规字母的两倍大并且您想为每个大写字母的长度添加 +1)

  2. strlen() 因某种原因贬值的罕见事件,您需要将其更改为新函数,或者即使您想使用自己的 strlen() 函数,使用此代码您只需要更改它在一次地方

【讨论】:

  • 完美运行!非常感谢!
【解决方案2】:

你可以用 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>

【讨论】:

  • 答案不应要求使用问题中既未标记也未请求的库。
  • 您不应该在服务器端代码中嵌入字体大小。使用一个类并在 css 中设置大小。此外,如果您还没有使用 jquery 来完成这项琐碎的任务,那么包括 jquery 有点像租用工业起重机来移动鹅卵石。
猜你喜欢
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2015-11-20
  • 2018-04-12
  • 1970-01-01
  • 2015-09-25
相关资源
最近更新 更多