Используя следующие правила HTML и CSS3, я пытаюсь убедиться, что соблюдены следующие критерии:
У меня работают все критерии, кроме пункта 1, где дети превышают ширину своего родителя. Вопрос: Как удержать детей внутри родителя?
- Элементы li не могут превышать ширину своего родителя, т. е. 400 пикселей.
- img, метка и содержимое валюты должны располагаться вертикально по центру в пределах их диапазона.
- валюта не должна переноситься и всегда должна отображаться полностью
- валюта всегда должна отображаться как можно ближе к диапазону метки.
- текст этикетки должен быть заключен в 2 строки с многоточием, отображаемым там, где он превышает 2 строки.
Примечание. Должен работать только в браузерах Chrome и Safari на базе webkit.
Это должно выглядеть так:
Однако на данный момент это выглядит так:
Любые идеи?
********************* JS Fiddle пример ***************************
<ul>
<li>
<span class="img"></span>
<span class="label">Acclaim</span>
<span class="currency">(USD 50)</span>
</li>
<li>
<span class="img"></span>
<span class="label">Acclaim 1 11 111 1111 11111</span>
<span class="currency">(USD 50)</span>
</li>
<li>
<span class="img"></span>
<span class="label">Acclaim 1 11 111 1111 11111 2 22222 2222 22222 3 33 333 3333 33333 4 44 444 4444 44444 5 55 555 5555 55555 6 66 666 6666 66666</span>
<span class="currency">(USD 50)</span>
</li>
</ul>
ul {
width: 400px;
background-color: yellow;
padding: 0;
margin: 0;
}
li {
display: -webkit-box;
padding-right: 50px;
}
.label {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
-webkit-line-clamp: 2;
text-overflow: ellipsis;
overflow: hidden;
white-space: normal;
word-wrap: break-word;
line-height: 1.3em;
margin-right: 0.2em;
background-color: pink;
}
.currency {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
white-space: nowrap;
background-color: lightgreen;
}
.img {
display: block;
width: 40px;
height: 40px;
margin-right: 0.1em;
background-image:url('data:image/png;base64,iVBOR...);
}