我有4个选择选项设置为width: 21%
;
这在台式机上效果很好,因为它们都是水平对齐的,但在移动设备上会保持不变,因为SELECT的大小会减小,保持水平对齐,并且您无法在其中显示文字。
如何使选择选项在台式机上水平对齐,在较小的屏幕上垂直对齐(一个又一个)?
我可以将width: 21%;
更改为width: 260px;
,但是有更好的方法吗?
function filter() {
var filter_num_package = document.getElementById("myInput").value.toUpperCase().trim();
var filter_num_nights = document.getElementById("myInput1").value.toUpperCase().trim();
var filter_num_people = document.getElementById("myInput2").value.toUpperCase().trim();
//loop through tr
$(" tbody tr").each(function() {
//get td value 0,1,2
var first_td = $(this).find("td:eq(0)").text().toUpperCase().trim()
var second_td = $(this).find("td:eq(1)").text().toUpperCase().trim()
var third_td = $(this).find("td:eq(2)").text().toUpperCase().trim()
//check if value matches
if (first_td.includes(filter_num_package) &&
second_td.includes(filter_num_nights) &&
third_td.includes(filter_num_people)) {
//display that row
$(this).css("display", "");
} else {
//hide that row
$(this).css("display", "none");
}
})
}
function filter1() {
//get value of last select
var values = document.getElementById("myInput3").value.toUpperCase().trim();
//check if value is not both or first option
if (values != "BOTH" && values != "") {
//hide all td which are greater then 4
$("tr").find("td:gt(4)").hide()
//loop through second tr > th
$("table tr:eq(1) th ").each(function() {
//check if the text is equal to selct value
if ($(this).text().toUpperCase().trim() === values) {
//show that th
$(this).show();
//get class 21,22..etc
var class_to_hide = $(this).attr('class');
//check th has value 21,22..etc remove colspan
$("tr").find("th:contains(" + class_to_hide + ")").attr("colspan", "")
//check td which has select option
$("tr td[data-column*=" + $(this).text() + "]").show()
} else {
//hide the th
$(this).hide();
}
})
} else {
//show 2nd tr > ths
$("table tr:eq(1) th ").show()
//show all td which is > 4
$("tr").find("td:gt(4)").show()
//add colspan again
$("tr:eq(0)").find("th:gt(4)").attr("colspan", "2")
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div align="center">
<select id="myInput" name="packages" onchange="filter()" title="Search for Package...">
<option value="" selected="selected">Select Package</option>
<option value="Bronze">Bronze</option>
<option value="Silver">Silver</option>
<option value="Gold">Gold</option>
<option value="Platinum">Platinum</option>
<option value="VIP">VIP</option>
<option value="Dearest">Dearest</option>
<option value="Once In A Lifetime">Once In A Lifetime</option>
</select>
<select id="myInput1" name="nights" onchange="filter()" title="Search for Number of Nights">
<option value="" selected="selected">Select Nights</option>
<option value="3">3 Nights</option>
<option value="4">4 Nights</option>
<option value="5">5 Nights</option>
</select>
<select id="myInput2" name="people" onchange="filter()" title="Search for number of People..">
<option value="" selected="selected">Select People</option>
<option value="1">1 Person</option>
<option value="2">2 People</option>
<option value="3">3 People</option>
<option value="4">4 People</option>
</select>
<select id="myInput3" name="view" onchange="filter1()" title="Select View">
<option value="" selected="selected">Select View</option>
<option value="Both">Both</option>
<option value="Each">Each</option>
<option value="Total">Total</option>
</select>
<table id="mytab1">
<thead>
<tr>
<th rowspan="2">PACKAGE</th>
<th rowspan="2">NIGHTS</th>
<th rowspan="2">PEOPLE</th>
<th rowspan="2">RAW</th>
<th rowspan="2">SD</th>
<th colspan="2">20</th>
<th colspan="2">21</th>
<th colspan="2">22</th>
<th colspan="2">23</th>
<th colspan="2">24</th>
<th colspan="2">25</th>
<th colspan="2">26</th>
<th colspan="2">27</th>
<th colspan="2">28</th>
<th colspan="2">29</th>
<th colspan="2">30</th>
<th colspan="2">31</th>
<th colspan="2">32</th>
<th colspan="2">33</th>
<th colspan="2">34</th>
<th colspan="2">35</th>
<th colspan="2">36</th>
</tr>
<tr>
<!-- added class here-->
<th class="20">Each</th>
<th class="20">Total</th>
<th class="21">Each</th>
<th class="21">Total</th>
<th class="22">Each</th>
<th class="22">Total</th>
<th class="23">Each</th>
<th class="23">Total</th>
<th class="24">Each</th>
<th class="24">Total</th>
<th class="25">Each</th>
<th class="25">Total</th>
<th class="26">Each</th>
<th class="26">Total</th>
<th class="27">Each</th>
<th class="27">Total</th>
<th class="28">Each</th>
<th class="28">Total</th>
<th class="29">Each</th>
<th class="29">Total</th>
<th class="30">Each</th>
<th class="30">Total</th>
<th class="31">Each</th>
<th class="31">Total</th>
<th class="32">Each</th>
<th class="32">Total</th>
<th class="33">Each</th>
<th class="33">Total</th>
<th class="34">Each</th>
<th class="34">Total</th>
<th class="35">Each</th>
<th class="35">Total</th>
<th class="36">Each</th>
<th class="36">Total</th>
</tr>
</thead>
<tbody>
<tr> <td data-column="Package"> Bronze </td> <td data-column="Nights"> 3 </td> <td data-column="People"> 1 </td> <td data-column="RAW"> Not Inc </td> <td data-column="SD"> Not Inc </td> <td data-column="WM20 Each"> -- </td> <td data-column="WM20 Total"> -- </td> <td data-column="WM21 Each"> -- </td> <td data-column="WM21 Total"> -- </td> <td data-column="WM22 Each"> -- </td> <td data-column="WM22 Total"> -- </td> <td data-column="WM23 Each"> -- </td> <td data-column="WM23 Total"> -- </td> <td data-column="WM24 Each"> -- </td> <td data-column="WM24 Total"> -- </td> <td data-column="WM25 Each"> -- </td> <td data-column="WM25 Total"> -- </td> <td data-column="WM26 Each"> -- </td> <td data-column="WM26 Total"> -- </td> <td data-column="WM27 Each"> -- </td> <td data-column="WM27 Total"> -- </td> <td data-column="WM28 Each"> -- </td> <td data-column="WM28 Total"> -- </td> <td data-column="WM29 Each"> -- </td> <td data-column="WM29 Total"> -- </td> <td data-column="WM30 Each"> -- </td> <td data-column="WM30 Total"> -- </td> <td data-column="WM31 Each"> -- </td> <td data-column="WM31 Total"> -- </td> <td data-column="WM32 Each"> $1,225 </td> <td data-column="WM32 Total"> $1,225 </td> <td data-column="WM33 Each"> -- </td> <td data-column="WM33 Total"> -- </td> <td data-column="WM34 Each"> -- </td> <td data-column="WM34 Total"> -- </td> <td data-column="WM35 Each"> $2,080 </td> <td data-column="WM35 Total"> $2,080 </td> <td data-column="WM36 Each"> -- </td> <td data-column="WM36 Total"> -- </td> </tr>
<tr> <td data-column="Package"> Bronze </td> <td data-column="Nights"> 3 </td> <td data-column="People"> 2 </td> <td data-column="RAW"> Not Inc </td> <td data-column="SD"> Not Inc </td> <td data-column="WM20 Each"> -- </td> <td data-column="WM20 Total"> -- </td> <td data-column="WM21 Each"> -- </td> <td data-column="WM21 Total"> -- </td> <td data-column="WM22 Each"> -- </td> <td data-column="WM22 Total"> -- </td> <td data-column="WM23 Each"> -- </td> <td data-column="WM23 Total"> -- </td> <td data-column="WM24 Each"> -- </td> <td data-column="WM24 Total"> -- </td> <td data-column="WM25 Each"> -- </td> <td data-column="WM25 Total"> -- </td> <td data-column="WM26 Each"> -- </td> <td data-column="WM26 Total"> -- </td> <td data-column="WM27 Each"> -- </td> <td data-column="WM27 Total"> -- </td> <td data-column="WM28 Each"> -- </td> <td data-column="WM28 Total"> -- </td> <td data-column="WM29 Each"> -- </td> <td data-column="WM29 Total"> -- </td> <td data-column="WM30 Each"> -- </td> <td data-column="WM30 Total"> -- </td> <td data-column="WM31 Each"> -- </td> <td data-column="WM31 Total"> -- </td> <td data-column="WM32 Each"> $775 </td> <td data-column="WM32 Total"> $1,550 </td> <td data-column="WM33 Each"> -- </td> <td data-column="WM33 Total"> -- </td> <td data-column="WM34 Each"> -- </td> <td data-column="WM34 Total"> -- </td> <td data-column="WM35 Each"> $1,475 </td> <td data-column="WM35 Total"> $2,950 </td> <td data-column="WM36 Each"> -- </td> <td data-column="WM36 Total"> -- </td> </tr>
</tbody>
</table>
</div>
答案 0 :(得分:1)
您已经快到了,因为在jsfiddle示例中已经有一个@media查询。您可以覆盖输入的宽度,以便在较小的屏幕上将其全角显示。
尝试在您的@media查询底部添加类似的内容:
@media only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px) {
/* add the following below the other styles in the media query: */
#myInput,
#myInput1,
#myInput2,
#myInput3 {
width: 100%; /* make the input full width */
margin-bottom: 5px; /* optional: add some spacing between the vertical inputs */
}
}