我正在尝试创建一个双色背景的HTML表格单元格;所以我在背景上有正常的文字,左边是黄色,右边是绿色。
我到目前为止最接近的如下。背景是正确的一半,但内容文本位于其下方。
<html>
<head>
<style type='text/css'>
td.green
{
background-color: green;
padding: 0px;
margin: 0px;
height:100%;
text-align:center
}
div.yellow
{
position:relative;
width: 50%;
height: 100%;
background-color:yellow
}
</style>
</head>
<body style="width: 100%">
<table style="width: 25%">
<tr style="padding: 0px; margin: 0px">
<td class="green">
<div class="yellow"></div>
<div class="content">Hello</div>
</td>
</tr>
</table>
</body>
</html>
我该如何解决这个问题?
答案 0 :(得分:6)
您必须将内容DIV
嵌套在黄色DIV
:
<div class="yellow"><div class="content">Hello</div></div>
[编辑]这有一个缺陷:内部DIV将被限制为黄色DIV
(即它只会使用页面宽度的50%)。
所以我们需要另一个div
,绝对定位和z-index:
<html>
<head>
<style type='text/css'>
td.green
{
background-color: green;
padding: 0px;
margin: 0px;
height:100%;
text-align:center
}
div.yellow
{
position:absolute; left:0px; top:0px;
width: 50%;
height: 100%;
background-color:yellow
}
div.container { position:relative; height: 100%; }
div.content { position:relative; z-index:1; }
</style>
</head>
<body style="width: 100%">
<table style="width: 25%; height: 150px;">
<tr style="padding: 0px; margin: 0px">
<td class="green">
<div class="container">
<div class="content">Hello</div>
<div class="yellow"></div>
</div>
</td>
</tr>
</table>
</body>
</html>
适用于FF 3.6。
答案 1 :(得分:4)
视觉上每种颜色都显示为相等,因此理想情况下,您需要维护在代码中将背景颜色设置为相同级别的元素,而不是嵌套它们。建立亚伦的答案:
<html>
<head>
<style type='text/css'>
td {
padding: 0;
margin: 0;
text-align: center;
}
.container {
position: relative;
}
.bg {
position: absolute;
top: 0;
bottom: 0;
width: 50%;
}
.content {
position: relative;
z-index: 1;
}
.yellow {
left: 0;
background-color: yellow;
}
.green {
right: 0;
background-color: green;
}
</style>
</head>
<body style="width: 100%">
<table style="width: 25%">
<tr style="padding: 0; margin: 0">
<td>
<div class="container">
<div class="content">Hello</div>
<div class="bg yellow"></div>
<div class="bg green"></div>
</div>
</td>
</tr>
</table>
</body>
</html>
答案 2 :(得分:1)
使用背景图片可能更容易?然后,您可以将其应用于单元格。
答案 3 :(得分:0)
试试这个:
td.green
{
background-color: green;
padding: 0px;
margin: 0px;
height:1em;
text-align:center
}
div.yellow
{
width: 50%;
height: 1em;
background-color:yellow
}
.content {
margin-top: -1em;
}
答案 4 :(得分:0)
只需创建一个长的薄图像,左边是一种颜色,右边是另一种颜色。然后给它一个如下的样式:
background: url(image) center center repeat-y;
(未经测试,但应该是这样的:p
答案 5 :(得分:0)
如果td具有固定宽度,那么您可以制作尺寸等于fixedWidth_in_px * 1px
的图像并将此图像设置为背景并将背景重复设置为repeat-y,以使其填充整个高度td。像
td.bg
{
width: 100px;
height: 100%;
background: #fff url(imagepath) repeat-y;
}
答案 6 :(得分:0)
对于我的解决方案,我在单元格内没有其他元素或文本,因此可以使用单元格的边框使其看起来好像有2种背景颜色。因此,将这两种样式应用于td设置为50px时会出现2种伪背景颜色。
.halfleft_casual {
border-right:25px solid blue;
}
.halfleft_member {
border-right:25px solid green;
}