html - php 输出中的内联 css

标签 html css

我有一个表格,我想添加垂直对齐到:

$output = '<style type="text/css">div.bar-container {border: 1px solid #ccc; width: 150px; margin: 2px 5px 2px 17px; padding: 3px; float: left; background: white; position:relative; border-radius: 4px;}div.bar-container div {background-color: #ff7021; height: 12px;}div.bar-container span {width:140px;text-align:center;float:left;font: normal 9px Arial,sans-serif;margin-top: 0px;}</style>
<span style="text-align: left"><h2>Control</h2></span><br />
           ' . $htmlarray["clientkeyautherror"] . '
           <table width="100%" height="450px" cellspacing="0" cellpadding="0" class="frame">
           <tr><td style="border:none">
           <table width="100%" height="450px" border="0" cellpadding="10" cellspacing="0">
           ' . $htmlarray["displaystatus"] . '
           ' . $htmlarray["bandwidthbar"] . '
           ' . $htmlarray["memorybar"] . '
           ' . $htmlarray["hddbar"] . '
           ' . $htmlarray["buttons"] . '
           ' . $htmlarray["ips"] . '
           ' . $htmlarray["graphbutton"] . '
           </table>
           </td>
           </tr>
           </table>
          ';
   return $output;
 }

我需要添加一个 vertical-align: middle;到 html 数组属性,例如 memorybar。谁能告诉我在上面的例子中我会怎么做?谢谢!

我已经试过了:

' "<div style='vertical-align:middle;'>" . ' . $htmlarray["displaystatus"] . ' . "</div>" '

却得到了美丽的死亡白页。

最佳答案

你总是可以在你想要影响的对象上放置一个类或使用:nth-child选择器。例如,使用名为“middle”的类和第一个 child :

.middle{
    vertical-align: middle;
    background: green;
}

.frame td:nth-child(2){
    background: brown;
    vertical-align: middle;
}

jsfiddle 中的示例.

另外:避免使用内联样式。这是bad practice .

EDIT1:内联样式的解释。

请考虑以下事项: 您插入的每个字符都会使您的页面变大,从而变慢。

'style='vertical-align:middle' = 29 个额外字符。 class='midtd' = 13 个图表

这是 16 个字符的差异。

.midtd{vertical-align:middle;} = 30 个字符。

如果您需要将样式应用于单个 <td>内联产生 29 个字符,类产生 43 个字符。

如果您需要将样式应用于 2 <td> s inline 总共产生 58 个字符,class 产生 56 个字符。

如果您需要将样式应用于 3 <td> s inline 总共产生 87 个字符,class 产生 69 个字符。每增加一个 td,差异就会变大。

所以如果你需要将它应用到超过1个td,class在页面大小方面优于inline。这看起来很可笑,但相信我,在你生命中的某个时刻,你会因为这个而感谢我 ;)。

此外,如果您需要将样式应用到整个列,比如说第 2 列,它会花费您 .frame td:nth-child(2){vertical-align:middle;}或 46 个字符,与表行的数量无关。

换句话说,nth-child 比大多数解决方案轻得多,但它不适用于随机单元格(假设您想要将样式应用于第 1 行的第 3 个和第 5 个单元格,但仅适用于第 2 行的第 4 个单元格,这样的顺序由服务器逻辑而不是表内的 pater 确定),其中类方法比内联方法轻得多。您可以将同一个类应用于无限数量的元素。

这个,还有一个great deal of people如果你的页面有 1 或 2 个 float 的内联样式,谁就会少考虑你的页面。

关于html - php 输出中的内联 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25496449/

相关文章:

css - 输入处于事件状态/焦点时删除表单标签

css - 在所有元素上叠加图案

javascript - 将 div 附加到窗口底部

jquery - 在单行中滑动 div

html - CSS:下拉菜单未正确选择;边距间距?

javascript - 是否支持在触摸设备上拖放?

php - Cakephp通过foreach在表内单选输入

javascript - 在 PHP 中提取缩略图

php - 如何在PHP中的表格行中添加注释

opacity - 如何修复 parent 的透明div child ?