जाहिरा तौर पर यह काम नहीं करता है:
select[multiple]{
height: 100%;
}
यह बनाता है का चयन करें 100% पृष्ठ ऊंचाई ...
auto
या तो काम नहीं करता है, मुझे अभी भी ऊर्ध्वाधर स्क्रॉलबार मिलता है।
कोई अन्य विचार?
जाहिरा तौर पर यह काम नहीं करता है:
select[multiple]{
height: 100%;
}
यह बनाता है का चयन करें 100% पृष्ठ ऊंचाई ...
auto
या तो काम नहीं करता है, मुझे अभी भी ऊर्ध्वाधर स्क्रॉलबार मिलता है।
कोई अन्य विचार?
जवाबों:
मुझे लगता है कि आप size
विशेषता का उपयोग कर सकते हैं । यह हाल के सभी ब्राउज़रों में काम करता है।
<select name="courses" multiple="multiple" size="30" style="height: 100%;">
आप टैग size
में विशेषता का उपयोग करके ऐसा कर सकते हैं select
। मान लें कि आपके पास 8 विकल्प हैं, तो आप इसे पसंद करेंगे:
<select name='courses' multiple="multiple" size='8'>
पुराना है, लेकिन यह वही होगा जो आप के बाद की आवश्यकता के बिना कर रहे हैं। छिपे हुए ओवरफ्लो को स्क्रॉलबार से छुटकारा मिल जाता है, और जावास्क्रिप्ट इसे सही आकार देता है।
<select multiple='multiple' id='select' style='overflow:hidden'>
<option value='foo'>foo</option>
<option value='bar'>bar</option>
<option value='abc'>abc</option>
<option value='def'>def</option>
<option value='xyz'>xyz</option>
</select>
और बस जावास्क्रिप्ट की एक छोटी राशि
var select = document.getElementById('select');
select.size = select.length;
JQuery के लिए आप यह कोशिश कर सकते हैं। मैं हमेशा निम्न कार्य करता हूं और यह काम करता है।
$(function () {
$("#multiSelect").attr("size",$("#multiSelect option").length);
});
आप इसे केवल जावास्क्रिप्ट / JQuery में कर सकते हैं, आप इसे निम्नलिखित JQuery के साथ कर सकते हैं (यह मानते हुए कि आपने अपने चयन को मल्टीसेलेक्ट की आईडी दिया है):
$(function () {
$("#multiSelect").css("height", parseInt($("#multiSelect option").length) * 20);
});
$('select.expandable').each(function() { $(this).attr('size', $(this).find('option').length) })
मुझे पता है कि प्रश्न पुराना है, लेकिन विषय बंद नहीं है मैं अपनी मदद दूंगा।
विशेषता "आकार" आपकी समस्या का समाधान करेगा।
उदाहरण:
<select name="courses" multiple="multiple" size="30">
select
हो सकता है optgroup
जो एक लाइन लेता है:
<select id="list">
<optgroup label="Group 1">
<option value="1">1</option>
</optgroup>
<optgroup label="Group 2">
<option value="2">2</option>
<option value="3">3</option>
</optgroup>
</select>
<script>
const l = document.getElementById("list")
l.setAttribute("size", l.childElementCount + l.length)
</script>
इस उदाहरण में कुल size
है (1+1)+(1+2)=5
।
<optgroup>
s और <option>
s की संख्या बताती है ।
आप इसे सरल जावास्क्रिप्ट के साथ कर सकते हैं ...
<select multiple="multiple" size="return this.length();">
... या रिकॉर्ड की संख्या तक की ऊंचाई ...
<select multiple="multiple" size="return this.length() > 10 ? this.length(): 10;">
$('#firstSelect').attr('size', $('#firstSelect').length);
। इस
स्क्रॉलबार निकालने के लिए निम्नलिखित सीएसएस जोड़ें:
select[multiple] {
overflow-y: auto;
}
यहाँ एक स्निपेट है:
select[multiple] {
overflow-y: auto;
}
<select>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select multiple size="3">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
आकार की विशेषता का उपयोग करना सबसे व्यावहारिक समाधान है, हालांकि जब केवल दो या तीन विकल्पों के साथ तत्वों का चयन करने के लिए इसे लागू किया जाता है ।
सरल जावास्क्रिप्ट का उपयोग आकार विशेषता को सही मूल्य पर स्वचालित रूप से सेट करने के लिए किया जा सकता है , उदाहरण के लिए इस फिडेल को देखें ।
$(function() {
$("#autoheight").attr("size", parseInt($("#autoheight option").length));
});
जैसा कि ऊपर उल्लेख किया गया है, यह समाधान केवल दो या तीन विकल्प होने पर समस्या का समाधान नहीं करता है।
आप पहले विकल्प टैग की गणना कर सकते हैं, और फिर आकार विशेषता के लिए गणना सेट कर सकते हैं। उदाहरण के लिए, PHP में आप सरणी को गिन सकते हैं और फिर सरणी के लिए एक फ़ॉरच लूप का उपयोग कर सकते हैं।
<?php $count = count($array); ?>
<select size="<?php echo $count; ?>" style="height:100%;">
<?php foreach ($array as $item){ ?>
<option value="valueItem">Name Item</option>
<?php } ?>
</select>
जिस तरह से एक चयनित बॉक्स प्रदान किया जाता है वह ब्राउज़र द्वारा ही निर्धारित किया जाता है। तो हर ब्राउज़र आपको दूसरी सूची में विकल्प सूची बॉक्स की ऊंचाई दिखाएगा। आप इसे प्रभावित नहीं कर सकते। एकमात्र तरीका जिसे आप बदल सकते हैं वह है खरोंच से खुद का चयन करना।
यहाँ एक नमूना पैकेज का उपयोग किया गया है, जो लारवेल समुदाय में काफी लोकप्रिय है:
{!! Form::select('subdomains[]', $subdomains, null, [
'id' => 'subdomains',
'multiple' => true,
'size' => $subdomains->count(),
'class' => 'col-12 col-md-4 form-control '.($errors->has('subdomains') ? 'is-invalid' : ''),
]) !!}