CSS3 word-break Property


word-break: normal|break-all|keep-all;


ValueDescription
normalBreak words according to their usual rules
break-allLines may break between any two letters
keep-all Breaks are prohibited between pairs of letters








작업을 하다보면 텍스트가 정해진 width를 넘어가는 경우 어떻게 처리해야 하나 고민이 될 때가 있습니다. 그럴 때는 상황에 따라서 이 것들을 사용해서 해결해주면 좋을 듯 합니다.

word-break


word-break 는 말 그대로 단어를 자르는 겁니다. 기복적으로 줄이 넘어갈 때는 단어단위로 잘려서 넘어가게 되어 있습니다. 그래서 띄어 쓰기를 하지 않고 글을 쓴다면 한 단어로 인식하여서 width 를 넘어가도 줄바꿈이 되지 않습니다. 그럴 때 word-break 를 사용해주면 줄바꿈이 가능하게 됩니다.


.selector {word-break:break-all;}

위와 같은 속성을 주게되면 위의 그림의 아래 부분과 같이 단어 중간에서도 줄바꿈이 가능하게 됩니다. 위의 그림이 잘 이해가 가지 않는다면 이 그림을 보시면 단번에 이해가 가실 것 입니다.


단어의 중간에서 줄바꿈이 되는 효과입니다. 이 것의 반대 속성은 nowrap, keep-all 등을 주면 된다는데 제가 실험해본 결과 잘 안되는 것 같습니다. 그래서 이번에 같이 소개할 white-space 를 사용하시면 됩니다.

white-space


white-space는 여러가지 값이 있는데, 정리를 해보자면 이렇습니다.

inherit 말그대로 상속 받는 것
normal 일반적인 것, default
nowrap 줄바꿈을 하지 않는다
pre <pre>태그와 같은 기능, 마크업에서 앤터로 줄바꿈 한것 만 적용이 되고 넘어가는 것에는 줄바꿈 하지 않는다
pre-line 마크업에서 줄바꿈 한 것이 적용 되면서 width를 넘어가는 텍스트도 자동으로 줄바꿈이 된다
pre-wrap pre-line 과 비슷

말로 길게 설명해 무엇합니까? 그렇다면 눈으로 확인해 봅시다.

HTML 마크업은 다음과 같이 했습니다. 줄바꿈은 왼쪽에 보이는 라인넘버에서 알 수 있듯이 2번 하였습니다. 다시말해 단락이 3개라는 뜻 입니다. 스타일은  넓이를 400px 을 주고 사방으로 padding 을 10px 씩 주었습니다.


일반적으로 랜더링하면 단어 단위로 줄바꿈이 된 형태로 나오게 되는데 여기에서 속서을 하나씩 주면 기능을 한 눈에 알 수 있습니다.

우선 inherit 은 상속되는 것이므로 넘어가고 (IE8에는 인식을 못한다고 합니다.) normal 은 기본인데 Original 과 동일하다고 보시면 됩니다. nowrap 속성을 주게되면 줄바꿈이 되지 않습니다.


그리고 pre 속성은 <pre> 태그와 동일한 역할을 합니다. 마크업에서 줄바꿈 (앤터) 해준 것을 적용해주는 것인데요, 여기서는 두번 줄바꿈을 하였기 때문에 3 단락으로 나뉘어져 있습니다. 그리고 width 를 넘어가는 텍스틑는 줄바꿈이 되지 않습니다.


다음으로 pre-line 속성을 주게되면 pre를 준 것과 같이 마크업에서 줄바꿈 한 부분에서도 줄바꿈이 되고, width 값을 넘어가는 부분에 대하여 줄바꿈이 됩니다.


per-wrap 속성을 주면 pre-line 을 적용해준 것과 동일한 결과가 나오는데 구체적인 차이는 잘 모르겠습니다. 자세한 내용은 w3cschool 을 참조해 보시는 것이 더 좋을 듯 합니다.



출처 - http://htglss.tistory.com/31







Posted by linuxism
,


MSI(MicroSoft Installer) 화일의 정확한 용도 ? 

