2012-09-29 5 views
27

부모 div 및 인접 div에서 충분한 공간을 허용하지 않을 때 떠 다니는 div 줄임표에 텍스트가 표시되는지 궁금합니다. 예를 들어 : 가변 폭 div를 사용할 때 CSS 텍스트 줄임표

<style> 
.parent-div { 
    width: 100%; 
    border: 1px; 
    padding: 4px; 
} 
.text-div { 
    float: right; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis;  
} 
.icon-div { 
    float: left; 
} 
</style> 
<div class="parent-div"> 
    <div class="text-div">This is text I'd like to truncate when space doesn't permit</div> 
    <div class="icon-div">X</div> 
</div> 

지금까지 내가 브라우저 창을 위기 경우, 부모 사업부는 텍스트 사업부의 공백이 사라지고, 붕괴하지만, 공간이 더 이상 없을 때, 줄임표에 걷어차하지 않습니다.

내가 생각할 수있는 유일한 일은 창이 크기를 조정하고 텍스트 div에 새로운 고정 너비를 동적으로 설정했을 때 이벤트를 트리거하는 것입니다. 그러나 이것은 패딩과 필연적으로 고려해야 할 인접한 공예품을 고려하면 멋지지 않습니다. 적절한 너비를 얻기 위해 빼십시오.

이것에 대한 의견이 있으십니까?

는 여기 jsFiddle 데모입니다 : http://jsfiddle.net/Blender/kXMz7/

+1

당신은 오래된 브라우저를 지원 걱정하지 않는 경우, 당신은이 꽤 간단하게 인 flexbox를 사용할 수 있습니다. net/Blender/kXMz7/1/ – Blender

+0

완벽하게 작동하는 Blender! 저는 이전 브라우저를 적극적으로 지원하지 않으므로 잘 작동합니다. :) 분명히 그것은 테이블에 넣을 때 작동하지 않지만 그 문제를 해결할 수 있습니다. 감사! 답변을 별도로 게시하는 경우 올바른 답변으로 표시하겠습니다. – Anthony

답변

52
당신은 꽤 직관적으로이 작업을 수행 CSS3의 유연한 상자 레이아웃을 사용할 수 있습니다

:

.parent-div { 
    display: flex; 
} 

.text-div { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis;  

    min-width: 0; 
} 

.icon-div { 
    flex: 1; 
}​ 

데모 : http://jsfiddle.net/Blender/kXMz7/1/

+0

완벽하게 작동합니다! 블렌더에 감사드립니다! – Anthony

+1

+1 솔루션으로 완벽하게 작동합니다. Flexible Box Layout은 아직 후보 추천 단계에 있지만 널리 지원되지는 않습니다. 그것은 크롬, 파이어 폭스, 사내 프리픽스가있는 사파리에서 작동합니다. Internet Explorer는 IE10에서이 기능을 지원하기 시작했습니다. http://caniuse.com/flexbox – Michael

+0

꽤 오랫동안이 대답을 찾고있었습니다! 감사합니다 :-) – Rikki

10

우리 회사는 아직 CSS3를 지원하지 않습니다 하지만 다른 솔루션으로 문제를 해결할 수있었습니다. float 속성을 아이콘 div에만 적용하고 HTML에 첫 번째로 넣으면 나머지 div는 세로 정렬 상태를 유지하면서 충분한 공간이 없을 때 잘립니다.

예 : HTTP : // jsfiddle http://jsfiddle.net/qftWN/ (오른쪽 아이콘), (왼쪽에있는 아이콘) http://jsfiddle.net/Nr2NN/

+1

감사합니다! 이 깔끔한 속임수가 작동하고 나를 곤경에 빠지게했다. :) – gnclmorais

+0

대단히 감사합니다 !! – user1110977