这是我的HTML:
<select id="ddlProducts" name="ddProducts">
<option>Product1 : Electronics </option>
<option>Product2 : Sports </option>
</select>
我想让产品的名称(即。'Product1', 'Product2',等等),以及它的类别(即。电子,体育等)斜体,只使用CSS。我发现了一个老问题,提到这是不可能使用HTML和CSS,但希望,现在有一个解决方案。
这是一个html css代码,用于样式选项和选择标签。
选择的选项:背景和粗体
关闭后,它看起来是斜体。
<style>
.mydropdown{
border:none;
border-bottom:2px dotted black;
display:inline;max-width:20%;
font-style: italic;
font-weight: 600;
cursor: pointer;
}
.mydropdown:hover , .myoption:active , .myoption:checked{
border:2px dotted green;
}
.myoption{
font-style: normal;
}
.mydropdown .myoption:checked,
.mydropdown .myoption:hover ,
.mydropdown .myoption:active {
font-style: italic;
font-weight: 600;
}
</style>
该元素由操作系统呈现,而不是HTML。它不能通过CSS样式。
$(function() {
var clicky;
var t=0;
$(document).mousedown(function(e) {
clicky = $(e.target);
});
$(document).mouseup(function(e) {
clicky = null;
});
$("select").focusout(function(e) {
if (typeof clicky.attr('id') !== typeof undefined && clicky.attr('id') !== false) {
$(this).parents().children("span.selected").html(clicky.html());
$(this).children('option[value="'+clicky.attr('id')+'"]').prop('selected', true);
}
$(this).parents().children("span.lists").html('');
});
$('select > option').text(function(i, text) {
var attr = $(this).attr('selected');
if (typeof attr !== typeof undefined && attr !== false) {
$(this).parents().parents().children("span.selected").html(text);
}
});
$("select").focusin(function(){
$(this).children('option').text(function(i, text) {
$(this).parents().children("span.lists").append("<span class='item' id='"+$(this).attr('value')+"'>"+text+"</span>");
});
});
});
select {
width: 0px;
height: 0px;
overflow:hidden;
outline: none;
border: none;
appearance:none;
-moz-appearance: none;
}
label{
display: inline-block;
padding: 5px 10px;
position: relative;
width: 100px;
height: 20px;
background-color:#ccc;
}
label .selected{
display: inline-block;
overflow: hidden;
width: 100%;
height: 100%;
}
label span.lists{
width: 100%;
display: inline-block;
position: absolute;
top: 100%;
left: 0px;
box-shadow: 0px 0px 2px 0px #ccc;
background-color:#fff;
z-index: 9;
}
label span.item{
display: inline-block;
width: 100%;
border-bottom: 1px solid #ccc;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<form action="?" method="GET">
<label><span class="selected">select..</span> <span class="lists"></span>
<select name="test">
<option value="1">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</option>
<option value="2" selected>item 2</option>
<option value="3">item 3</option>
<option value="4">item 4</option>
</select>
</label><br>
<label><span class="selected">select..</span> <span class="lists"></span>
<select name="test2">
<option value="1">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</option>
<option value="2">item 2</option>
<option value="3" selected>item 3</option>
<option value="4">item 4</option>
</select>
</label><br>
<button>Submit</button>
</form>
</body>
</html>
试试这个,可能会对你有帮助
[ https://codepen.io/venu9l/pen/jeNXzY][1]
现在是2017年,有可能针对特定的选择。在我的项目中,我有一个class="variations"的表,选择选项在表单元格td="value"中,选择有一个ID select#pa_color。
option元素还有一个class选项="attached"(在其他类标记中)。
如果用户作为批发客户登录,他们可以看到所有的颜色选项。但是零售客户不允许购买2种颜色的选择,所以我禁用了它们
<option class="attached" disabled>color 1</option>
<option class="attached" disabled>color 2</option>
这需要一点逻辑,但以下是我如何针对禁用的选择选项。
CSS
table.variations td.value select#pa_color option.attached:disabled {
display: none !important;
}
这样,只有批发客户才能看到我的颜色选择。
(() => {
const optionValues = document.querySelectorAll(".search-form__value");
const searchOptions = document.querySelector(".search-form__selector");
const dropdown = document.querySelector(".search-form__dropdown");
const input = document.getElementById("search-form-loc");
const selectorText = document.querySelector(".search-form__label--loc");
searchOptions.addEventListener("click", function () {
dropdownHandler();
});
optionValues.forEach((option) => {
option.addEventListener("click", function () {
updateUI(input, selectorText, this);
});
});
window.addEventListener("mouseup", function (event) {
if (event.target != dropdown) {
dropdown.classList.remove("search-form__dropdown--show");
}
});
function dropdownHandler() {
dropdown.classList.toggle("search-form__dropdown--show");
}
function updateUI(input, selectorText, referedThis) {
input.value = referedThis.textContent.trim();
selectorText.textContent = referedThis.textContent.trim();
dropdown.classList.remove("search-form__dropdown--show");
}
})();
/* CSS Reset Starts */
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: sans-serif;
color: #777;
background-color: slateblue !important;
}
/* CSS Reset Ends */
.search-form {
display: flex;
align-items: center;
width: max-content;
max-width: 700px;
margin: 100px auto;
background: #fff;
}
.search-form__label {
margin-right: 40px;
}
.search-form__selector {
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
font-size: 14px;
padding: 12px 18px;
background: #fff;
position: relative;
z-index: 1000;
}
.search-form__line {
height: 100%;
width: 1px;
background: #777;
margin-left: auto;
}
.search-form__icon {
font-size: 24px;
}
/* Dropdown */
.search-form__dropdown {
list-style: none;
position: absolute;
left: 0;
top: 100%;
box-shadow: 0 7px 30px -10px #96aa6480;
width: 100%;
min-width: max-content;
transition: 0.4s;
background-color: #fff;
opacity: 0;
visibility: hidden;
z-index: 10;
pointer-events: none;
transform: translateY(20px);
cursor: pointer;
}
.search-form__value {
padding: 7px;
}
.search-form__value:hover {
background: #0667d5;
color: #fff;
}
.pos-rel {
position: relative;
}
.search-form__dropdown--show {
opacity: 1;
visibility: visible;
pointer-events: visible;
-webkit-transform: translate(0);
-ms-transform: translate(0);
transform: translate(0);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
</head>
<body>
<form class="search-form">
<input type="hidden" name="search-form-loc" id="search-form-loc" />
<div class="pos-rel">
<div class="search-form__selector">
<p class="search-form__label search-form__label--loc">Select From List</p>
<div class="search-form__line"> </div>
<i class="fa fa-caret-down search-form__icon"></i>
</div>
<ul class="search-form__dropdown">
<li class="search-form__value" data-loc="search-form-loc">UK</li>
<li class="search-form__value" data-loc="search-form-loc">Barcelona</li>
<li class="search-form__value" data-loc="search-form-loc">Brazil</li>
<li class="search-form__value" data-loc="search-form-loc">Hungary</li>
</ul>
</div>
</form>
</body>
</html>