发新话题
打印

[分享] CSS技巧:word-wrap同word-break的区别

CSS技巧:word-wrap同word-break的区别

本文列举了兼容 IE 和 FF 的换行 CSS 推荐样式,详细介绍了word-wrap同word-break的区别。
# d' ?0 n: o+ [" g" P
5 G. o6 |$ p# V( a. T- }  兼容 IE 和 FF 的换行 CSS 推荐样式
* _" v/ X, M/ M! C4 x/ ?0 e
) w- C7 k7 D$ u  最好的方式是
复制内容到剪贴板
代码:
word-wrap:break-word; overflow:hidden;
而不是
复制内容到剪贴板
代码:
word-wrap:break-word; word-break:break-all;
也不是
复制内容到剪贴板
代码:
  word-wrap:break-word; overflow:auto;
  在 IE 下没有任何问题,在 FF 下,长串英文会被遮住超出的内容。
6 z( I9 N; H2 D1 Q  v6 i" L& g9 K# v3 j( p% C
  word-wrap同word-break的区别/ K& b( ~9 L# q4 n  v8 g3 [

7 n  g6 [' f* `  word-wrap:% |+ L) T7 ~, Z: h7 L  y) s, @
2 e' ?+ T& N3 N% _
  normal  Default. Content exceeds the boundaries of its container.
* B9 c6 c% ~& |# k% d# }" H: z9 k
1 L- o8 S8 a$ B3 o  e% S  break-word Content wraps to next line, and a word-break occurs when necessary. 必要时会触发word-break。& U* H9 V5 ?& y2 V6 ?( Z
0 e2 E0 ?3 s- s: R) ~
  word-break:
% w, T) q3 i2 o) X" D: ^8 ^  F6 w$ t
8 O: K  q2 `4 T8 W/ d3 Y; H  normal  Default. Allows line breaking within words. 好像是只对Asian text起作用。  s5 u3 P9 E. h/ e

9 p+ r- _& J1 U9 d% {( K, t5 ~  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.  C1 x! y! d1 r8 e. l
8 {. I/ S+ P5 Q3 f/ w, E- G. o7 _! l
  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.
9 B2 v2 m( x( E8 k" Q/ s' Q' h
: z4 M1 |# @. D  总结如下:6 z' F- R; B6 b1 H+ t# c" R& }

8 d- s" J, M: @3 r/ u  r; K6 [  word-wrap是控制换行的。
( B# u; }, c2 j8 Z: [) ]: D& ~
& N! \* d5 \+ g$ h  使用break-word时,是将强制换行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。
2 F4 p) y9 N4 U# W/ l5 ?7 E; k9 C4 @, S
  break-word是控制是否断词的。5 v( O4 B9 J! K8 g: H

; H9 a6 n5 k( T# S0 d  normal是默认情况,英文单词不被拆开。
5 l- u* z8 X3 T% e0 J+ N( ^2 Q
2 w- L, H' A9 l  break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。
/ Z7 Y# [2 G9 k6 r1 \. k
" a* m+ T( G: {+ H; W  keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
% d% Y+ a/ W% k' d' ~/ q; K7 l& W8 J" T7 `) f* }* z
  ie下:
0 G# D! Q6 A% }, X  n
$ Y, k9 Y( w# b: f4 M0 x1 ?( G+ F  使用word-wrap:break-word;所有的都正常。
# A, y& h# u( l0 `. e$ v2 w
( y: E* i" ^( |& }* t  ff下:2 F2 p) b5 [. u( E% `+ j, T9 X
* q9 P' H5 y8 [( b" B( c
  如这2个都不用的话,中文不会出任何问题。英文语句也不会出问题。但是,长串英文会出问题。
) `4 _) p0 E& \+ L, e$ V" J- _3 `# x5 v
  为了解决长串英文,一般用word-wrap:break-word;word-break:break-all;。但是,此方式会导致,普通的英文语句中的单词会被断开(ie下也是)。9 P& o# k/ p8 U( Y3 [3 o2 o+ G

. q; [; u" Y9 E3 e5 c; h  目前主要的问题存在于 长串英文 和 英文单词被断开。其实长串英文就是一个比较长的单词而已。( x" s) ?+ \# ?# `  T. P" {

; K9 h! v3 [1 G3 _( E) _  即英文单词应不应该被断开那?那问题很明显了,显然不应该被断开了。
, c4 a. d, e+ G8 ]( u
7 X: d! L9 v9 ]/ J& r& ]  对于长串英文,就是恶意的东西,自然不用去管了。但是,也要想些办法,不让它把容器撑大。' u, L6 \% H; d" I* V) A

