snowfox373 2007-12-9 21:44
CSS技巧:word-wrap同word-break的区别
本文列举了兼容 IE 和 FF 的换行 CSS 推荐样式,详细介绍了word-wrap同word-break的区别。 L Bv1\!~+g3}5o1}l
@8jj0{Tf8Z6x
兼容 IE 和 FF 的换行 CSS 推荐样式8RPuBlX$C"]s
oHyL#FIb
最好的方式是[code]word-wrap:break-word; overflow:hidden;[/code]而不是[code]word-wrap:break-word; word-break:break-all;[/code]也不是[code] word-wrap:break-word; overflow:auto;[/code] 在 IE 下没有任何问题,在 FF 下,长串英文会被遮住超出的内容。
5Yp8_on2q
|
K"Pi-Br,d~U
word-wrap同word-break的区别CN-[?.]'H{3w/["T
.b+J3@%j#E]`4W&m/{-a ^
word-wrap:
*pTBI!q&b
I DU~2u3l&Y
normal Default. Content exceeds the boundaries of its container.
e"cBBs
?;ey^8E3o8J/i
break-word Content wraps to next line, and a word-break occurs when necessary. 必要时会触发word-break。
Buy*c'y{:W
#S5bOgc-rG{s
word-break:
-za8w6f5i*K7d}
%V,w o Ux[F
normal Default. Allows line breaking within words. 好像是只对Asian text起作用。
n%t4ilJA
r1`^ H2dV:D*r
break-all Behaves the same as normal for Asian text, yet allows the line to break arbitrarily for non-Asian text. This value is suited to Asian text that contains some excerpts of non-Asian text.4c\2Z9E7t6WOI/F$j
%D5\Xc\O8hQk8i:Zl
keep-all Does not allow word breaking for Chinese, Japanese, and Korean. Functions the same way as normal for all non-Asian languages. This value is optimized for text that includes small amounts of Chinese, Japanese, or Korean. \zA Yd
E)h
*ypCo*jL
总结如下:
Ao+_P.RZ p
l{{zgC
word-wrap是控制换行的。yA}1r9|Cz;fi
6b`"U{!ZrC tl6?
使用break-word时,是将强制换行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。
nV)Z K6r4Pv
C O{%bV/@{:X
I
break-word是控制是否断词的。 Ffb?zI J{
(jl.@x(M#x"T1b*@U
normal是默认情况,英文单词不被拆开。
$A ^Io_%_"C
%[)K&O
ik)`FU
break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。`"n$I"G7d/pk.es
K7BO9azFG/u
keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
m[r]W$`/K\'x
({"Z3~
|,[0F
ie下:
*Jp#bJ3x1vL
9f:z$jq+fy
使用word-wrap:break-word;所有的都正常。
6A j
y%_vV
S%R%j
J!m m
ff下:
e2qow%n.e4H
,Q?0^2q3EY
如这2个都不用的话,中文不会出任何问题。英文语句也不会出问题。但是,长串英文会出问题。/Oe+u
U0K|-m+_g
:C)PoN"rW_J!e
为了解决长串英文,一般用word-wrap:break-word;word-break:break-all;。但是,此方式会导致,普通的英文语句中的单词会被断开(ie下也是)。S-Y(f}
x2Z
` k@l9x!D6VV L
目前主要的问题存在于 长串英文 和 英文单词被断开。其实长串英文就是一个比较长的单词而已。4O~l`w^
^4d+~%J
cl(|"P2q]N`
即英文单词应不应该被断开那?那问题很明显了,显然不应该被断开了。M.`ns*p7F'Z@
7["gD }lv
对于长串英文,就是恶意的东西,自然不用去管了。但是,也要想些办法,不让它把容器撑大。
-B4pTt rH{y
]v
([Z9l#b7Z"C
用:overflow:auto; ie下,长串会自动折行。ff下,长串会被遮盖。
#N,de#Q R2U-b
$F@s9vJ&p
所以,综上,最好的方式是word-wrap:break-word;overflow:hidden;而不是word-wrap:break-word;word-break:break-all;。
6~
p(D#z@N*t
]U ~i4OUu1TQ
word-wrap:break-word;overflow:auto;在ie下没有任何问题。在ff下,长串会被遮住部分内容。z4P ^U[9Q?f1WK
s};^o~6T u
另,测试代码如下:
ca-PFC?
/fL_&u-_-t2G:nR
1.htm