backgroundcolor not rendered with Netscape, Firefox

A

André

Hi,

i created a table with cells. One cell has background-color (LightSlateGray)
and contains a label without text but also with a backgroundcolor (red). The
width of the label is set by a value which represents a percentage of
another value (doesn't matter).

In IE, it works: i see the background of the cell and the red background of
the label.
In Netscape, Safari, Firefox, i only see the backgroundcolor of the cell
(LightSlateGray) but not the red background of the label.

Any idea how to solve this?
Thanks
André

Here the source of the file sent to the browser:
---------------------------------------------

<td align="left" style="background-color:LightSlateGray;"><span
style="display:inline-block;background-color:Red;width:50px;"></span></td>

And here the code-behind:
--------------------------
c = New TableCell
c.HorizontalAlign = HorizontalAlign.Left
c.BackColor = Drawing.Color.LightSlateGray
l = New Label
l.BackColor = Drawing.Color.Red
If aantalantw(j) > 0 Then
l.Width = Math.Round((va(j, k) / aantalantw(j)) * 100, 1)
Else
l.Width = 0
End If
c.Controls.Add(l)
 
G

Göran Andersson

André said:
Hi,

i created a table with cells. One cell has background-color (LightSlateGray)
and contains a label without text but also with a backgroundcolor (red). The
width of the label is set by a value which represents a percentage of
another value (doesn't matter).

In IE, it works: i see the background of the cell and the red background of
the label.
In Netscape, Safari, Firefox, i only see the backgroundcolor of the cell
(LightSlateGray) but not the red background of the label.

Any idea how to solve this?
Thanks
André

Here the source of the file sent to the browser:
---------------------------------------------

<td align="left" style="background-color:LightSlateGray;"><span
style="display:inline-block;background-color:Red;width:50px;"></span></td>

And here the code-behind:
--------------------------
c = New TableCell
c.HorizontalAlign = HorizontalAlign.Left
c.BackColor = Drawing.Color.LightSlateGray
l = New Label
l.BackColor = Drawing.Color.Red
If aantalantw(j) > 0 Then
l.Width = Math.Round((va(j, k) / aantalantw(j)) * 100, 1)
Else
l.Width = 0
End If
c.Controls.Add(l)

The display value inline-block is part of the CSS 2.1 standard, so it's
not implemented in all current browsers. The implementation in IE7 is
only partial, and Firefox 2 doesn't support it at all.

As Firefox doesn't recognise the inline-block setting, the span is still
an inline element. You can't specify a width for inline elements, so as
there isn't anything in the span, it will not take up any space. The
background color works just fine, you just don't see it.
 
M

marss

Thanks for replying.
Do you mean there is no solution for this problem?

The display value inline-block is part of the CSS 2.1 standard, so it's
not implemented in all current browsers. The implementation in IE7 is only
partial, and Firefox 2 doesn't support it at all.
As Firefox doesn't recognise the inline-block setting, the span is still
an inline element. You can't specify a width for inline elements, so as
there isn't anything in the span, it will not take up any space. The
background color works just fine, you just don't see it.

If the label is the only element within the cell then just set the
label's display property to "block".
If there are several elements than use "display:block" together with
"float:left" (or "float:right")

Label l = new Label()
l.Style["display"] = "block";
l.Style["float"] = "left"; //optional

Code in C#, I do not remember VB syntax :(

Mykola
http://marss.co.ua
 
A

André

Thanks

"marss" <[email protected]> schreef in bericht
Thanks for replying.
Do you mean there is no solution for this problem?

The display value inline-block is part of the CSS 2.1 standard, so it's
not implemented in all current browsers. The implementation in IE7 is
only
partial, and Firefox 2 doesn't support it at all.
As Firefox doesn't recognise the inline-block setting, the span is still
an inline element. You can't specify a width for inline elements, so as
there isn't anything in the span, it will not take up any space. The
background color works just fine, you just don't see it.

If the label is the only element within the cell then just set the
label's display property to "block".
If there are several elements than use "display:block" together with
"float:left" (or "float:right")

Label l = new Label()
l.Style["display"] = "block";
l.Style["float"] = "left"; //optional

Code in C#, I do not remember VB syntax :(

Mykola
http://marss.co.ua
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top