So ändern Sie die Textfarbe der ersten Auswahloption

Lesezeit: 5 Minuten

Joshuas Benutzeravatar
Josua

Ich habe ein ausgewähltes Element, das mehrere Elemente enthält. Ich möchte die Farbe des ersten Elements ändern, aber anscheinend wird die Farbe nur angezeigt, wenn Sie auf das Auswahl-Dropdown klicken. Was ich möchte, ist, die Farbe (wie Grau) zu ändern, wenn die Seite geladen wird, damit Benutzer sehen können, dass die erste Optionsfarbe anders ist.

Siehe Beispiel hier…
http://jsbin.com/acucan/4/

CSS:

select{
  width: 150px;
  height: 30px;
  padding: 5px;
  color: green;
}
select option { color: black; }
select option:first-child{
  color: green;
}

html:

<select>
    <option>Item1</option>
    <option>Item2</option>
    <option>Item3</option>
</select>

  • Ich verstehe nicht, was Sie erreichen wollen. Die Elemente sind nur sichtbar, wenn das Menü geöffnet ist. Also, was ist falsch an Ihrer Lösung?

    – Wottensprengel

    12. Juli 2013 um 6:48 Uhr

  • Sprottenwels, Entschuldigung, ich habe die Frage nicht klar gestellt 🙁

    – Josua

    12. Juli 2013 um 7:02 Uhr

  • Hallo Maxi, Entschuldigung! Ich versuche mein Bestes, um auf dieser Seite zu suchen … aber ich konnte die Antwort nicht finden.

    – Josua

    12. Juli 2013 um 7:05 Uhr

  • Beantwortet das deine Frage? Wie ändere ich die Farbe des Optionstextes des Auswahlfelds?

    – Flimmer

    8. Juli 2020 um 12:47 Uhr

Wenn das erste Element als Platzhalter (leerer Wert) verwendet werden soll und Ihre Auswahl ist required dann kannst du die verwenden :invalid Pseudo-Klasse, um darauf abzuzielen.

select {
  -webkit-appearance: menulist-button;
  color: black;
}

select:invalid {
  color: green;
}
<select required>
  <option value="">Item1</option>
  <option value="Item2">Item2</option>
  <option value="Item3">Item3</option>
</select>

  • Dies färbte auch die gültigen Optionen in der Liste für mich ein. Ich konnte die erwartete Farbe mit a halten select:invalid option:not(:disabled) { color: black } Regel

    – AlbinoDürre

    3. Juni 2019 um 22:45 Uhr

  • Dies ist ein wirklich intelligenter Weg, um dieses Problem zu lösen! Danke. Hat perfekt funktioniert

    – Melvin Idema

    14. August 2019 um 13:52 Uhr

  • Warum brauchen wir -webkit-appearance: menulist-button?

    – Witali Zdanewitsch

    29. September 2019 um 20:52 Uhr

  • Die Standarddarstellung ignoriert die Farbänderung, da das Element mit plattformnativem Stil angezeigt wird.

    – Oscar Barett

    1. Oktober 2019 um 1:53 Uhr

Benutzeravatar von mnsr
mnsr

Was ist damit:

select{
  width: 150px;
  height: 30px;
  padding: 5px;
  color: green;
}
select option { color: black; }
select option:first-child{
  color: green;
}
<select>
  <option>one</option>
  <option>two</option>
</select>

http://jsbin.com/acucan/9

  • Toll! Daran habe ich noch nie gedacht, danke 🙂

    – Josua

    12. Juli 2013 um 7:00 Uhr

  • Wie ändern Sie die Farbe in Schwarz, sobald eine Option ausgewählt ist?

    – sQuijeW

    17. Oktober 2013 um 17:45 Uhr

  • alle <option> habe den color:black Für mich. (Chrom/Mac)

    – MMaschinengewehr

    31. März 2014 um 12:07 Uhr

  • Damit dies in Webkit-Browsern auf dem Mac (Chrome und Safari) funktioniert, müssen Sie Chrome für die ausgewählte Verwendung deaktivieren -webkit-appearance:none. Dadurch wird natürlich der Stil aktiviert, aber auch der Rest des ausgewählten Chroms wird entfernt, sodass Sie auch alles andere im Element neu gestalten müssen. Geige: jsfiddle.net/wFP44/1

    – Ben Färber

    13. April 2014 um 18:20 Uhr


  • @sQuijeW Genau das will ich wissen. Hat jemand einen Hinweis dazu?

    – Johnny Than

    19. Dezember 2017 um 20:35 Uhr

