2015-03-05 2 views
0

Есть ли способ CSS, чтобы встроенный блок был выровнен по левому краю, но когда контейнер становится маленьким, он должен быть ограничен правым краем и вместо этого имеет то, что находится на слева от блока, и чести текстового эллипса?CSS left-align float, но ограничение по правому краю

Когда контейнер широка я хочу что-то вроде

Some longish text goes here [My Block]   |<- right edge 

и когда контейнер узок

Some longish...[My Block] |<- right edge 

идеально он должен быть динамичным и жидкости при изменении размеров контейнера.

удлиненно тест и текст «Мой Блок» не не являются постоянными, и ни являются их ширина (так с помощью таблицы с фиксированной раскладки не работает, а обычная таблица не позволяет текст-многоточие в работа)

редактировать: иллюстрации

enter image description here

редактировать 2: жирным шрифтом на факт ширины не известны, так что любое решение с участием CSS с ширина текста или блока, выраженная в пикселях или процентах, не будет работать :(

+0

вы пытались что-нибудь –

+0

не совсем понятно, что вы имеете в виду, может быть, изображение поможет – gaurav5430

+0

@ Да, да, настольные подходы. –

ответ

0

Найден решение с гибкой компоновкой и гибким термоусадочным, который выходит очень короткий & просто. Он не будет работать на старых IE и Android < = 4,3

проверяемых фрагменты: http://jsbin.com/nodironodo/1/edit?html,css,output

Код для ссылки ниже без косметических аспектов

.container { 
 
    display: flex; 
 
    white-space: nowrap; 
 
} 
 

 
.ellipsis { 
 
    text-overflow: ellipsis; 
 
    overflow: hidden; 
 
} 
 

 
.block { 
 
    flex-shrink: 0; 
 
}
<div class="container"> 
 
    <div class="ellipsis">Some longish text goes here</div> 
 
    <div class="block">My Block</div>  
 
</div>

0

Используйте display:inline-block с text-overflow: ellipsis. Посмотри ниже URL:

http://jsfiddle.net/jjmxL9hr/

Я надеюсь, что это решит разъяснение. Дайте мне знать для каких-либо разъяснений.

+0

Кажется не работает: если вы изменяете размер области результата в jsbin (и, следовательно, на размер контейнера), это не влияет на многоточие текста (вместо этого блок обтекает ваш пример). –

+0

, если изменить размер, если это единственная проблема, используйте его вместе с запросом на медиа с предпочтительными точками останова. – Selvam

+0

медиа-запросы означают, что вам нужно знать ширину, а ширина не фиксирована, ни точный текст, ни блок –

0

Использование медиа-запросов должно быть выполнено.

.container{ 
 
    overflow: hidden; 
 
    position: relative; 
 
} 
 

 
.container > p{ 
 
    float: left; 
 
    overflow: hidden; 
 
    white-space: nowrap; 
 
    text-overflow: ellipsis; 
 
    margin: 0; 
 
} 
 

 
.container > div{ 
 
    display: inline-block; 
 
    margin-left: 10px; 
 
} 
 

 
@media screen and (max-width: 480px){ 
 
    html .container > p{ 
 
    max-width: 60%; 
 
    } 
 
}
<div class="container"> 
 
    <p class="text-primary">Some longish text goes here some longish text goes here</p> 
 
    <div class="my-block">[My Block]</div> 
 
</div>

+0

Не работает, когда вы изменяете размер до небольших размеров, блок становится выравниваемым по правому краю, а также шириной не известно (ни длинного текста, ни блока), поскольку тексты являются динамическими (из db). –

+0

Отредактировал мой фрагмент (я неправильно понял, что правый край работает как плавающий справа). Кроме того, я не думаю, что можно применить переполнение текста без указания ширины. –

+0

Нашли решение с гибкой компоновкой –

Смежные вопросы