$ y7 d  S# Z: j5 g  用:overflow:auto; ie下,长串会自动折行。ff下,长串会被遮盖。
+ ]& f; l% e, X* w, e  O
: o5 \7 o5 Y$ K% @5 t. e  所以,综上,最好的方式是word-wrap:break-word;overflow:hidden;而不是word-wrap:break-word;word-break:break-all;。% k: o, T- |9 c1 J. K+ r# T
- u1 a( m8 U% a  ~% D; m' R
  word-wrap:break-word;overflow:auto;在ie下没有任何问题。在ff下,长串会被遮住部分内容。
! h) w% q4 M. }2 s% {( R9 J3 |
) m0 N% D1 h5 r' |2 [* J  另,测试代码如下:+ f" T; M2 M* R5 ^  O+ |
3 f0 p/ l( I2 B; N& p5 d
  1.htm0 ?6 D+ D" @, a0 E  U
8 Q* U5 e) l# \# m6 o
  <style> " H, F$ j# C+ S5 x
' Q; p# t' ~3 l8 Q) w- ~
  .c1{ width:300px;  border:1px solid red}
5 e  i8 R/ f' V% g" k8 S
: g4 E: w. }- O% r$ z# P1 ^5 r  .c2{ width:300px;word-wrap:break-word;  border:1px solid yellow}
; M6 Z/ z0 R* ?# r! e" l3 d
+ H1 I8 t( F# g' T9 o  .c3{ width:300px;word-wrap:break-word;word-break:break-all;  border:1px solid green} , R; J2 ?% ?  @& r
3 ?1 i% t) l7 Q, V* K- p2 v
  .c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue} 6 ?5 b: W+ _4 p# d) D: O2 \

; d. }% X7 G1 }- x6 R  .c5{ width:300px;word-break:break-all;  border:1px solid black} - Y0 \. N/ w. q/ n
& z! ~$ v: w, V' @) k
  .c6{ width:300px;word-break:keep-all;  border:1px solid red} & V6 V. f- [$ \2 F
( R/ i* s. d5 a( e' |( _  F
  .c7{ width:300px;word-wrap:break-word;overflow:auto;  border:1px solid yellow} : [' S$ B% k- p0 p4 f$ s, {, S
$ o+ B- ~8 \! J7 X, C0 d
  </style>
6 ~$ e8 p7 w+ ?' g! ?
; ?; c0 t3 F. U, E  .c1{ width:300px;  border:1px solid red}' H2 W8 V5 _$ R% I7 ^# n& Z/ ?

- n% U9 M5 @/ l6 M4 g5 ]9 I/ x  <div class="c1">asdasd1 z  c2 m$ V- c8 V3 h' W9 S

8 h3 E- g' r- j0 G1 P* X      </div>  J, g' V, p+ V2 x0 r
3 a) }  X" i/ H/ G+ W3 z) Y
  <div class=c1>% o% C3 A3 J5 e6 R

4 z5 I3 [: N% J6 m/ W% Z2 Y  This is all English. This is all English. This is all English.5 Z$ u6 h" A0 w4 v& U  H7 j

; N1 K- C) t, d: H/ j7 p  </div>: `5 A  q; s6 j& A( k$ O. S

+ D. e4 _: }. X5 D  <div class=c1>
, J/ S7 N, b/ i- m% o0 y, u& M+ W# y# I* H1 }0 F
  全是中文的情况。全是中文的情况。全是中文的情况。4 r0 ?3 E5 J3 `% h: G' @& F

. R8 z& }* l7 c8 N% d( Q  </div>
* p) g$ Y. q2 c& a' R- L6 ^9 J6 V+ J
  <div class=c1>
