오버 플로우 랩과 단어 분리의 차이점은 무엇입니까?


87

What's 사이의 정확한 차이 overflow-wrap/ word-wrap과 word-break? 그리고 누구든지 아주 긴 링크를 끊는 데 더 좋은 것이 무엇인지 말해 줄 수 있습니까? 대부분의 사람들은 단어 분리를와 함께 사용해야한다고 말하지만 overflow-wrap그다지 논리적으로 보이지는 않습니다. 더 나은 크로스 브라우저 지원 overflow-wrap을 word-wrap위해 와 함께 사용 하는 것이 가장 좋은 방법 이라고 생각 합니다. 어떻게 생각해?


6
이것이 중복 질문으로 종결 된 이유에 대해 처음에 혼란 스러울 수있는 미래의 독자들에게. CSS 텍스트 모듈 레벨 3 상태 overflow-wrap및 word-wrap기능 100 % 동일해야합니다. 개인적 word-wrap으로 레거시 브라우저 지원에만 사용해야하고 향후 CSS 버전에서 더 이상 사용되지 않거나 삭제 될 수 있다는 인상을 받았습니다 .
— Tyler Crompton 2016 년

23
이것을 종결하기로 투표 한 사람들에게 : 이것은 명시된 것과 같은 중복이 아니며 질문은 동일하지 않습니다. 중복 주장은 두 속성의 두 가지 특정 값에 대한 것이며이 질문은 두 속성에 대한 것입니다. 나는 어떤 사람들이 다른 사람들이 질문에 대답하는 것을 금지 할 권리가 있다고 믿는 것을 정말 싫어합니다. 질문이 마음에 들지 않으면 읽지 마십시오!
— Hibou57

3
@Tyler 크롬 턴 당신은 혼동 word-wrap에word-break
— catamphetamine

1
나는 Hibou57에 동의합니다. 이것은 중복이 아닙니다. 이 질문에 대한 답변을 온라인으로 찾기가 어려우므로 문을 닫았습니다.
— Paul-Hebert

@TylerCrompton이 질문은에 관한 것이 아닙니다 word-wrap. 약 word-break입니다. 이 질문을 중복 질문으로 닫는 것은 의미가 없습니다.
— 론 학습자

답변:


67

출처에서 인용

  • 단어 줄 바꿈 : 단어 줄 바꿈 CSS 속성은 분리 할 수없는 문자열이 너무 길어 포함 상자에 맞지 않을 때 오버플로를 방지하기 위해 브라우저가 단어 내에서 줄을 끊을 수 있는지 여부를 지정하는 데 사용됩니다.

  • overflow-wrap : CSS3 텍스트 사양의 현재 초안에서 word-wrap속성 이름이 변경 overflow-wrap되었습니다.

  • 단어 분리 : 단어 분리 CSS 속성은 단어 내에서 줄을 분리하는 방법 (또는 경우)을 지정하는 데 사용됩니다.

따라서 올바른 조합 인 단어 줄 바꿈과 함께 단어 분리가 필요합니다.


예, word-wrap충분하지만 컨테이너 너비가 제한되면 레이아웃이 엉망이 될 수 있습니다.
— karthikr

그래 알았어. 링크에만 자동 줄 바꿈을 사용하므로 레이아웃이 깨지지 않습니다.
— Anselm

7
답변을 찾았습니다. "이에 대해 설명하는 W3 사양은 word-break : break-all이 CJK 텍스트에서 특정 동작을 요구하는 반면, word-wrap : break-word는 더 일반적인 비 CJK- 인식, 행동. " ( stackoverflow.com/questions/1795109/… ) CJK는 중국어, 일본어 및 한국어의 총칭입니다.
— Anselm

오. 그러나 나는 당신의 질문이 완전히 다르다고 생각했습니다. 어쨌든, 내가 도움이 조금 있었다 기쁘다 당신은 답을 발견, 나는 신뢰
— karthikr

4
단어 줄 바꿈은 (대부분의 브라우저에서 접두사가없는 속성으로 구현 된 경우에도) 더 이상 사용되지 않는 Microsoft 확장이며 이제 오버플로 줄 바꿈으로 대체되었습니다. : MDN은 하나 하나에 두 개의 서로 다른 페이지를 합병 developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap
— CharlesM

8

이 시점에서이 word-break: break-word실제로 overflow-wrap: anywhere.

word-break: break-word공식적으로 사용되지 않습니다. CSS 텍스트 모듈 레벨 3 작업 초안을 참조하십시오 .

레거시 콘텐츠와의 호환성을 위해이 word-break속성은 더 이상 사용되지 않는 break-word키워드 도 지원 합니다. 지정된 경우,이 같은 효과를 갖는다 word-break: normal와 overflow-wrap: anywhere관계없이 오버플 랩 속성의 실제 값.

