Sử dụng các quy tắc HTML và CSS3 sau, tôi đang cố gắng để đảm bảo rằng các tiêu chuẩn sau được tôn trọng:Sử dụng mô hình hộp để chứa các mục bên trong div mẹ
tôi có tất cả các tiêu chí làm việc trừ đối với khoản 1, trong đó số trẻ em trên vượt quá chiều rộng của bố mẹ. Câu hỏi: Làm thế nào để giữ trẻ em trong cha mẹ?
- mục li không thể vượt quá mẹ chiều rộng tức là họ 400px
- img, nhãn và nội dung tệ phải được tập trung theo chiều dọc trong khoảng thời gian của họ
- tệ không nên quấn và phải luôn luôn được hiển thị đầy đủ
- đơn vị tiền tệ phải luôn được hiển thị càng gần càng tốt với khoảng nhãn .
- văn bản nhãn phải được kẹp ở 2 dòng có dấu ba chấm được hiển thị khi nó vượt quá 2 dòng.
Lưu ý: Chỉ cần làm việc trong trình duyệt dựa trên web Chrome và Safari.
Nó sẽ giống như thế:
Tuy nhiên, có vẻ như thế này vào lúc này:
Bất kỳ ý tưởng?
********************* JS Fiddle example ************************
<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...);
}
Đây là một mẹo khác mà tôi đã làm việc với mô hình flex, nhưng chỉ trên Chrome. Nó vẫn không hoạt động với Safari? http://jsfiddle.net/tUqvG/ - đó là một chút của một kết hợp của các mô hình flex và hộp tuy nhiên, như tôi không thể có được dấu ba chấm và line-kẹp để làm việc với mô hình flex. –
Flexbox chưa thay thế kiểu hộp. Nó chỉ là một tùy chọn khác cho bố cục. –
Bạn sẽ không nhận được line-kẹp để làm việc với mô hình hộp hoặc mô hình flex trong Safari, như tràn văn bản: dấu chấm lửng không dành cho văn bản nhiều dòng, bạn chỉ là một giải pháp may mắn trên Chrome. :) Xem http://quirksmode.org/css/user-interface/textoverflow.html –