CSS 줄바꾸기 자동 줄바꿈 코드 - div 밖으로 나간 글자와 white-space, word-wrap, work-break, flex-wrap:wrap > 웹제작/운영

사이트 내 전체검색
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go

웹제작/운영

CSS CSS 줄바꾸기 자동 줄바꿈 코드 - div 밖으로 나간 글자와 white-space, word-wrap, work-break…

페이지 정보

profile_image
작성자 키스세븐
조회 885회 작성일 22-08-04 13:57

본문

CSS 줄바꾸기 

div 밖으로 나간 글자 자동 줄바꿈 코드

white-space, word-wrap, work-break, flex-wrap:wrap

 

홈페이지를 만들다 보면, 가로 사이즈를 고정해도 div 밖으로 글자가 나가는 경우가 있다.

이럴 때 사용하는 것이 white-space, word-wrap, work-break 등이다.

그런데 li 같은 요소일 경우, flex-wrap:wrap가 더 편리하기 때문에, CSS 자동 줄 바꿈 코드 설명에 포함해서 함께 알아본다.



CSS 줄바꾸기 자동 줄바꿈 코드 - div 밖으로 나간 글자와 white-space, word-wrap, work-break, flex-wrap:wrap



글자가 div 밖으로 나가는 이유와 white-space


사이트를 읽어 들인 브라우저는 기본적으로 white-space 속성값대로 글자를 표현하다.

그리고 일반적으로 이 white-space 줄 바꿈은 자동으로 줄 바꾸기로 설정되어 있다.


하지만 두 가지 문제점이 발생한다.

  • 첫 번째는 붙어 있는 단어 자체가 너무 길어서 어디서 끊어야 할지 모르는 경우이고,
  • 두 번째는 이미 위쪽에서 연속으로 글을 붙여서 보여 주도록 했었기 때문일 수도 있다. 


이 중, 첫 번째의 문제는 word-wrap, work-break, flex-wrap:wrap 등을 통해서 해결하면 되고,

두 번째의 경우는 white-space의 줄 바꿈 속성을 normal로 바꿔서 아래처럼 해결할 수 있다.


[code]

<style type="text/css">

   p { white-space:normal; }

</style>

[/code]


그런데 만약, 자동 줄 바꿈이 일어나서는 안 될 때는 어떻게 해야 할까? 그럴 때는 아래처럼 자동으로 줄이 바뀌지 않도록 white-space 속성을 nowrap으로 바꾸면 된다.


[code]

<style type="text/css">

   p { white-space:nowrap; }

</style>

[/code]



CSS 자동 줄바꿈 코드 word-wrap와 work-break


이번에는 단순하게 자동 줄 바꾸기만 다룰 것이 아니라, 단어별로, 또는 글자별로 세밀하게 조정하는 방법도 알아보자. 그것이 바로 word-wrapwork-break다. 


div 밖으로 글자가 나갈 때는 아래처럼 div의 클래스에 속성을 줘 보자.

[code]

<style type="text/css">

   .div클래스 { word-wrap:break-word; }

</style>

[/code]


이것은 무조건 가로 너비를 넘지 못하도록 하는 CSS 줄 바꾸기 코드다. 

하지만 문제가 있다. 영어의 경우, smiles 같은 단어가 오른쪽 끝에 왔을 때 div 너비를 넘어가면 "smi"와 "les"로 잘라서 다음 줄로 가버린다. 자칫하면 무슨 단어인지 모르는 문제가 발생한다.


그래서 해결할 수 있는 것이 work-break라는 것이다. 

[code]

<style type="text/css">

   .div클래스 { work-break:keep-all; }

</style>

[/code]

이렇게 하면 단어별로만 분리하고 문자별로는 분리되지 않는다


하지만 work-break 줄 바꾸기를 그냥 word-wrap처럼 간편하게 쓰고 싶다면? 그럴 때는 아래처럼 하면 된다.

[code]

   .div클래스 { work-break:break-all; }

[/code]



요소의 자동 줄바꿈 코드 flex-wrap:wrap


그런데 또 궁금증이 발생한다. 글자가 아니라 li 같은 썼을 때는 어떻게 하냐는 것이다. 

물론 li는 기본적으로 자동 줄 바꿈이다. 하지만 li에 "float:left"를 했을 때는 마치 문장처럼 옆으로 나열되기 때문에 이런 문제가 생긴다. 


li나 div 같은 요소를 포함한 자동 줄 바꾸기 코드display:flex;를 쓰는 것이 효과적이다.

단, 줄 바꿈을 원하는 li에 사용하지 말고, li를 감싸고 있는 ul에 사용해야 한다는 것에 주의하자.

div나 span의 경우에도 그 요소에 사용하는 것이 아니라, 요소를 감싸고 있는 상위 div에 사용해야 한다. 

왜냐면 display:flex;라는 것 자체가 감싼 것의 내부를 정렬하는 것이기 때문이다. 

 

[code]

<style type="text/css">

   .div 상위클래스 { display:flex; flex-wrap:wrap; }

</style>

[/code]


그런데 만약, 자동으로 줄바꿈 되고 있는 상태에서 잠시 이를 중지하고 싶을 때는 어떻게 할 것인가? [저작권법 표시] 원본 출처 : 키스세븐(www.kiss7.kr)

그럴 때는 flex-wrap의 속성인 wrap 부분을 nowrap로 바꾸면 간단히 해결된다.


만약 display:flex; 사용방법에 대해 궁금하거나 더 자세한 정보가 필요하다면 아래의 링크를 이용해 본다.

 

display:flex - 레이아웃 배치 CSS 플렉스 옵션


 

추천0
총 87개 (1Page)
  • RSS
웹제작/운영 목록
번호 제목 조회 추천 날짜
공지 공지 475 0 03-26
86 그누보드 361 0 02-25
85 그누보드 1503 0 10-17
84 SCRIPT 741 0 10-17
83 CSS 673 0 09-10
82 PHP 1138 0 08-26
81 PHP 731 0 08-21
80 기타활용 646 0 08-15
79 그누보드 1226 0 08-05
열람중 CSS 886 0 08-04
77 HTML 1760 0 07-24
76 그누보드 478 0 07-24
75 HTML 841 0 07-21
74 CSS 713 0 07-18
73 그누보드 657 0 07-09

검색


    허브사이트 "키스세븐"
    [허브사이트란?]
    수많은 사이트와 포털을
    한 번에 모아서
    사용할 수 있는 서비스를 말합니다.