2016-09-06 2 views
3
내가 세 필드가

내가 한 줄에 싶습니다 필요할 때 , 오른쪽에 .price, 그리고 항상 각 필드 사이에 최소한 공백이 있어야합니다.방지 플로트는

여기 까다로운 부분이 있습니다. 화면이 너무 좁은 경우 div를 감싸거나 넘치지 않게하고 싶습니다. 대신 .name을 텍스트 생략 부호로 생략하고 싶습니다.

div{background:#abcdef;white-space:nowrap} 
.name{text-overflow:ellipsis} 
.size{} 
.price{float:right} 

는 현재 화면이 좁은 경우 다음 .price는 (내가 원하지 않는) 두 번째 라인에 떨어지고 화면이 (.name을하고 크기는 오버 플로우 사업부 후도 좁은 있다면 어떤 또한 원하지 않음) .name은 줄임표로 절사되지 않습니다.

내가 뭘 잘못하고 있니?

답변

1

사용 인 flexbox :

div { 
 
    background: #abcdef; 
 
    display: flex; 
 
} 
 
.name { 
 
    text-overflow: ellipsis; 
 
    overflow: hidden; 
 
    white-space: nowrap; 
 
} 
 
.size { 
 
    margin: 0 .5em; 
 
} 
 
.price { 
 
    margin-left: auto; 
 
}
<div> 
 
    <span class="name">Blue Widgets Over Miami</span> 
 
    <span class="size">large</span> 
 
    <span class="price">$9.99</span> 
 
</div> 
 
<br /> 
 
<div> 
 
    <span class="name">Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami Blue Widgets Over Miami</span> 
 
    <span class="size">large</span> 
 
    <span class="price">$9.99</span> 
 
</div>

+0

고맙습니다. 나는 마진이있는 .size의 팬이 아니므로 내 라인을 변경하면 결국

Blue Widgets Over Miami large $9.99
이되었습니다. 공간의 엔티티 이름을 사용하여 해결할 내 의도 된 공간을 잘라내는 플렉스의 단점 외에도이 기능은 훌륭합니다! – GFL

+1

@GFL ' '은별로 의미가 없습니다. 마진을 원하지 않는다면'.size :: before, .size :: after {content : ''; white-space : pre; }' – Oriol

+0

글꼴이 같은 크기가 아닌 경우 flex 상자가 텍스트 정렬 문제의 원인이라는 것을 알았습니다. .name 및 .price .name보다 큰 .name을 사용하면 모든 텍스트가 동일한 기준선을 공유 할 수 있습니까? – GFL

3

나는 이것이 당신이 https://jsfiddle.net/kvb5hb6f/14/

가고있는 나는 수레를 제거하고 오른쪽으로 절대 위치로 변경 무엇을 생각하고 부모 DIV에 padding-right을 추가 있도록 왼쪽에있는 텍스트하지 않습니다 이상 오른쪽에 가격을 두른 다음 text-overflow: ellipsis;을 부모 div에 추가합니다.

div { 
    background: #abcdef; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    padding-right: 50px; 
} 

.price { 
    position: absolute; 
    right: 0; 
} 
+0

감사합니다,하지만 항상 크기는 볼 수 있습니다 만 생략 등 .name을 오버 플로우를 가질 수 있습니다? 컨테이너 폭을 동적으로 지정하지 않고도이 작업을 수행 할 수 있습니까? – GFL