여기서주의 할 점은이 word-break: break-word별칭입니다 overflow-wrap: anywhere, NOT 별명에 대한overflow-wrap: break-word .

( word-break: normal는의 기본값 일 뿐이 word-break므로에 대해 다른 값을 설정하지 않는 한 무시해도됩니다.word-break .)

어떻게 overflow-wrap: anywhere그리고overflow-wrap: break-word 다른가요?

둘 사이의 문서에서 유일한 차이점 overflow-wrap: anywhere은 "최소 내용 고유 크기를 계산"할 때 "단어 나누기에서 도입 된 소프트 랩 기회를 고려"하는 반면 overflow-wrap: break-word그렇지 않다는 것입니다.

나는 그것을 고려한다면 어떤 경우에는 너비가 더 정확할 것이라고 생각합니까?


7

정확한 차이점은 다음과 같습니다. (Chrome v81에서 테스트하고 사양을 참조하여 관찰 내용을 확인한 결과)

공백

normal(기본값) : 공백 체인 및 줄 바꿈을 축소합니다. 필요한 곳에 줄 바꿈을 추가합니다
nowrap: 공백 체인과 줄 바꿈을 축소합니다. 줄 바꿈을 추가하지 않음
pre-line: 공백 체인을 축소합니다. 필요한 곳에 줄 바꿈을 추가합니다
pre-wrap. 필요한 곳에 줄 바꿈 추가 : 줄 바꿈 추가
break-spaces를 트리거 할 수있는 공백을 제외하고 사전 줄 바꿈 과 동일
pre: 축소 없음; 줄 바꿈을 추가하지 않습니다

참고 : 선택한 white-space값에 "줄 바꿈 추가 안 함"이 나열되면 다음 속성의 줄 바꿈 동작을 적용 할 수 없습니다 (즉, 무시 됨).

단어 나누기

normal(기본값) : 컨테이너 내 마지막 단어 맞춤의 끝에서 줄을 끊습니다 [존재하는 경우], 그렇지 않으면 줄이 끊기지 않은 채로 남음
break-word: 컨테이너 내에서 마지막 단어 맞춤의 끝에서 줄을 끊습니다 [존재하는 경우], 그렇지 않으면 컨테이너의 끝
break-all에서 줄을 끊습니다. 컨테이너의 끝 [가까운 공백이 있어도 단어를 분할 할 수 있음]

overflow-wrap (레거시 이름 : word-wrap)

normal(기본값) : 컨테이너 내 마지막 단어 맞춤의 끝에서 줄을 끊습니다 [존재하는 경우], 그렇지 않으면 줄이 끊기지 않은 상태로 남음
break-word: 컨테이너 내 마지막 단어 맞춤의 끝에서 줄을 끊습니다 [존재하는 경우], 그렇지 않으면 컨테이너의 끝에서 줄을 끊습니다. -flex container], else line left unbroken
anywhere: 컨테이너 내 마지막 단어의 끝에서 줄을 끊고 [존재하는 경우] 그렇지 않으면 컨테이너 끝에서 줄을 끊습니다 word-break: break-word.

주 동안 그 overflow-wrap: break-word, 파손되지 않는 선 플렉스 컨테이너가 지정한 플렉스 비율 이상으로 확장 될 수 있습니다 (너무 오래 컨테이너 잎 라인이 있음을 어떤 조합으로) (다른 플렉스 컨테이너를 강요하는 것은 너무 긴 내용을 설명하기 축소하기).


"문서 기반"이라고 말한 사실을 바탕으로이 콘텐츠가 대부분 어딘가에서 복사되었다고 가정합니다. 그래서 일반적으로 다른 곳에서 순수한 콘텐츠 사본 인 콘텐츠에 눈살을 찌푸 리지만, 표절을 피하기 위해 콘텐츠를 복사 할 때 출처 를 인용 해야합니다 . 또한 Chrome에서의 테스트는 사양이 말하는 방식을 준수하는지 여부에 대한 소스로서 거의 신뢰할 수 없습니다.
— TylerH

1
@TylerH 다른 곳에서는 순수한 콘텐츠 사본이 아닙니다. 대부분의 동작 설명은 제가 관찰 한 동작이 사양과 일치하는지 확인하고 추가 동작이 누락되지 않았는지 확인하기 위해 문서 페이지를 참조하여 Chrome에서 직접 테스트 한 것입니다. 표절과는 거리가 멀다. (명확하게하기 위해 상단의 메모를 업데이트하겠습니다)
— Venryx

모든 것을 정말로 이해하고 싶어하는 진정으로 진지하고 참을성있는 독자에게 이것이 최선의 대답입니다. 정말 고마워.
— ZYinMD
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.