Windows Installer 설치 파일입니다. 

윈도우 운영체제에서 말썽이 일어나는 원인 가운데 높은 비중을 차지하는 것이 프로그램
설치 과정에서 같이 설치되는 시스템 관련 파일들(주로 DLL)입니다. 윈도우에서는 DLL(=동적 링크 라이브러리)이라는 기능을 제공합니다. 아마 DLL 파일은 종종 보셨을텐데, 이 DLL 파일은 독립적으로 실행되는 실행 파일이 아니라 다른 실행 파일에서 호출해서 쓸 수 있는 실행 코드만이 들어 있는 파일입니다. 이 기능을 사용하여 여러 프로그램에서 공통적으로 쓰이는 실행 코드를 각각의 프로그램에 전부 놓지 않고 한 DLL에만 놓은 뒤 여러 프로그램들이 이 한 DLL에 접근하여 코드를 호출함으로써 메모리와 디스크 공간의 낭비를 막고 효율적으로 멀티 태스킹(윈도우에서는 동시에 여러 프로그램이 실행될 수 있는 것은 아시죠?)을 할 수 있게 해 줍니다.

그런데, 바로 DLL이 종종 말썽을 일으키는 경우가 있습니다. 예를 들면 a.dll을 사용하는 프로그램 A와 프로그램 B가 있다고 가정하고, 이미 내 컴퓨터에 프로그램 A를 설치해서 쓰고 있다고 가정합시다. 

그런데 프로그램 B를 설치하고 이 과정에서 a.dll이 새롭게 설치되었는데, 처음에 있던 a.dll의 버전이 1이고 나중에 설치된 a.dll이 버전이 2일 경우, 프로그램 A는 버전 2에 있는 a.dll과 맞지 않아서 실행이 안되거나 에러를 일으킬 수 있습니다. 설치되는 프로그램이 많아지고 프로그램과 DLL, DLL과 DLL(한 DLL이 다른 DLL에 있는 실행 코드를 부를 수도 있습니다)의 관계가 점점 얽히면 점점 시스템이 불안해지고 잦은 에러를 일으킬 수도 있습니다. 

또한 설치 도중에 어떤 이유로 에러가 일어나서 설치가 중단된 경우, 그때까지 설치되었던 파일들이 그대로 남아서 문제를 일으킬 수도 있고, 설치되었던 프로그램을 지울 경우에도 말끔히 지워지지 않고 남은 파일들이 문제를 일으킬 수도 있습니다. 이것을 보통 'DLL 지옥'(DLL hell)이라고 부릅니다. 윈도우 인스톨러는 이러한 문제점에 대한 해결 방안으로 MS에서 좀더 강력한 설치 지원을 위해서 만들어진 기술입니다. 윈도우 인스톨러는 다음과 같은 특징을 가지고 있습니다.

- DLL의 버전 체크를 통해서 위험 요소에 대한 경고를 하며, 중요한 시스템 파일이 함부로 바뀌는 것을 차단합니다.

- 설치가 중단된 경우, 롤백(rollback) 기능을 지원하여 설치 이전으로 완벽한 원상복구를 해 주며, 설치된 프로그램을 지울 경우에도 예전보다 훨씬 말끔하게 관련 파일들을 청소해 줍니다.

- 모든 파일을 설치 때 깔지 않아도, 설치된 프로그램에서 어떤 기능이 처음 실행될 때에야 그 기능에만 관련된 파일을 설치할 수 있도록 하는 부분 설치 기능을 지원하며 MS 인스톨러는 설치되지 않은 파일들에 관련된 기능이 처음으로 실행되는 것을 감지하여 파일 설치를 자동으로 권고하거나 수행합니다. 또한 CD-ROM과 같은 매체를 통한 설치 이외에도 네트워크와 인터넷을 통한 설치도 함께 지원합니다.

