Question: I frequently create labels that follow the same format: white text on a 75% opaque black background, with 10px of margin around the text. Currently, I have to manually build these labels, which takes a lot of work.

In one method, I write the text, figure out its height and width, then create a separate rectangle and place it behind it. This takes a lot of clicking around for every label.

In the other method, I draw out a text box, select it directly, give it the correct background and margins, and then insert the text. However, I must then resize the box manually, meaning more clicking around and greater imprecision. There doesn't seem to be a way to directly select a text box once it has text inside it.

I tried using the script contained in [a related answer](https://graphicdesign.stackexchange.com/questions/4434/how-to-fit-text-box-size-to-text) to resize the text box to the content, but it only resizes the box vertically, and removes my color and margins.

Does anyone have suggestions on how to resolve these problems, or for a better method? I'm using CS3.

Answer: 
You really don't need any scripting for this.

* Select text object with **Selection Tool** (Black arrow)
* Add a new fill via **Appearance Panel**
* Move the new fill below the `<Characters>` item in the Appearance Panel
* Highlight the new fill and choose `Effect > Convert to Shape > Rectangle`
* Enter relative amount of points/pixels/inches etc. you want the rectangle to be offset from the text
* Click `OK`
* Drag the text object to **Graphic Styles Panel**

![label](https://i.stack.imgur.com/yb9rM.jpg)

The background rectangle is *relative* to the size of the text object. Should the text object change in size the rectangle adjusts to match.

When you need to reapply the appearance, select the text object and click the Graphic Style. 

If you find you are having difficulty with text colors being incorrect after applying the Graphic Style, please see @BANG's solution **[HERE](https://graphicdesign.stackexchange.com/questions/66016/how-to-apply-graphic-style-correctly-in-illustrator/95530#95530)**.
I feel like I have to say this a lot with Adobe products but ...

The most efficient answer is scripting.
---------------------------------------

You need to get the bounds of the text, draw a box based on those numbers, and position it behind the text. With some basic math and an understanding of how to get to Illustrator's various scripting objects, it's not that tough.

For starters, you need to get the points defining the object's location:

```
activeDocument.selection[0].geometricBounds

```

That will return the array [x1, y1, x2, y2]. From there you can start building and styling your box and move it behind the text object.

You could start with the script that you linked as a reference of how it's done. If you don't know javascript and Illy's scripting interface it will take some time. The upside is that the operation will take seconds each subsequent time and you'll have a whole new world of efficiency opened up to you.

The reason that script didn't do what you wanted is that you can't apply a background color to area text. It converts it to area text to do the centering, leaving you without your box styles.