निम्न HTML और CSS3 के नियमों का उपयोग भीतर आइटम रखने के लिए, मुझे यकीन है कि बनाने के लिए कोशिश कर रहा हूँ कि निम्नलिखित मानदंडों का पालन किया जाता है:बॉक्स मॉडल का उपयोग अपनी मूल div
मैं छोड़कर काम कर रहे सभी मानदंडों से है आइटम 1 के लिए जहां बच्चे अपने माता-पिता की चौड़ाई से अधिक हो रहे हैं। प्रश्न: बच्चों को अपने माता-पिता के भीतर कैसे रखा जाए?
- ली आइटम अपने माता पिता चौड़ाई यानी 400px
- img, लेबल से अधिक हो सकती है, और मुद्रा की सामग्री उनके अवधि
- मुद्रा भीतर लंबवत रूप से केंद्रित किया जाना चाहिए लपेट नहीं करना चाहिए और हमेशा पूर्ण में प्रदर्शित होना चाहिए
- मुद्रा को हमेशा लेबल अवधि के लिए जितना संभव हो सके प्रदर्शित किया जाना चाहिए।
- लेबल टेक्स्ट को 2 लाइनों पर क्लैंप किया जाना चाहिए जिसमें इलिप्सिस प्रदर्शित होता है जहां यह 2 लाइनों से अधिक हो जाता है।
नोट: केवल क्रोम और सफारी वेबकिट-आधारित ब्राउज़र में काम करने की आवश्यकता है।
हालांकि, यह इस समय इस तरह दिखता है:
यह की तरह दिखना चाहिए
कोई भी विचार?
********************* 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...);
}
यहां एक और पहेली है जिसे मैं फ्लेक्स मॉडल के साथ काम कर रहा हूं, लेकिन केवल क्रोम पर। यह अभी भी सफारी के लिए काम नहीं करता है? http://jsfiddle.net/tUqvG/ - यह फ्लेक्स और बॉक्स मॉडल के मिश्रण का थोड़ा सा है, क्योंकि मुझे फ्लेक्स मॉडल के साथ काम करने के लिए इलिप्सिस और लाइन-क्लैंप नहीं मिल सकता है। –
फ्लेक्सबॉक्स ने बॉक्स मॉडल को प्रतिस्थापित नहीं किया है। लेआउट के लिए यह सिर्फ एक और विकल्प है। –
आपको बॉक्स मॉडल या सफारी में फ्लेक्स मॉडल के साथ काम करने के लिए लाइन-क्लैंप नहीं मिलेगा, टेक्स्ट-ओवरफ्लो के रूप में: इलिप्सिस मल्टी-लाइन टेक्स्ट के लिए नहीं है, आपका क्रोम पर बस एक भाग्यशाली समाधान है। :) http://quirksmode.org/css/user-interface/textoverflow.html –