【问题标题】:CSS text align doesn't apply because of inherited properties由于继承的属性,CSS 文本对齐不适用
【发布时间】:2014-09-24 00:46:37
【问题描述】:

所以我正在尝试在 IPB 板内进行编辑并向子论坛添加一些数据。

如您所见,文本信息(状态玩家 ping harta)向右对齐,并且“harta”变量没有固定长度的事实使其不均匀,因此它们并不都在彼此之下。

我正在从 php 打印所有内容,并尝试为其添加一些样式以强制它向左对齐,但它不起作用。

    if($_Query->details->tplayers==0)
    {
        $_FIScontent .= "Status: <img src=\"offline.gif\" alt=\"\"> <span style=\"color:red\"> [OFF]</span>";
        $_FIScontent .= "<br><a href=\"http://www.gametracker.com/server_info/" . $tip . ":27015/\" target=\"_blank\"><img src=\"gametracker.png\" border=\"0\" height=\"25\" width=\"75\"></a> ";
        $_FIScontent .= "<a href=\"http://" . $tip . "/\" target=\"_blank\"><img src=\"site.png\" border=\"0\" height=\"25\" width=\"75\"></a> ";
        echo $_FIScontent;
        return $_FIScontent;
    }

    $_FIScontent .= "<div id=\"mata\" class=\"mata\" style=\"
    text-align: left;
    \"><table><tr>";
    $_FIScontent .= "<td>Status: <img src=\"online2.gif\" alt=\"\"> <span style=\"color:green\"> [ON]</span></td>";

    $_FIScontent .= "<td>";
    if($_Query->details->pplayers<10)
        $_FIScontent .= "Players: <span style=\"color:red\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    else if($_Query->details->pplayers<20)
        $_FIScontent .= "Players: <span style=\"color:orange\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    else
        $_FIScontent .= "Players: <span style=\"color:green\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    $_FIScontent .= "</td>";

    //$_FIScontent .= "<tr>";
    $_FIScontent .= "<td>Ping: ".$_BuildStats[SERVER_LATENTA]."ms</td>";
    $_FIScontent .= "<td>Harta: ".$_BuildStats[SERVER_MAP]."</td></table>";
    //$_FIScontent .= "</tr>";

    $_FIScontent .= "<table><td>";
    $_FIScontent .= "<a href=\"http://www.gametracker.com/server_info/" . $tip . ":27015/\" target=\"_blank\"><img src=\"gametracker.png\" border=\"0\" height=\"25\" width=\"75\"></a> ";
    $_FIScontent .= "<a href=\"http://" . $tip . "/\" target=\"_blank\"><img src=\"site.png\" border=\"0\" height=\"25\" width=\"75\"></a>";
    $_FIScontent .= "<a href=\"steam://connect/" . $tip . ":27015/\" target=\"_blank\"><img src=\"connect.png\" border=\"0\" height=\"25\" width=\"75\"></a>";
    $_FIScontent .= "</td>";

    $_FIScontent .= "</table></div>";
    echo $_FIScontent;
    return $_FIScontent;

如果你想看的话,这里是链接,希望这不是非法http://furien.b-zone.ro/query/wadap.php

编辑了一个表格,每个元素一个 td

    $_FIScontent .= "<div id=\"mata\" class=\"mata\" style=\"
    text-align: left;
    \"><table><tr>";
    $_FIScontent .= "<td>Status: <img src=\"online2.gif\" alt=\"\"> <span style=\"color:green\"> [ON]</span></td>";

    $_FIScontent .= "<td>";
    if($_Query->details->pplayers<10)
        $_FIScontent .= "Players: <span style=\"color:red\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    else if($_Query->details->pplayers<20)
        $_FIScontent .= "Players: <span style=\"color:orange\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    else
        $_FIScontent .= "Players: <span style=\"color:green\">".$_BuildStats[SERVER_PLAYERS]."</span>";
    $_FIScontent .= "</td>";

    //$_FIScontent .= "<tr>";
    $_FIScontent .= "<td>Ping: ".$_BuildStats[SERVER_LATENTA]."ms</td>";
    $_FIScontent .= "<td>Harta: ".$_BuildStats[SERVER_MAP]."</td>";
    //$_FIScontent .= "</tr>";

    $_FIScontent .= "<td>";
    $_FIScontent .= "<a href=\"http://www.gametracker.com/server_info/" . $tip . ":27015/\" target=\"_blank\"><img src=\"gametracker.png\" border=\"0\" height=\"25\" width=\"75\"></a> ";
    $_FIScontent .= "</td>";
    $_FIScontent .= "<td>";
    $_FIScontent .= "<a href=\"http://" . $tip . "/\" target=\"_blank\"><img src=\"site.png\" border=\"0\" height=\"25\" width=\"75\"></a>";
    $_FIScontent .= "</td>";
    $_FIScontent .= "<td>";
    $_FIScontent .= "<a href=\"steam://connect/" . $tip . ":27015/\" target=\"_blank\"><img src=\"connect.png\" border=\"0\" height=\"25\" width=\"75\"></a>";
    $_FIScontent .= "</td>";

    $_FIScontent .= "</tr></table></div>";
    echo $_FIScontent;
    return $_FIScontent;

【问题讨论】:

  • 我找不到你的代码有什么问题,你没有 元素让它们一个接一个地显示。
  • 一些我不明白的事情以及缺少 tr 结束标签是为什么您使用新表格来存储主题和回复?但更多的主题是你的表格中的每一行都被包裹在它自己的 tr
  • 我搜索的范围很广。出于某种原因,论坛模板的 css 以某种方式迫使他们像他们一样显示。我似乎无法摆脱论坛为表格设置的任何属性(不能减少填充或任何东西)\n tr 标签丢失了,因为我在顶部有 4 个元素,在底部有 3 个元素。无论如何,论坛以相同的方式显示它们,左侧有填充,因此根据数据的大小将表格列推开。
  • 将这个小 CSS 规则添加到您的样式表中,看看它的作用:td { text-align: left !important; }
  • 大声笑它不可能在您的网站上使用 chrome 中的开发人员工具,因为您的 DOM 正在表中被更改。也许它的状态图像。

标签: php html css alignment


【解决方案1】:

我设法停止了来自您的 setInterval 的服务器调用并查看了 DOM。它表明您的状态播放器 ping 和 harta 已经是左对齐的文本。它的行为方式是因为它没有遵循一致的表结构。这意味着由于每行信息的每个表结构不同,因此布局也会不同。

解决方案是使用单个表来存放信息。每列信息都需要自己的 td。对于主题和回复等信息,您可以在 td 中为该列创建一个新表。

【讨论】:

  • 用适当的编辑编辑OP,数据仍然被推到左边
  • @AronH。您的每个“状态”部分都是它自己的表格。除非您为每个表格中的每个单元格分配特定的宽度,或者使它们成为父表格的一部分,否则它们将单独调整以适应其中包含的数据。
  • @RyanKinal 是正确的。如果没有在 td 上设置宽度,则推断宽度并且会有所不同。当信息都在父表中时,推断的宽度与文本格式无关。每列的所有内容都将正确对齐,并且所有列的宽度都相同。
  • 我可以在 php 中以某种方式做到这一点吗?还是我需要在css文件中摆弄。我只想在可能的情况下向地图列添加最小宽度
  • 如果你的意思是 td 宽度,你可以在 css 中摆弄它。如果您尝试为所有信息创建父表,则需要更改 html。
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
相关资源
最近更新 更多