Add an absolute positioned div (100% height/width) containing a font with em size, fill it with an "X"
<div class="deceased">X</div>
Will expand properly (and save an image callback as well :) )
If you don't like the X to be clipped by setting its size very big you will need javascript to resize it when div size changes.
Even better, you can add it with :after
pseudo class and save both the extra div and the "X"
.deceased:after
{
content:"X";
position:absolute;
left:0px;
top:0px;
width:100%;
height:100%;
font-size: 1000px; // adjust this a little though it will be clipped by the div
text-align: center;
line-height: 100%;
overflow: hidden;
}
Or :before
.. will put it "underneath" the existing content
.deceased:before
{
content:"X";
position:absolute;
left:0px;
top:0px;
width:100%;
height:100%;
font-size: 1000px; // adjust this a little though it will be clipped by the div
text-align: center;
line-height: 100%;
overflow: hidden;
}
UPDATE
I did find a way to use CSS only ...
@media all and (min-width: 50px) { .deceased:before { font-size:0.1em; } }
@media all and (min-width: 100px) { .deceased:before { font-size:0.2em; } }
@media all and (min-width: 200px) { .deceased:before { font-size:0.4em; } }
@media all and (min-width: 300px) { .deceased:before { font-size:0.6em; } }
@media all and (min-width: 400px) { .deceased:before { font-size:0.8em; } }
and so on ....
UPDATE 2
And an inline svg containing a text will scale the text to the size of the div...
.deceased:before
{
content: url('data:image/svg+xml;utf8,<svg>....</svg>');
position:absolute;
left:0px;
top:0px;
width:100%;
height:100%;
overflow: hidden;
}