Für Option 1 als Platzhalter verwendet:

select:invalid { color:grey; }

Alle anderen Optionen:

select:valid { color:black; }

  • Beste Antwort bisher.

    – Erwarte Tariq

    14. Oktober 2020 um 6:06 Uhr


  • Diese Arbeit für mich. Beste Antwort!

    – Gabriele Fagnani

    15. April 2022 um 9:12 Uhr

Hier ist eine Möglichkeit, damit eine Option schwarz wird, wenn Sie sie auswählen. Wenn Sie es wieder in den Platzhalter ändern, nimmt es wieder die Platzhalterfarbe an (in diesem Fall rot).

http://jsfiddle.net/wFP44/166/

Es erfordert, dass die Optionen Werte haben.

$('select').on('change', function() {
  if ($(this).val()) {
return $(this).css('color', 'black');
  } else {
return $(this).css('color', 'red');
  }
});
select{
  color: red;
}
select option { color: black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="">Pick one...</option>
<option value="test1">Test 1</option>
<option value="test2">Test 2</option>
<option value="test3">Test 3</option>
</select>

Sie können dies tun, indem Sie CSS verwenden: JSFiddle

HTML:

<select>
    <option>Text 1</option>
    <option>Text 2</option>
    <option>Text 3</option>
</select>

CSS:

select option:first-child { color:red; }

Oder wenn Sie unbedingt JavaScript verwenden müssen (dafür nicht empfohlen): JSFiddle

Javascript:

$(function() {
    $("select option:first-child").addClass("highlight");
});

CSS:

.highlight { color:red; }

  • Leider funktioniert keines davon in Chrome 60 (PC), selbst wenn der Modifikator !important hinzugefügt wurde

    – Bill_VA

    10. August 2017 um 17:26 Uhr

Benutzeravatar von smoyth
glatt

Ich wollte das wirklich (Platzhalter sollten für Textfelder genauso aussehen wie Auswahlfelder!) und reines CSS funktionierte in Chrome nicht. Folgendes habe ich getan:

Stellen Sie zunächst sicher, dass Ihr ausgewähltes Tag ein hat .has-prompt Klasse.

Dann initialisieren Sie diese Klasse irgendwo in document.ready.

# Adds a class to select boxes that have prompt currently selected.
# Allows for placeholder-like styling.
# Looks for has-prompt class on select tag.
Mess.Views.SelectPromptStyler = Backbone.View.extend
  el: 'body'

  initialize: ->
    @$('select.has-prompt').trigger('change')

  events:
    'change select.has-prompt': 'changed'

  changed: (e) ->
    select = @$(e.currentTarget)
    if select.find('option').first().is(':selected')
      select.addClass('prompt-selected')
    else
      select.removeClass('prompt-selected')

Dann im CSS:

select.prompt-selected {
  color: $placeholder-color;
}

  • Leider funktioniert keines davon in Chrome 60 (PC), selbst wenn der Modifikator !important hinzugefügt wurde

    – Bill_VA

    10. August 2017 um 17:26 Uhr

Benutzeravatar von Flo Develop
Flo entwickeln

Dieser Code funktioniert auf Chromium und ändert die Farbe in Schwarz, sobald eine Option ausgewählt ist:

select {
  appearance: none;
}

select:invalid {
  color: green;
}

select option {
  color: black;
}

1445930cookie-checkSo ändern Sie die Textfarbe der ersten Auswahloption

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy