Hi.

I recently started discovering svg, mostly by falling in love with d3.js.
I know that <text> has no background. It seems that question comes up on 
the net every once in a while and the consensus seems to be this:
'Draw a <rect> and put the <text> on top'.

That's - scary, because math is hard and I'd rather go shopping. On a more
serious note: I have a text that is highly dynamic. Probably it's between 
5 to 15 characters most of the time. Maybe. I layer that text on top of a
graph (think workflow, states and arrows between them). Sometimes the text
needs to be drawn in a place where a line/arrow is already.

Bottom line: I want the text to be readable and therefor try to create a
uniform background.

Calculating the rect size would be possible but it seems that I'd need a 
lot of roundtrips (creating the text, grabbing the bounding box,
creating/resizing the rect) where I so far had just simple mapping/data
binding. I'd love to avoid that.

Messing a lot with nested elements and filters I was happy to get a
workaround that works fine in FF and Chrome, but fails in - you guessed it 
- IE9. FF and Chrome show me red text on yellow background. IE9 ignores 
the background.

This is what I have, simplified of course:

<svg
   xmlns="http://www.w3.org/2000/svg";
   xmlns:xlink="http://www.w3.org/1999/xlink"; width="600" height="400">
   <defs>
     <filter id="flood">
       <feFlood
         flood-color="yellow"
         flood-opacity="0.75"
         result="flooded"/>
       <feMerge>
         <feMergeNode in="flooded"/>
         <feMergeNode in="SourceGraphic"/>
       </feMerge>
     </filter>
   </defs>
   <g class="workflowGroup">
     <g id="SomeNode" transform="translate(345, 199.5)">
       <rect
         class="station" fill="rgb(255,255,255)"
        x="-37" y="-26.5" rx="10" ry="10"
        width="74" height="53"/>
       <text y="9" fill="black"
         text-anchor="middle"
         dominant-baseline="mathematical"
         font-size="12">NodeName</text>
       <text y="35.5"
         filter="url(#flood)"
        fill="red"
         text-anchor="middle"
         dominant-baseline="mathematical"
         font-size="12">ThisIsMyProblem</text>
     </g>
   </g>
</svg>

By now I'm nearly ready to give up, but maybe someone on this list can 
help me with the following?

- Is this a valid use of a filter? Are FF and Chrome _correct_ in doing 
what I want or did I stumble upon a happy glitch?
- Is there anything obviously hindering IE to do what I want, period?
- Any other creative ways to get a new background without lots of 
calculations (lots = per node) in javascript?

Thanks a lot for any pointer,
Ben


------------------------------------

-----
To unsubscribe send a message to: svg-developers-unsubscr...@yahoogroups.com
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my 
membership"
----Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/svg-developers/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/svg-developers/join
    (Yahoo! ID required)

<*> To change settings via email:
    svg-developers-dig...@yahoogroups.com 
    svg-developers-fullfeatu...@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    svg-developers-unsubscr...@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to