2011-06-11 3 views
26

내 HTML 서식이 오버플로되는 원인이되는 파일 이름이 너무 길어요. 이 모든 파일 이름은 공백 대신 밑줄을 사용하며 공백 인 경우 쉽게 줄 바꿈/줄 바꿈을합니다. 이렇게CSS 단어 줄 바꿈/줄 바꿈 공백 및 하이픈 이외에

Here_is_an_example_of_a_really_long_filename_that_uses_underscores_instead_of_spaces.pdf

가 공백이나 하이픈 것처럼 CSS 텍스트에 밑줄을 치료하기 위해 말해, 따라서/너무 밑줄이에 침입 포장하는 몇 가지 방법이 있나요? 이렇게

Here_is_an_example_of_a_really_long_
file_name_that_uses_underscores_
instead_of_spaces.pdf 내 목적을 위해

, 나는이 작업을 수행하는 스크립트를 사용할 수 없습니다. 또한 단어 감싸기를 사용하고 싶지는 않습니다 : break-word trick은 너비를 지정하지 않아도 작동하지 않기 때문입니다. 또한 단어 중간에 임의로 끊어집니다.

감사합니다.

답변

15

브라우저를 배치 할 때 브라우저가 깨지는 <wbr> 태그 (http://www.quirksmode.org/oddsandends/wbr.html)를 사용할 수 있습니다.

그래서 HTML은 다음과 같아야합니다

Here_<wbr>is_<wbr>an_<wbr>example_<wbr>of_<wbr>a_<wbr>really_<wbr>... 

당신은 당신이 출력 HTML 전에 서버 측에이 태그를 추가 할 수 있습니다.

다른 대안으로는 너비가 0 인 엔터티 &#8203;이 있습니다. 때로는 특정 브라우저에서 더 잘 작동합니다.

+2

참고, 모든 브라우저 답장을 보내 – Omer

+1

감사에서 지원 100 %하지 않을 수 있습니다. 불행히도 파일 이름을 서버 측에서 처리 할 수는 없습니다. 밑줄을 공백이나 하이픈처럼 처리하도록 브라우저에 알리는 방법이 필요합니다. 나는 CSS jujitsu가 있기를 바래서 그렇게 할 수 있었으면 좋겠다. Here_is_an_example_of_a_really_long_filename_that_uses_underscores_instead_of_spaces와 같은 정렬입니다. dsmtoday

+0

IE8에서는 지원되지 않습니다. – Knu

11

당신이 현재 이러한 목적을 위해 CSS를 사용할 수 없습니다 것 같다

jsfiddle - code

word-break: break-all

, result

+3

이렇게하면 밑줄이 아닌 문자도 래핑됩니다. – rmcclellan

+0

이것은 문제를 해결하지 못합니다. 이는 각 문자 다음에 줄 바꿈뿐만 아니라 줄 바꿈을하기 때문입니다. – user428747

2

사용 CSS.

하지만 예를 들어, 자동으로 <wbr> 태그를 추가 자바 스크립트를 사용할 수 있습니다 : 당신이 <span> </span>을 삽입 할 수 <wbr> 자바 스크립트도를 사용하지 않고

var arr = document.getElementsByClassName('filename'); 
 
for(var i = 0; i < arr.length; i++) { 
 
    arr[i].innerHTML = arr[i].innerHTML.replace(/_/g, '_<wbr/>'); 
 
}
body { width: 250px; }
<a class="filename">Here_is_an_example_of_a_really_long_filename_that_uses_underscores_instead_of_spaces.pdf</a>

+0

은 HTML5에 유효합니다. IE 8 이상을 지원해야합니다. 따라서이 해결책은 도움이되지 않습니다. 그래도 고마워 . – user428747

+1

@user, 즉 [IE 용 수정 가능] (http://stackoverflow.com/questions/23756932/wbr-tag-doesnt-work-in-ie), 해당 수정 사항은 IE 전용 CSS에만 추가하십시오. 어떤 경우에는 복사 할 때 너비가없는 공백이 전체 공간이 될 수 있다는보고가 있기 때문에 조건부 주석을 통해). 그러나 내가 아는 한 IE에서이 작업을 수행 할 수있는 다른 방법은 없습니다. – user

1

다음 CSS를합니다 (공간 통지) :

span{ 
    width: 0; 
    overflow: hidden; 
    display: inline-block; 
} 

마크 업이 새로운 HTML5 태그입니다

Here_<span> </span>is_<span> </span>an_<span> </span>example...