텍스트 오버플로 : 줄임표가 작동하지 않습니다


264

이것이 내가 시도한 것입니다 ( 여기 참조 ).

body {
    overflow: hidden;
}

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
}

기본적으로 창을 작게 만들 때 스팬을 줄임표로 축소하고 싶습니다. 내가 뭘 잘못 했어?


6
줄임표 작동 요구 사항 : stackoverflow.com/a/33061059/3597276
Michael Benjamin

작동하지 않는다고 생각했을 때의 문제는 너비를 충분히 길게 설정하지 않았다는 것입니다 (10px). 그래서 줄임표를 자르고있었습니다.
Rod

답변:


459

당신은 CSS가 필요합니다 overflow, width(또는 max-width) display,과 white-space.

http://jsfiddle.net/HerrSerker/kaJ3L/1/

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100px;
    display: block;
    overflow: hidden
}

부록 라인 클램핑 (멀티 라인 오버 플로우 타원)을 수행하는 기술에 대한 개요를 보려면 다음 CSS 트릭 페이지를 참조하십시오. https://css-tricks.com/line-clampin/

부록 2 (2019 년 5 월)
링크에서 주장하는 것처럼 Firefox 68은 -webkit-line-clamp(!)를 지원합니다 .


12
공백 속성은 내가 놓친 것입니다. 감사.
nebulousGirl

65
그것은 당신이 white-space: nowrap;재산 이 필요하다는 것을 짜증나게합니다 . 이제 한 줄의 텍스트 만 블록 텍스트 대신 ...로 끝날 수 있습니다.
Sven van Zoelen

3
현재 모든 주요 브라우저는 줄임표를 지원합니다 : caniuse.com/#feat=text-overflow
kazy

1
@basZero Multiline Ellipsis는 CSS에서만 지원되지 않습니다. 다른 조치를 취해야합니다
yunzen February

1
컨테이너가 바인딩되도록 너비를 지정하고 브라우저에서 런 오버 텍스트를 숨기도록 overflow : hidden을 설정 한 다음 text-overflow : ellipsis를 설정하여 브라우저에 텍스트 오버플로 숨기기를 처리하는 방법을 지시해야합니다.
Michael Angstadt

46

블록 요소, 최대 크기가 있는지 확인하고 overflow를 hidden으로 설정하십시오. (IE9 및 FF 7에서 테스트)

http://jsfiddle.net/uh9zD/

div {
    border: solid 2px blue;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 50px;
}

5
공백이있는 모든 경우에는 white-space : nowrap 속성이 일반적으로 필요할 수 있습니다.
Kzqai

위 의견의 정확한 사본.
nebulousGirl

@nebulousGirl : 실제로 Kzqai의 의견은 HerrSerker의 의견에 게시 된 의견보다 더 빠릅니다.
lepe oc

IE에는 문제가 있습니다-IE는 IE 11에서 테스트 된 두 번째 단어를 줄 바꿈하지 않습니다 ... 예상대로 다른 브라우저에서 작동합니다 (오래된 Opera 12 포함).
Nux

1
@Nux MS Edge 브라우저에서도 예상대로 작동하지 않습니다.
yunzen

21

Chrome에서 여러 줄을 사용하는 경우 :

display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; // max nb lines to show
-webkit-box-orient: vertical;

YouTube에서 영감을 얻었습니다. ;-)


이것은 매우 흥미로운 해결책입니다. -webkit-*속성을 사용 하지만 모든 주요 브라우저에서 지원됩니다. 자세한 정보는 여기에서 찾을 수 있습니다 : css-tricks.com/almanac/properties/l/line-clamp
dkniffin

5

크롬에서 줄임표에 문제가있었습니다. 공백 켜기 : nowrap이 문제를 해결 한 것 같습니다.

max-width: 95px;
max-height: 20px;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
border: solid 1px black;
font-size: 12pt;
text-align: right;
white-space: nowrap;

4
word-wrap: break-word;

이것과 이것 만이 나를 위해 일을했습니다.

<pre> </pre> 

꼬리표

다른 것들은 줄임표를하지 못했습니다 ....


3

이 문제를 우연히 발견 할 수있는 사람을위한 헤드 업입니다.

text-rendering: optimizelegibility; 
//Changed to text-rendering: none; for fix

줄임표를 허용하지 않았습니다. 분명히 이것은 매우 까다로운 것입니까?


2

아래 코드를 추가하여 원하는 위치에 추가하십시오.

p{
   display: block; /* Fallback for non-webkit */
   display: -webkit-box;
   max-width: 400px;
   margin: 0 auto;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
 }

2

여러 줄

크롬에서 여러 줄에 줄임표를 적용 해야하는 경우이 CSS를 적용 할 수 있습니다.

CSS에 너비 를 추가 하여 특정 너비의 요소를 지정할 수도 있습니다 .

.multi-line-ellipsis {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
<p class="multi-line-ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>


1

CSS에 다음을 추가하여 줄임표를 사용해보십시오.

.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

그러나이 코드는 한 줄 트림에만 적용되는 것처럼 보입니다. 텍스트를 자르고 줄임표를 표시하는 다른 방법은 다음 웹 사이트에서 찾을 수 있습니다. http://blog.sanuker.com/?p=631


0

줄임표가 작동하도록 CSS에 다음 줄을 추가하십시오.

 p {
     display: block; // change it as per your requirement
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
   }

0

그 우리의 사람들을 위해 고정 폭을 사용하지 않는 , 그것은 또한 사용하여 작동합니다 display: inline-grid. 필요한 속성과 함께 추가하면됩니다.display

span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: inline-grid;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.