I cannot change the width of <a> without making it float or block
3 answers
When you swim, you implicitly make it a block element. And unlike inline elements ( a , included in their number), block elements can be assigned width and height. Here's a good explanation of the differences between blocks and inline differences .
Edit: removed "have a layout" as part of the description of the elements of the block, this one is not quite right. ...
+3