<html>
<head><style>
  fieldset, legend { margin: 0px; padding: 0px; }
  fieldset {
    width: 20em;
    text-align: right;
    border: 0px;
  } 
  legend   { display: block; }
  .orange  { background: orange }
</style></head>
<body>
  The orange box should only be as wide as its text.
  <fieldset>
    <legend class="orange">foo</legend>
  </fieldset>
</body>
</html>