<select>
<option value="">Select your option</option>
<option value="hurr">Durr</option>
</select>
그러나 # 39, & # 39 option& 선택. 대신 라이트그레이 검은색으로 있다. 그래서 제 css 기반 솔루션을 될 수 있다는 것. jQuery 는 너무 좋아요.
이 때문에 이 옵션을 디렉토리에만 그레이요 드롭다운에서 (그러하매 클하면 화살표):
option:first {
color: #999;
}
문제는: 사람들이 어떻게 만들 자리표시자 셀레스상자레스? 하지만, 이미 답변됨 건배해요
그 결과 및 사용 중인 선택한 값은 항상 그레이요 (심지어 선택한 후 실제 옵션인지:
select {
color: #999;
}
그냥 Firefox 에서 작동됨 here& # 39 에 걸쳐 있으며, 이 질문에 어떤 발견했다, 크롬 (최소한):
<! - begin 스니핏: html 숨기십시오: > 거짓값 -;
<! - 언어: > html 로 -;
< style>; 잘못된 선택 {색상: 회색. } < /style>; < form>; <, required> 선택합니다. 옵션 값에 = " " <;; 비활성화됨 선택함 hidden> desktopplatforms Choose.< /option>;; 값 = " 0" > < 옵션이 있습니다. (가장 밸브 이렇게) 의 경우,, 오픈 < /option>; < " 1" > 때, 전원,, 옵션 값에 = 단힌 자동 열었든 전원이 공급되면 cut< /option>; < /select>; < /form>;
끝 - < 스니핏 >;!
, ',' 이 이 옵션을 모두 갖춘 option> 비활성화됨 정지점으로 < 마우스와 키보드를 사용하여 & # 39, 그냥 뽑힌 반면, ',' 아직 키보드를 통해 사용자가 display:none& # 39 를 내렸다. 이 '& # 39, & # 39, 스타일,' 그냥 # 39 는 display:none& 나열하십시오 기입란 여바바 nice& # 39;.
참고: &Quot 대한 속성 값을 사용하여 '빈' placeholder"; 옵션을 사용하면 검증 (필요한 속성),, 만일 이 옵션 isn& placeholder" " 해결하기 위해 갖고 있는 것이 아니라, 브라우저가 # 39, 별로 변화가 필요한 프롬프트합니다 목록에서 옵션을 선택할 수 있습니다.
이 방법은 apc® 확인한 다음 브라우저:
'스타일 = " 제거했을, 디스플레이: html5 의 속성 '숨겨진', '에서 none" 은혜를 디스크입니다. diskid 와이드 지원. 유사한 특징을 가지고 있다 '는' 숨겨진 요소 '디스플레이: 없음 '의 탐색기 (프로젝트 스파르탄 요구사항뿐 검사), 사파리, 빨리 Internet& 표시되어 있는 것은' 드롭다운이 '옵션을 선택할 수 없습니다.
'선택' 이 '때' 필수 '' CSS dtep 클래스 잘못된 요소가 있습니다 사용할 수 있는 스타일을 선택할 때 '요소' 의 " placeholder"; 상태. 여기서 '는' 빈 '옵션' 의 값 때문에 잘못된 자리표시자.
일단 값을 설정되었습니다 '이' 잘못된 dtep 클래스 적립율은 떨어트림. 또한 list. 강조표시할 경우 '' 유효함 수도 있습니다.
대부분의 브라우저에서 지원되는 이 dtep 클래스. 빨리 빨리 Explorer& internet&;;; 10 이상. 사용자 정의 스타일 '선택' 이 요소가 가장 효과적입니다. 경우에 따라 (즉, (Mac 에서 크롬 / 사파리), '선택' ll you& # 39 모양을 변경할 필요가 기본값입니다 시켜버리므로 디스플레이, 즉, '특정 색상' 기입란 도왔으매 배경색 '와'. 호환성에서는 emc. 대한 몇 가지 예를 들면 등을 찾을 수 있습니다. [developer.mozilla.org] [1].
Mac 의 기본 요소 모양을 크롬.
Mac 에서 변경된 국경 요소를 사용하여 크롬.
최근의 브라우저에서 필드이므로 위한 필수 솔루션, css 순결케 있습니다.
<! - begin 스니핏: js 숨기십시오: > 거짓값 -;
select:required:invalid {
color: gray;
}
option[value=""][disabled] {
display: none;
}
option {
color: black;
}
<select required>
<option value="" disabled selected>Select something...</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
끝 - < 스니핏 >;!
이 같은 일이.
HTML:
<select id="choice">
<option value="0" selected="selected">Choose...</option>
<option value="1">Something</option>
<option value="2">Something else</option>
<option value="3">Another choice</option>
</select>
CSS.
#choice option { color: black; }
.empty { color: gray; }
JavaScript:
$("#choice").change(function () {
if($(this).val() == "0") $(this).addClass("empty");
else $(this).removeClass("empty")
});
$("#choice").change();
Apc® 예:
또 이 솔루션은 작동됨 없이 아래에 Firefox 에서 JavaScript:
<! - begin 스니핏: js 숨기십시오: > 거짓값 -;
option[default] {
display: none;
}
<select>
<option value="" default selected>Select Your Age</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
끝 - < 스니핏 >;!
전 그 동안 이 같은 문제가 검색: 왔는지 구현하므로 질문, 내가 찾은 후 좋은 솔루션이 it for me, I would like to share with you guys in case 1 정도의 효과를 누릴 수 있습니다.
이것은:
<select class="place_holder dropdown">
<option selected="selected" style=" display: none;">Sort by</option>
<option>two</option>
<option>something</option>
<option>4</option>
<option>5</option>
</select>
.place_holder {
color: gray;
}
option {
color: #000000;
}
jQuery(".dropdown").change(function () {
jQuery(this).removeClass("place_holder");
});
그 후, t # 39 는 isn& 먼저 선택한 고객이 필요한 모든 색상 때문에 절감뿐만 place_holder JavaScript 코드를 클래스 '회색'.
덕분에 @user1096901, 해결 방법으로 대한 Internet&, nbsp, 익스플로러 브라우저를 추가할 수 있습니다 '클래스' 에서 다시 place_holder 경우 첫 번째 옵션이 선택되어 다시:)
<select>
<option selected disabled hidden>Default Value</option>
<option>Value 1</option>
<option>Value 2</option>
<option>Value 3</option>
<option>Value 4</option>
</select>
그러나 don& 방금 # 39, s, t like a # 39 자리표시자 that& 같은 색상의 미삭 windows용 인라인 다음과 같은 고칠 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<title>Placeholder for select tag drop-down menu</title>
</head>
<body onload="document.getElementById('mySelect').selectedIndex = 0">
<select id="mySelect" onchange="document.getElementById('mySelect').style.color = 'black'" style="color: gray; width: 150px;">
<option value="" hidden>Select your beverage</option> <!-- placeholder -->
<option value="water" style="color:black" >Water</option>
<option value="milk" style="color:black" >Milk</option>
<option value="soda" style="color:black" >Soda</option>
</select>
</body>
</html>
당연히, 적어도 select& # 39 의 기능과 분판된 수 있습니다, CSS 별도의 파일에.
나는 여기서 수정된 [David& # 39 의 오토메이티드] [1] (수락됨 답). 그는 '옵션을 선택한 videocopilot. net/tutorials. 오토메이티드 동일팔레트에 중지되 대한 속성 또한 볼 때 그런 것이 아니라,' 숨겨진 태그 태그 동일팔레트에 훨씬 낫다.
'태그' 옵션을 추가하여 숨겨짐 대한 속성 option" 선택, 이 " 못하게 됩니다. 이후 다시 선택 옵션이 못하도록 " Durr"; 옵션을 선택되었음.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 거짓값 바벨. > 거짓값 -;
<select>
<option value="" disabled selected hidden>Select your option</option>
<option value="hurr">Durr</option>
</select>
끝 - < 스니핏 >;!
[1]: # 5859221 https://stackoverflow.com/questions/5805059/how-do-i-make-a-placeholder-for-a-select-box/5859221
Here is mine:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
select:focus option.holder {
display: none;
}
<select>
<option selected="selected" class="holder">Please select</option>
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
끝 - < 스니핏 >;!
사용자가 볼 안 자리표시자의 옵션을 선택합니다. 내가 제안하세요 자리표시자 옵션을 사용할 수 있는 '숨겨진', 't need 의 속성에 진실이며당신이 don& # 39 는 이를 위해 선택한' 속성을 디바이스입니다. 정보기술 (it) 을 첫 번째 동일팔레트에 됩니다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
select:not(:valid) {
color: #999;
}
<select required>
<option value="" hidden>Select your option</option>
<option value="0">First option</option>
<option value="1">Second option</option>
</select>
끝 - < 스니핏 >;!
내가 보고 정답을 조짐을 보이고 있지만, 이 모든 것을 가지고 이 약간만이라도 내 해결책:
<! - begin 스니핏: js 숨기십시오: > 거짓값 -;
select {
color: grey;
}
option {
color: black;
}
option[default] {
display: none;
}
<select>
<option value="" default selected>Select your option</option>
<option value="hurr">Durr</option>
</select>
끝 - < 스니핏 >;!
사용하는 경우 각 http://www. gnu. 다음과 같습니다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
<select>
<option [ngValue]="undefined" disabled selected>Select your option</option>
<option [ngValue]="hurr">Durr</option>
</select>
끝 - < 스니핏 >;!
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
form select:invalid {
color: gray;
}
form select option:first-child {
color: gray;
}
form select:invalid option:not(:first-child) {
color: black;
}
<form>
<select required>
<option value="">Select Planet...</option>
<option value="earth">Earth</option>
<option value="pandora">Pandora</option>
</select>
</form>
끝 - < 스니핏 >;!
행운을 빕니다.
또다른 가능성을 JavaScript:
$('body').on('change', 'select', function (ev){
if($(this).find('option:selected').val() == ""){
$(this).css('color', '#999');
$(this).children().css('color', 'black');
}
else {
$(this).css('color', 'black');
$(this).children().css('color', 'black');
}
});
[이스피들] [1]
내가 나를 위해 일할 수 있기 때문에 현재 couldn& # 39, t get 이 모든 것이 필요 없고 (2) (1) default 로 반품하십시오 할 수 있는 옵션을 선택할 수 있습니다. 그래서 here& 사용하는 경우, 무거운 것 # 39 의 옵션을 포함한다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var $selects = $('select');
$selects.change(function () {
var option = $('option:default', this);
if(option && option.is(':selected')) {
$(this).css('color', '#999');
}
else {
$(this).css('color', '#555');
}
});
$selects.each(function() {
$(this).change();
});
option {
color: #555;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="in-op">
<option default selected>Select Option</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
끝 - < 스니핏 >;!
이것은 CSS 솔루션을 사용할 수 있는 아름다운. 내용이 포함된 후 추가 (및 nnt 기준으로 포지셔닝됩니다 컨테이너입니다) 요소 ( 이후 통해 dtep 클래스 ).
It gets 에서 정의된 자리표시자 속성을 사용하여 해당 텍스트 내가 어디서 디렉티브을 ( 속성 (자리표시자) ). 또 다른 주요 요인은 포인터입니다 이벤트: 없음 - 클릭하는 자리표시자 텍스트 선택 (select 를 통과할 수 있습니다. 그렇지 않으면 드롭다운하십시오 won& # 39, t 누르면 텍스트를.
내가 내 스스로 선택할 수 있지만, 보통 나는 것을 알 수 있는 추가 .empty 클래스용 디렉티브을 각 자도으로 / 절감뿐만 .ng-empty 가져다줄래요 (I solaris. it& # 39 의 버전 1.2 m I& # 39, 각도 때문에 오는 내 코드 예제).
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var app = angular.module("soDemo", []);
app.controller("soDemoController", function($scope) {
var vm = {};
vm.names = [{
id: 1,
name: 'Jon'
},
{
id: 2,
name: 'Joe'
}, {
id: 3,
name: 'Bob'
}, {
id: 4,
name: 'Jane'
}
];
vm.nameId;
$scope.vm = vm;
});
app.directive('soSelect', function soSelect() {
var directive = {
restrict: 'E',
require: 'ngModel',
scope: {
'valueProperty': '@',
'displayProperty': '@',
'modelProperty': '=',
'source': '=',
},
link: link,
template: getTemplate
};
return directive;
/////////////////////////////////
function link(scope, element, attrs, ngModelController) {
init();
return;
///////////// IMPLEMENTATION
function init() {
initDataBinding();
}
function initDataBinding() {
ngModelController.$render = function() {
if (scope.model === ngModelController.$viewValue) return;
scope.model = ngModelController.$viewValue;
}
scope.$watch('model', function(newValue) {
if (newValue === undefined) {
element.addClass('empty');
return;
}
element.removeClass('empty');
ngModelController.$setViewValue(newValue);
});
}
}
function getTemplate(element, attrs) {
var attributes = [
'ng-model="model"',
'ng-required="true"'
];
if (angular.isDefined(attrs.placeholder)) {
attributes.push('placeholder="{{placeholder}}"');
}
var ngOptions = '';
if (angular.isDefined(attrs.valueProperty)) {
ngOptions += 'item.' + attrs.valueProperty + ' as ';
}
ngOptions += 'item.' + attrs.displayProperty + ' for item in source';
ngOptions += '"';
attributes.push('ng-options="' + ngOptions + '"');
var html = '<select ' + attributes.join(' ') + '></select>';
return html;
}
});
so-select {
position: relative;
}
so-select select {
font-family: 'Helvetica';
display: inline-block;
height: 24px;
width: 200px;
padding: 0 1px;
font-size: 12px;
color: #222;
border: 1px solid #c7c7c7;
border-radius: 4px;
}
so-select.empty:before {
font-family: 'Helvetica';
font-size: 12px;
content: attr(placeholder);
position: absolute;
pointer-events: none;
left: 6px;
top: 3px;
z-index: 0;
color: #888;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="soDemo" ng-controller="soDemoController">
<so-select value-property="id" display-property="name" source="vm.names" ng-model="vm.nameId" placeholder="(select name)"></so-select>
</div>
끝 - < 스니핏 >;!
다음 솔루션이므로 시뮬레이션합니다 자리표시자 관련이 있기 때문에 '입력 [유형 = " text";]' 한 요소:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
$('.example').change(function () {
$(this).css('color', $(this).val() === '' ? '#999' : '#555');
});
.example {
color: #999;
}
.example > option {
color: #555;
}
.example > option[value=""] {
color: #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="example">
<option value="">Select Option</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
끝 - < 스니핏 >;!
네가 해야 할 일은 거의 없이 단순한 데이터 속성뿐 목록을 만들 수 있습니다. 이 코드는 자동으로 돌리고 목록을 선택할 수 있는 드롭다운이. 또한 '숨겨진' 입력 값을 가질 수 있도록 자도으로 선택한 형태로 사용할 수 있도록.
입력:
<ul class="select" data-placeholder="Role" data-name="role">
<li data-value="admin">Administrator</li>
<li data-value="mod">Moderator</li>
<li data-value="user">User</li>
</ul>
출력:
<div class="ul-select-container">
<input type="hidden" name="role" class="hidden">
<div class="selected placeholder">
<span class="text">Role</span>
<span class="icon">▼</span>
</div>
<ul class="select" data-placeholder="Role" data-name="role">
<li class="placeholder">Role</li>
<li data-value="admin">Administrator</li>
<li data-value="mod">Moderator</li>
<li data-value="user">User</li>
</ul>
</div>
<! - begin 스니핏: js 숨기십시오: 진정한 콘솔: 진정한 바벨. > 거짓값 -;
// Helper function to create elements faster/easier
// https://github.com/akinuri/js-lib/blob/master/element.js
var elem = function(tagName, attributes, children, isHTML) {
let parent;
if (typeof tagName == "string") {
parent = document.createElement(tagName);
} else if (tagName instanceof HTMLElement) {
parent = tagName;
}
if (attributes) {
for (let attribute in attributes) {
parent.setAttribute(attribute, attributes[attribute]);
}
}
var isHTML = isHTML || null;
if (children || children == 0) {
elem.append(parent, children, isHTML);
}
return parent;
};
elem.append = function(parent, children, isHTML) {
if (parent instanceof HTMLTextAreaElement || parent instanceof HTMLInputElement) {
if (children instanceof Text || typeof children == "string" || typeof children == "number") {
parent.value = children;
} else if (children instanceof Array) {
children.forEach(function(child) {
elem.append(parent, child);
});
} else if (typeof children == "function") {
elem.append(parent, children());
}
} else {
if (children instanceof HTMLElement || children instanceof Text) {
parent.appendChild(children);
} else if (typeof children == "string" || typeof children == "number") {
if (isHTML) {
parent.innerHTML += children;
} else {
parent.appendChild(document.createTextNode(children));
}
} else if (children instanceof Array) {
children.forEach(function(child) {
elem.append(parent, child);
});
} else if (typeof children == "function") {
elem.append(parent, children());
}
}
};
// Initialize all selects on the page
$("ul.select").each(function() {
var parent = this.parentElement;
var refElem = this.nextElementSibling;
var container = elem("div", {"class": "ul-select-container"});
var hidden = elem("input", {"type": "hidden", "name": this.dataset.name, "class": "hidden"});
var selected = elem("div", {"class": "selected placeholder"}, [
elem("span", {"class": "text"}, this.dataset.placeholder),
elem("span", {"class": "icon"}, "▼", true),
]);
var placeholder = elem("li", {"class": "placeholder"}, this.dataset.placeholder);
this.insertBefore(placeholder, this.children[0]);
container.appendChild(hidden);
container.appendChild(selected);
container.appendChild(this);
parent.insertBefore(container, refElem);
});
// Update necessary elements with the selected option
$(".ul-select-container ul li").on("click", function() {
var text = this.innerText;
var value = this.dataset.value || "";
var selected = this.parentElement.previousElementSibling;
var hidden = selected.previousElementSibling;
hidden.value = selected.dataset.value = value;
selected.children[0].innerText = text;
if (this.classList.contains("placeholder")) {
selected.classList.add("placeholder");
} else {
selected.classList.remove("placeholder");
}
selected.parentElement.classList.remove("visible");
});
// Open select dropdown
$(".ul-select-container .selected").on("click", function() {
if (this.parentElement.classList.contains("visible")) {
this.parentElement.classList.remove("visible");
} else {
this.parentElement.classList.add("visible");
}
});
// Close select when focus is lost
$(document).on("click", function(e) {
var container = $(e.target).closest(".ul-select-container");
if (container.length == 0) {
$(".ul-select-container.visible").removeClass("visible");
}
});
.ul-select-container {
width: 200px;
display: table;
position: relative;
margin: 1em 0;
}
.ul-select-container.visible ul {
display: block;
padding: 0;
list-style: none;
margin: 0;
}
.ul-select-container ul {
background-color: white;
border: 1px solid hsla(0, 0%, 60%);
border-top: none;
-webkit-user-select: none;
display: none;
position: absolute;
width: 100%;
z-index: 999;
}
.ul-select-container ul li {
padding: 2px 5px;
}
.ul-select-container ul li.placeholder {
opacity: 0.5;
}
.ul-select-container ul li:hover {
background-color: dodgerblue;
color: white;
}
.ul-select-container ul li.placeholder:hover {
background-color: rgba(0, 0, 0, .1);
color: initial;
}
.ul-select-container .selected {
background-color: white;
padding: 3px 10px 4px;
padding: 2px 5px;
border: 1px solid hsla(0, 0%, 60%);
-webkit-user-select: none;
}
.ul-select-container .selected {
display: flex;
justify-content: space-between;
}
.ul-select-container .selected.placeholder .text {
color: rgba(0, 0, 0, .5);
}
.ul-select-container .selected .icon {
font-size: .7em;
display: flex;
align-items: center;
opacity: 0.8;
}
.ul-select-container:hover .selected {
border: 1px solid hsla(0, 0%, 30%);
}
.ul-select-container:hover .selected .icon {
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="select" data-placeholder="Role" data-name="role">
<li data-value="admin">Administrator</li>
<li data-value="mod">Moderator</li>
<li data-value="user">User</li>
</ul>
<ul class="select" data-placeholder="Sex" data-name="sex">
<li data-value="male">Male</li>
<li data-value="female">Female</li>
</ul>
끝 - < 스니핏 >;!
< hr>;
<div class="li-select-container">
<input type="text" readonly="" placeholder="Role" title="Role">
<span class="arrow">▼</span>
<ul class="select">
<li class="placeholder">Role</li>
<li data-value="admin">Administrator</li>
<li data-value="mod">Moderator</li>
<li data-value="user">User</li>
</ul>
</div>
초기화하지:
new Liselect(document.getElementsByTagName("ul")[0]);
자세한 시험: [이스피들] [1], < strike> /strike> GitHub<;;; (renamed).
< hr>;
입력:
<select name="role" data-placeholder="Role" required title="Role">
<option value="admin">Administrator</option>
<option value="mod">Moderator</option>
<option>User</option>
</select>
< sub> < sub>;;;
new Advancelect(document.getElementsByTagName("select")[0]);
출력:
<div class="advanced-select">
<input type="text" readonly="" placeholder="Role" title="Role" required="" name="role">
<span class="arrow">▼</span>
<ul>
<li class="placeholder">Role</li>
<li data-value="admin">Administrator</li>
<li data-value="mod">Moderator</li>
<li>User</li>
</ul>
</div>
[이스피들] [3], 깃허브.
레이블에 만드시겠습니까 상단형 선택 "" class = " <, 라벨, hidden-label". = " 대한 IsActive";
"" .hidden-label { 위치: 절대. 여백 가기: .34rem. 왼쪽 여백에: .56rem. 글꼴 스타일. 기울임꼴의. 포인터입니다 이벤트: 없음; } "" "포인터입니다 이벤트: 없음 "으로 표시할 수 있습니다) 를 누르면 숨겨져 있는 레이블, 옵션을 선택하면.
[태그: 각] [태그 css] [html 태그:]