使
的背景颜色为填写封闭的

发布于 2024-12-18 22:30:04 字数 1340 浏览 0 评论 0原文

我有一个 HTML 表格,其单元格包含带有 display:inline-blockdiv,其中包含不同大小的文本。

我需要文本在基线上对齐,并且需要 div 的背景颜色来填充单元格的高度。对于最大的字体,背景颜色确实填充单元格,但对于较小的字体则不会:

“Firefox

这可能吗?像 div { height:100% } 这样明显的解决方案似乎因不同的字体大小而失败。

这是到目前为止的代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style type="text/css">
    table td {
        vertical-align: baseline;
        padding: 0;
    }

    td div {
        display: inline-block;
    }
  </style>
</head>
<body>
    <table>
        <tr>
            <td style="background-color:cyan">
                <div style="background-color:pink;">Pink</div>
                <div style="background-color:green;">Green</div>
            </td>
            <td style="background-color:cyan">
                <div style='font-size: 40pt; background-color:yellow;'>
                    Big yellow text
                </div>
            </td>
            </tr>
  </table>
</body>
</html>

它也在 jsfiddle 这里上。

I have an HTML table whose cells contain divs with display:inline-block, containing text of varying sizes.

I need the text to align on the baseline, and I need the background colors of the divs to fill the height of the cells. For the largest font, the background color does fill the cell, but it doesn't for the smaller fonts:

How it looks in Firefox

Is this possible? Obvious solutions like div { height:100% } seem to be scuppered by the varying font sizes.

Here's the code so far:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style type="text/css">
    table td {
        vertical-align: baseline;
        padding: 0;
    }

    td div {
        display: inline-block;
    }
  </style>
</head>
<body>
    <table>
        <tr>
            <td style="background-color:cyan">
                <div style="background-color:pink;">Pink</div>
                <div style="background-color:green;">Green</div>
            </td>
            <td style="background-color:cyan">
                <div style='font-size: 40pt; background-color:yellow;'>
                    Big yellow text
                </div>
            </td>
            </tr>
  </table>
</body>
</html>

It's also on jsfiddle here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤者何惧 2024-12-25 22:30:04

不完美,但我能得到的最接近的:

http://jsfiddle.net/gfPkV/14/

Not perfect, but the closest I could get:

http://jsfiddle.net/gfPkV/14/

安穩 2024-12-25 22:30:04

快速而肮脏的修复:

CSS

div {
    line-height:60px;
    height:60px;
    vertical-align:middle;
}

演示:http://jsfiddle.net/2YbBg/

Quick and dirty fix:

CSS

div {
    line-height:60px;
    height:60px;
    vertical-align:middle;
}

Demo: http://jsfiddle.net/2YbBg/

楠木可依 2024-12-25 22:30:04

我读过一次,td 没有报告它的高度。因此任何 height: 100%height:auto 等都不起作用。

所以我的解决方案在这里: http://jsfiddle.net/UGTYP/

它改变了“粉红色”文本的高度使用 javascript 到“黄色”div 的高度。

I read once, that td does not report it's height. So any height: 100% or height:auto, etc.. won't work.

So my solution is here: http://jsfiddle.net/UGTYP/

It changes height of "pink" text to the height of "yellow" div with javascript.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文