php 列表宽度

Posted

技术标签:

【中文标题】php 列表宽度【英文标题】:Php column table width 【发布时间】:2014-05-27 16:43:19 【问题描述】:

我试图让我的列具有相同的宽度,当我有空列时,它们的大小是正确的,但是当我从 mysql 数据库中插入表时,它们会发生变化,并且一列比其他列大,名为 '布里斯托尔资格”。我认为这可能与实际表格有关,因为我尝试移动 BristolQualification 并且每个不同列中的大小相同。有两个BathQualification,因为我只是在玩耍和测试。有谁知道为什么会发生这种情况?我试过用width="25%" 替换它们(因为有 4 列 25*4 = 100%)。

<?php 
mysql_connect("host", "user", "pwd") or die(mysql_error()); 
mysql_select_db("db") or die(mysql_error());

$data = mysql_query("
SELECT  
`Bath`.`BathCountry` ,  
`Bristol`.`BristolCountry` ,  
`Bath`.`BathQualification` ,  
`Bristol`.`BristolQualification` 
FROM  
`Bristol` 
LEFT JOIN  
`Bath` 
ON  
`Bristol`.`BristolCountry` =  `Bath`.`BathCountry` 
ORDER BY  
`Bristol`.`BristolCountry`;
") 
or die(mysql_error());

Echo "<table class=\"imagetable\" border cellpadding=3 style=\"width:100%;\">"; 
while($info = mysql_fetch_array( $data )) 
 
Echo "<tr>"; 
Echo "<th width=\"100\">Country:</th>
   <th class=\"Bristol\" width=\"100\">Qualifications to Bristol:</th>
   <th class=\"USW\" width=\"100\">Qualifications to USW:</th> 
   <th class=\"Bath\" width=\"100\">Qualifications to Bath:</th>"; 
Echo "</tr>";
Echo "<tr>";
Echo "<td width=\"100\">".$info['BristolCountry'] . "</td> 
   <td class=\"Bristol2\" width=\"100\">".$info['BathQualification'] . " </td> 
   <td class=\"Bath2\" width=\"100\">".$info['BathQualification'] . " </td> 
   <td class=\"USW2\" width=\"100\">".$info['BristolQualification'] . " </td> "  ;
Echo "</tr>"; 
  
 Echo "</table>"; 
 ?>

【问题讨论】:

【参考方案1】:

由于变量字符串长度不相等而出现问题。我在前一年也遇到过这种情况。您可以按照以下说明解决此问题。

块引用

$info['BathQualification'] 
$info['BathQualification'] 
$info['BristolQualification'] 

Are not all the same size in length. Guess the strings length are l1, l2, l3 respectively. So   
determine that which one is bigger.Suppose that you have determind that l2>l1>l2 .

Then add :
(l2-l1) spaces with $info['BathQualification'] 
(l2-l2) spaces with $info['BathQualification'] 
(l2-l3) spaces with $info['BristolQualification'] 

块引用 现在享受吧。

【讨论】:

【参考方案2】:

您应该使用此 CSS 属性:word-break:break-all; word-wrap:break-word(强制您的内容适合块的宽度)和table-layout:fixed 到您的表格。

table 
    word-break:break-all;
    word-wrap:break-word;
    table-layout:fixed;

【讨论】:

@Dyl10 :很高兴为您提供帮助! 这听起来可能很愚蠢,但现在我的文本在最后一个单词的中间被截断,而不是转到下一行。例如,它“会停在句子中间,我不想那样”。 @Dyl10 : 你能发个小提琴之类的吗?我的机器上没有这个错误。 没关系,我添加了 word-break: break-word;它解决了它。【参考方案3】:

试试这个:

Echo "<table class=\"imagetable\" border cellpadding=3 style=\"width:100%;\">"; 
while($info = mysql_fetch_array( $data )) 
 
Echo "<tr>"; 
Echo "<th width=\"100\">Country:</th>
<th class=\"Bristol\" width=\"33%\">Qualifications to Bristol:</th>
<th class=\"USW\" width=\"33%\">Qualifications to USW:</th> 
<th class=\"Bath\" width=\"33%\">Qualifications to Bath:</th>"; 
Echo "</tr>";
Echo "<tr>";
Echo "<td width=\"100\">".$info['BristolCountry'] . "</td> 
<td class=\"Bristol2\">".$info['BathQualification'] . " </td> 
<td class=\"Bath2\">".$info['BathQualification'] . " </td> 
<td class=\"USW2\">".$info['BristolQualification'] . " </td> "  ;
Echo "</tr>"; 
 
Echo "</table>";

还要确保内容不会占用 td 的所有空间 所以如果 td 的宽度为 100px 没有内容,请确保它的内容不超过 100px

【讨论】:

以上是关于php 列表宽度的主要内容,如果未能解决你的问题,请参考以下文章

html页面中下拉列表怎么控制宽度

如何解决列表框控件宽度不够的问题

增加引导下拉菜单宽度

设置剑道 ui 下拉列表宽度

如何用PHP输出图片的宽度和高度?

C# 学习笔记(16)ComboBox下拉列表框宽度自适应