2008-10-01 2 views
7

MySQL의 텍스트 영역에 텍스트 영역의 입력을 저장했습니다. 나는 데이터베이스에서 데이터를 꺼내 PHP를 사용하여 사용자가 입력 한 공백 (예 : 여러 공백 및 줄 바꿈)을 표시하면서 p 요소에 표시하려고합니다. 나는 pre 태그를 시도했지만 포함 div 요소에 설정된 너비를 따르지 않습니다. 공백을 & nbsp로 변환하고 새로운 줄을 br 태그로 변환하는 PHP 함수를 만드는 것 외에 어떤 옵션이 있습니까? 깨끗한 HTML/CSS 솔루션을 선호하지만 모든 입력을 환영합니다! 감사!MySQL TEXT 열에서 HTML을 가져올 때 공백 표시

+0

공백과 개행 문자를
으로 바꾸는 것이 잘못된 이유는 무엇입니까? –

+0

그냥 개인적인 취향 - 소스를 볼 때 공백이 마크 업에 표시되므로 HTML/CSS 솔루션이 가장 적합합니다. –

답변

10

당신은 그것은 현재 CSS3에 정의 된 (완성 된 표준은 아직하지 않은) 그러나 대부분의 브라우저 것 this site

에서 가져온 다음 CSS

pre { 
white-space: pre-wrap;  /* css-3 */ 
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 
white-space: -pre-wrap;  /* Opera 4-6 */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
word-wrap: break-word;  /* Internet Explorer 5.5+ */ 
} 

를 사용하여 포장하는 pre 내부의 텍스트를 일으킬 수 있습니다 의견에 따라 지원하는 것 같습니다.

+0

아름다운! 너는 나의 구원자 야! –

2

두 가지 경쟁 요건이 있습니다. 내용을 특정 영역 (예 : 너비 : 300px)에 맞게 만들거나 사용자가 입력 할 때 공백과 줄 바꿈을 유지하려고합니다. 정의에 따라 다른 하나와 간섭하기 때문에 둘 다 할 수 없습니다.

HTML은 공백을 인식하지 않기 때문에 공백을 "& nbsp;"으로 변경하는 유일한 옵션이 있습니다. < > 태그를 사용하거나 css 스타일 "white-space : pre"를 지정하여 줄 바꿈을 < br />으로 변경하십시오.

1

div와 관련된 문제는 항상 스크롤하거나 글꼴을 아래로 조정할 수 있습니다 (서버 측 코드에서 가장 긴 행의 길이를 기반으로 동적으로 조정할 수도 있음).

관련 문제