* G/ _- v3 x5 U$ _+ n* [' j6 _: W- ?5 @( h7 c' _
  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.' v1 C- x  S8 f
, u: i8 L# B$ l, q( l4 V/ I6 l# Z5 }6 D5 u) y
  </div>
- ~+ J/ Q' y  J& H0 x' G- A+ {/ f. Y) \( E5 T7 D4 Z
  <br>+ [; t& v" B$ {9 f7 W1 K) m
$ e0 N$ g& X/ a" b" x- t6 U
  .c2{ width:300px;word-wrap:break-word; border:1px solid yellow}' i( `$ m, |- A$ p8 b" z! u
+ ?, c' F/ U3 C
  <div class="c2">
/ ?) d. s$ j9 |3 H; ]+ t( [: c: L0 \8 {% j1 r8 B% D
  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj6 w! J8 _) R& ]( e

; ~  S. E8 }! [( c  </div>
6 X( e  I- U5 `# s1 I0 c$ g" Y3 u- k. F# n8 K3 h7 M: ]! W
  <div class=c2>) M. q" ^- w  Y! W" l4 e
% {5 F/ `0 L+ W7 x0 ?3 Y" m
  This is all English. This is all English. This is all English.
" V- L9 T' n9 R, B
( `7 d" z' Y" E- y; N  </div>+ S! n. B! r& F; w
, u1 s" y9 q( J% R0 L+ u7 @) \
  <div class=c2>( ^1 y' Y0 W2 z( ?* L) s7 E; T$ b: m
# H9 h( G9 |% c- w7 S1 p
  全是中文的情况。全是中文的情况。全是中文的情况。7 k3 r& b# K8 H) N2 R  n1 I

1 N! H0 s8 i4 {% T* |7 ~6 Q7 L! Q  </div>- l( G& ?, h0 r* h" }) j

) n6 a. c/ L2 J# S8 U+ N/ n  <div class=c2>
! M* g* n# v% A3 r/ j! v2 w/ g' n+ ]
, X% i3 ]4 g. o* i$ y5 ?  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.) y- s1 y* h; X
  b# ~3 G+ r, H! T
  </div>
: n% k. r0 G  K6 ?& I, _
2 f% L6 Q* Z% L, k' q  <br>
7 T% F4 o0 x, p, Y
+ b: A4 m/ I& i( `( v  .c3{ width:300px;word-wrap:break-word;word-break:break-all;  border:1px solid green}- Y/ x9 B% p1 \( h

2 Z( g; {' \: o5 [$ Q8 g  <div class="c3">
, f; g+ q& n6 v9 @6 k
/ h/ j& }$ {# A( B  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
: P: |% |+ |6 |- a, M/ f
* V4 [5 W' ^0 v, G  </div>+ ?# E7 e# W6 @% j

( E$ r& L( [, P  <div class=c3>1 T/ F# P3 i3 m* Y" q5 ^1 l

3 E4 K# S( [( J/ Y) K& H9 b! }6 {( U4 A  This is all English. This is all English. This is all English.1 `6 w0 F1 y* M0 `8 b9 X" M* |

6 b+ z8 X* W) {( J  M  </div>
& g0 a$ `3 X* K+ J
8 [! R* u) l6 M, {7 X' Y5 u7 Q9 P  <div class=c3>
: n! g; R" V$ [% j
& P4 a- _1 N& k. y0 ]6 y  全是中文的情况。全是中文的情况。全是中文的情况。
/ X; W9 |, r4 o" l" n% Z( {" l  ]! R% y4 B) D0 M" P8 k
  </div>) b" K) J1 F; }* g+ H8 o
- D; D! |/ H: A6 E
  <div class=c3>
7 p! ^. Y. a; d4 d
; P) t1 P. s$ E& h" e  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
0 ?$ L5 \: f# W9 [8 x! s# d- l9 @2 D9 h! B: T1 q
  </div>
% T, M9 t1 E0 ^) I; P. @, S, N
: k4 q8 {8 x1 J& H  <br>& `; E  n2 s$ ?. w, w
4 K, |) O6 Z8 D/ f0 v; x
  .c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}
+ x7 L2 o: J' B& I4 J4 `& W- R. T0 Q, R  v/ Y; g# K0 I! b
  <div class="c4">
1 b" D& `) }9 O  ]8 a% ^
+ @/ ^% D7 ]( Z# t9 h; T/ }; S  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
" {6 H/ C* ]2 z9 P0 n' G$ ~* T8 \' Q+ X9 d
  </div>/ T& k5 Q+ Q' O2 R1 X
7 I" u+ {  Q, M6 o& Q! [
  <div class=c4>
2 E+ }0 P9 d( Y  P1 |3 K) P5 q& Q, ?
  This is all English. This is all English. This is all English.! k1 m5 O5 C5 e1 {0 J* R

. S) z9 x; b9 f2 Z8 b6 R1 v  </div>0 z! `0 P9 z# ?7 q% c8 H
7 t1 n# G+ ~: A: \/ C
  <div class=c4>
1 a, a% g8 p' v7 R
! k: J! N) G6 R) ]- W  全是中文的情况。全是中文的情况。全是中文的情况。
3 g! B! V. ^( B: z# X
/ Z2 K- d. i% {# ~) G  </div>  h/ {8 F$ e5 `3 c

; ^9 }9 C; g' ~7 |& S5 @. b  <div class=c4>. i$ x6 G: D! a6 u# S* g4 e$ D
- _2 F5 \4 a+ X, ?
  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.  }# @1 N1 |) b7 w3 Y
: z: i6 i4 v8 q% c: R6 i9 ^
  </div>2 U, z1 Q9 D5 k- Y9 R

  f2 x/ i+ y' Q  ?6 ]* Y  <br>4 u- d+ A" G7 [! K
) Y4 |9 r2 F; N, u$ Q2 T& ?
  .c5{ width:300px;word-break:break-all;  border:1px solid black}7 W+ N4 n( A) @/ c$ W+ }% P6 Y
4 ]' Q7 n$ x, z2 z1 D( c- J
  <div class="c5">
4 c; r$ \  A. D7 n/ X" y1 [
6 g, J+ b7 ]1 K8 w" H  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj( m6 s6 K- w$ e

& G0 W6 g# E8 r. o# \$ q, y0 k# w  </div>
* x1 X: }( A' j% p$ e
2 Q9 ?- O( X: s# M) v7 |  <div class=c5>; k$ c  |  p9 e6 W# a, _
' M' q8 }- n6 K  a: C: y
  This is all English. This is all English. This is all English.
$ ^5 p: M" G7 g6 O2 @
) A  G8 X, J% o, w  </div>
; I, s0 }  d8 D* G$ w1 l$ l( P0 ~+ k8 e) _. E. b
  <div class=c5>7 z& W6 k$ s. C  ~6 z0 y, J, }2 C
3 S0 w3 i4 J. ]/ z4 [
  全是中文的情况。全是中文的情况。全是中文的情况。5 Y4 d, p/ ~+ X2 P& f$ H5 A

% o3 p+ s6 d4 s6 C0 c$ Y+ q: l( [  </div>. X/ V* m+ U7 u4 g+ Y" v9 i
6 e- w0 |8 p5 |. ^# N4 p* Y
  <div class=c5>% x' B: N6 c0 m, m4 C  v4 u& g
) g1 w8 f2 U/ ?$ a0 C4 z0 z7 Z
  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English., H) X/ e2 c& ], c, c

) ?# p4 F1 O4 |9 G& w9 }$ f& `  J  m% |% b
  </div>% _+ v  Z$ b* l) b3 w5 e/ }( @/ W( I
: w  |0 R8 @$ ]  b: g
  <br>
  O0 d: T- i3 `- H" t
" J) E) r" d* Y4 t3 }' D  .c6{ width:300px;word-break:keep-all;  border:1px solid red}
# H/ g% b2 J  D. B! Q% D% ~' T8 U; P  J0 S$ F! m0 S2 b
  <div class="c6">
. I- n8 I5 s$ z1 H1 i; q# e4 V
* H& g9 K. d) ^% ~0 s3 A2 v  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj- D. y# Y+ A4 _5 B; z
1 V+ t4 ]: Y, f* b2 ~0 Y6 N
  </div>2 F; D/ I2 K: J8 _- }  B6 ^' y0 J
$ q" |" t$ w' \
  <div class=c6>
& B' a) k$ ]4 m3 E% S0 _
; Z4 C. Q- W+ k5 [' r) ^  This is all English. This is all English. This is all English." o1 q/ k5 F( [8 s  E6 k

3 A( y5 z6 `! n! B: c- s1 K$ n8 G' b5 l  </div>
* n- d  L7 ~8 N1 D% g! x0 r/ \5 s5 @, t/ L* E
  <div class=c6>% ~- P; e( A. h4 }* {  G; g

. f9 {. p  c" D' d  全是中文的情况。全是中文的情况。全是中文的情况。
1 ]; ?; N/ _3 k/ V, h
, @3 L/ B( ]2 C  </div>3 {# o0 T9 Y' a. I% [, D4 t
7 B" w7 l& H- o8 O7 p% j# t
  <div class=c6>
. M- l% a; a! l  z2 L; f: z6 [0 C
( n& H/ E8 r) t4 k: v9 |  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.- a) `) q" H+ p. ?

$ H! ?9 g+ v! J& L8 Q$ H  \  </div>6 P$ L) W; x& t
& r6 n: @: v5 S' k' r
  <br>
( D& r9 L( x6 j+ Y- Q
2 O3 `* W4 G6 u7 x! N% C5 a  .c7{ width:300px;word-wrap:break-word;overflow:auto;  border:1px solid yellow}, C  `2 H) }% @: {8 Q
6 v' k# l( O2 m2 `* U
  <div class="c7">
1 v' t1 }, W" g" {
2 B: l) f  d) Y$ I1 U  safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
$ G* n- |4 a4 g& P2 W, @" B
( X7 i5 O. w# I! \- K7 A  </div>$ o6 M+ e( i: P% _
4 b  b9 F$ Z3 U& Y. s
  <div class=c7>
0 ?) I& C$ H+ S( B/ o) D$ @" @0 e: n( x* C& E
  This is all English. This is all English. This is all English.
3 y8 {% |, q" R3 z! \4 a4 g, V* H  ^8 F/ \7 Y- M: I5 T' R( [
  </div>
; {$ y( \% p  k* Z  k( H- U" R3 i0 F4 P6 j$ I/ R
  <div class=c7>1 `2 @, m/ P) ~( h- g  J# J  l
( I# B( V, b' v5 N8 V% I
  全是中文的情况。全是中文的情况。全是中文的情况。
* b! m7 c+ F2 f" y, @  u, ~/ z
& e( W) c! ^2 S5 k& [  </div>; q0 S9 Y* ~, w: ^
4 L0 T& [. V* X/ R
  <div class=c7>
6 p$ s% z% c; P% X6 M6 N
# Z2 i* q% U: `0 P) S4 |( C  中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.0 t" q' l$ a4 e0 w1 Q2 T5 G" L" _
) m6 M# r' O9 x0 [6 ?3 W
  </div>
赠人玫瑰,手有余香。

TOP

发新话题