স্পষ্টতই এটি কাজ করে না:
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'>
পুরানো, তবে jquery প্রয়োজন ছাড়াই আপনি যা করছেন তা এটি করবে। লুকানো ওভারফ্লো স্ক্রোলবার থেকে মুক্তি পেয়ে যায় এবং জাভাস্ক্রিপ্ট এটিকে সঠিক আকার দেয়।
<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);
});
আপনি এটি কেবল জাভাস্ক্রিপ্ট / জিকুয়েরিতেই করতে পারেন, আপনি নিম্নলিখিত জিকুয়েরির সাহায্যে এটি করতে পারেন (ধরে নিবেন যে আপনি আপনার নির্বাচিতটিকে মাল্টিসিলেটের একটি আইডি দিয়েছেন):
$(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>
ব্যবহার আকার অ্যাট্রিবিউট সবচেয়ে বাস্তবসম্মত সমাধান কিন্তু সেখানে quirks যখন এটি প্রয়োগ করা হয় হয় নির্বাচন শুধুমাত্র দুই বা তিন বিকল্প সহ উপাদান।
সাধারণ জাভাস্ক্রিপ্টটি সঠিক মানটির আকারের বৈশিষ্ট্যটি স্বয়ংক্রিয়ভাবে সেট করতে ব্যবহার করা যেতে পারে , উদাহরণস্বরূপ এই ভাণ্ডারটি দেখুন ।
$(function() {
$("#autoheight").attr("size", parseInt($("#autoheight option").length));
});
উপরে উল্লিখিত হিসাবে, কেবল দুটি বা তিনটি বিকল্প থাকলে এই সমাধানটি সমস্যার সমাধান করে না।
আমার সম্প্রতি এই প্রয়োজন ছিল এবং এই স্ক্রিপ্টটি তৈরি করতে এই প্রশ্ন থেকে অন্যান্য পোস্ট ব্যবহার করেছি:
$("select[multiple]").each(function() {
$(this).css("height","100%")
.attr("size",this.length);
})
আপনি প্রথমে বিকল্প ট্যাগ গণনা করতে পারেন, এবং তারপরে আকার বৈশিষ্ট্যের জন্য গণনাটি সেট করতে পারেন। উদাহরণস্বরূপ, পিএইচপি-তে আপনি অ্যারে গণনা করতে পারেন এবং তারপরে অ্যারের জন্য ফোরচ লুপ ব্যবহার করতে পারেন।
<?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' : ''),
]) !!}
প্যাকেজ: https://laravelcollective.com/