윈도우 인스톨러는 윈도우 2000, Me, XP에서는 기본 지원하며, 98 이하에서는 따로 윈도우 인스톨러를 설치해야 합니다. .msi는 윈도우 인스톨러 기능을 사용하는 설치 파일입니다. .msi 파일이 있는 경우에도 보통 setup.exe를 함께 제공하지만 이것은 단순히 .msi를 실행시키거나, 윈도우 인스톨러가 없는 경우를 감지하여 인스톨러를 설치하는 기능만을 합니다. 요즘은 대부분의 설치 프로그램들이 .msi 형식으로 배포되며, 이것이 전혀 없이 배포되는 프로그램은 윈도우 인스톨러가 아닌 방식으로 설치된다고 보시면 되겠습니다. 

윈도우즈 시리즈를 만든 마이크로 소프트사는 설치 프로그램을 msi 파일로 바꾸어 
가고 있습니다. 윈도우즈 XP는 msi 파일을 다룰 수 있지만 버전이 낮은 윈도우즈 시리즈는 '윈도우즈 인스톨'을 깔아야 합니다. 마이크로 소프트사의 윈도우즈 업데이트 사이트에서 윈도우즈 인스톨러를 깔 수 없다면 인터넷 자료실이나 PC 통신에서 'MS 윈도우 인스톨러(MSI) "Windows Installer" 2.0'을 검색해서 내려받아 깔면 됩니다.



출처 - http://blog.naver.com/nuloonggee/90149314682








'Development > Windows Programming' 카테고리의 다른 글

windows prog - 오디날(ordinal) error  (0) 2013.10.03
Posted by linuxism
,


* servlet config in server-side 

response.addHeader("Pragma", "no-cache");

response.addHeader("Cache-Control", "no-store, no-cache, must-revalidate");








a.php 페이지에서 폼형식으로 날짜를 선택하는 폼이 있습니다.  그리고 iframe으로 
날짜를 검색해서 해당결과를 이용하여 .png파일로 출력하는 b.php파일이 있습니다. 
오늘 계속테스트하는 도중에 그림파일이 갱신이 안되는 경우가 있어서 확인해보니깐 
인터넷옵션->임시 인터넷 파일(설정)->저장된 페이지의 새 버전 확인(자동)으로 맞춰져 있더군요 아무래도 그림파일을 저장할 때 같은 이름으로 계속 저장해서 이런경우 이전 그림이 계속 남아있는것 같습니다. 설정을 바꾸지 않고 코드상에서 해결할수 있는 방법이 있습니까.? 조언 좀 부탁드립니다.

전체댓글수 4

  • 기술레벨커뮤니티레벨하늘처럼 06-12-27 20:37 

    소스보기

  • 보통 쓰레기값을 붙여주죠.. 

    b.php?x=23&y=33 이런식으로 계속 값을 랜덤하게 뿌려주면 됩니다..
  • 기술레벨커뮤니티레벨reds1832 06-12-27 21:36 

    소스보기

  • 그러면 계속 해서 그림파일을 저장해야 한다는 이야기인데..용량문제는 없겠습니까?
  • 기술레벨커뮤니티레벨규~~ 06-12-28 05:55 

    소스보기

  • 차라리 GD를 사용하고 헤더에 no-cache 를...
  • 기술레벨커뮤니티레벨reds1832 06-12-28 12:06 

    소스보기

  • 규~~님 말씀 처럼 헤더에 no-cache를 해봤는데 잘 안되더라구요 그래서 여기저기 기웃거린 결과 time변수를 사용해서 처리하는걸 해봤는데 됩니다.. 
    $time = time(); 
    echo "<img src='images/graphImage.png?=$time'>"; 
    이런식으로 하니깐 되네요..



출처 - http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=86146&sca=&sfl=wr_subject%7C%7Cwr_content&stx=iframe&sop=and&spt=-41807&page=56



'Web > Common' 카테고리의 다른 글

web - SPDY  (0) 2014.01.09
해상도  (0) 2013.11.19
web - 반응형(responsive) 웹  (0) 2013.09.14
web - deep link(딥링크)  (0) 2013.07.28
압축 - DEFLATE, SDCH 알고리즘  (0) 2013.06.27
Posted by linuxism
,