一般而言,如果只是对付url过长超出文字框显示的话,只用word-wrap: break-word;即可。
但v2ex同时还用了word-break: break-all;,我认为可能有以下理由:
1. 希望兼容IE8或更低版本,但可能不知道IE其实支持word-wrap: break-word;,只是要求父元素hasLayout(例如是display: block元素)
http://stackoverflow.com/questions/3997223/word-wrapbreak-word-not-working-in-ie8 2. 想左右对其所有文字,但又不想用难看的justify。这方面我觉得还是心理关,你就当这是css layout的feature就好了。
无论是哪个,我觉得对于打断一个英文词而言,都是太大的代价。尤其当换行的时候正好遇到缩写简称,也是要反应半天。
因此我的建议是,用一个media query将word-break: break-all;重置,这样新的浏览器没必要为老的浏览器牺牲(IE8或以下不支持media query,自然也就继续用word-break: break-all;了)。