По спецификации HTML в <option>
нельзя вставить ссылку, если все-таки её туда вставить, то работать она не будет. В таких случаях можно сделать перенаправление браузера по клику на JS или имитацию селекта другими элементами.
<select onchange="window.location.href = this.options[this.selectedIndex].value">
<option value=""></option>
<option value="https://example.com/?brand=1">Peronda</option>
<option value="https://example.com/?brand=2">Porcelanite Dos</option>
<option value="https://example.com/?brand=3">Piemme Valentino</option>
<option value="https://example.com/?brand=4">Dune</option>
<option value="https://example.com/?brand=5">Atlas Concorde</option>
<option value="https://example.com/?brand=6">Colorker</option>
<option value="https://example.com/?brand=7">Golden Tile</option>
<option value="https://example.com/?brand=8">Grespania</option>
<option value="https://example.com/?brand=9">Vallelunga</option>
<option value="https://example.com/?brand=10">Fanal</option>
</select>
Пример:
<select class="select">
<option value=""></option>
<option value="https://example.com/?brand=1">Peronda</option>
<option value="https://example.com/?brand=2">Porcelanite Dos</option>
<option value="https://example.com/?brand=3">Piemme Valentino</option>
<option value="https://example.com/?brand=4">Dune</option>
<option value="https://example.com/?brand=5">Atlas Concorde</option>
<option value="https://example.com/?brand=6">Colorker</option>
<option value="https://example.com/?brand=7">Golden Tile</option>
<option value="https://example.com/?brand=8">Grespania</option>
<option value="https://example.com/?brand=9">Vallelunga</option>
<option value="https://example.com/?brand=10">Fanal</option>
</select>
<script>
$(document).ready(function(){
$('.select').change(function(){
window.location.href = $(this).val();
});
});
</script>
Пример:
C использованием атрибута data
<select class="select form-control">
<option value=""></option>
<option value="1" data-url="https://example.com/?brand=1">Peronda</option>
<option value="2" data-url="https://example.com/?brand=2">Porcelanite Dos</option>
<option value="3" data-url="https://example.com/?brand=3">Piemme Valentino</option>
<option value="4" data-url="https://example.com/?brand=4">Dune</option>
<option value="5" data-url="https://example.com/?brand=5">Atlas Concorde</option>
<option value="6" data-url="https://example.com/?brand=6">Colorker</option>
<option value="7" data-url="https://example.com/?brand=7">Golden Tile</option>
<option value="8" data-url="https://example.com/?brand=8">Grespania</option>
<option value="9" data-url="https://example.com/?brand=9">Vallelunga</option>
<option value="10" data-url="https://example.com/?brand=10">Fanal</option>
</select>
<script>
$(document).ready(function(){
$('.select').change(function(){
window.location.href = $('option:selected',this).data('url');
});
});
</script>
Пример:
В целях SEO-перелинковки, в коде страницы должны находится ссылки <a>
, в таком случаи можно имитировать <select>
другими элементами.
HTML-разметка:
<div class="selectlink">
<div class="selectlink-control">Производитель</div>
<ul>
<li><a href="https://example.com/?brand=1">Peronda</a></li>
<li><a href="https://example.com/?brand=2">Porcelanite Dos</a></li>
<li><a href="https://example.com/?brand=3">Piemme Valentino</a></li>
<li><a href="https://example.com/?brand=4">Dune</a></li>
<li><a href="https://example.com/?brand=5">Atlas Concorde</a></li>
<li><a href="https://example.com/?brand=6">Colorker</a></li>
<li><a href="https://example.com/?brand=7">Golden Tile</a></li>
<li><a href="https://example.com/?brand=8">Grespania</a></li>
<li><a href="https://example.com/?brand=9">Vallelunga</a></li>
<li><a href="https://example.com/?brand=10">Fanal</a></li>
</ul>
</div>
CSS:
.selectlink {
position: relative;
display: inline-block;
width: 200px;
text-align: left;
margin: 10px;
}
.selectlink-control {
position: relative;
padding: 10px 15px;
border: 1px solid #dcdfe6;
border-radius: 4px;
background: #fff;
cursor: pointer;
}
.selectlink-control:after {
content: '';
border: 5px solid transparent;
border-top: 5px solid #999;
position: absolute;
top: 50%;
right: 15px;
margin-top: -3px;
}
.selectlink ul {
display: none;
box-sizing: border-box;
margin: 0;
padding: 0;
width: 100%;
height: auto;
max-height: 200px;
position: absolute;
top: 100%;
left: 0px;
border: 1px solid #dadada;
border-top: none;
background: #fff;
z-index: 9999;
overflow: auto;
user-select: none;
}
.selectlink li {
display: block;
margin: 0;
padding: 0;
}
.selectlink li a {
position: relative;
display: block;
margin: 0;
padding: 4px 6px 4px 15px;
font-weight: normal;
font-size: 1em;
line-height: 1.1;
cursor: pointer;
text-decoration: none;
color: #333;
}
.selectlink li a:hover {
background: #03a2ff;
color: #fff;
}
@media screen and (max-width: 700px) {
.body_pointer {
cursor: pointer;
}
}
cursor: pointer
, в коде реализована возможность закрыть выпадающее меню по клику вне области селекта (добавлением класса «body_pointer» к <body>
).JQuery:
$(function() {
$(".selectlink-control").click(function(){
var $menu_popup = $(this).next();
$menu_popup.slideToggle(200, function(){
$('.selectlink ul').not($menu_popup).slideUp(200);
if ($menu_popup.is(':hidden')) {
$('body').removeClass('body_pointer');
} else {
$('body').addClass('body_pointer');
}
});
return false;
});
$(document).on('click', function(e){
if (!$(e.target).closest('.selectlink').length){
$('body').removeClass('body_pointer');
$('.selectlink ul').slideUp(200);
}
});
});