2009-02-06 13 views
17

Czy istnieje jakiś elegancki sposób zastosowania określonego stylu do wszystkich elementów <input type="text"> w IE6? Mogę to zrobić za pomocą JavaScript, ale zastanawiałem się, czy istnieje bardziej elegancki sposób robienia tego.Jak style <input type = "text"> w IE6 CSS?

Uwaga - Nie mogę zastosować konkretnej klasy do wszystkich pól tekstowych ręcznie. I chciałbym avoid CSS expressions.

Odpowiedz

14

AFAIK, IE6 nie obsługuje attribute selectors, więc myślę, że odpowiedź brzmi: nie. Będziesz musiał użyć jednego z następujących:

  1. Dodaj wspólny atrybut klasy do wszystkich elementów <input type="text"/>.
  2. Użyj JavaScript, zgodnie z sugestią.

Obie rzeczy, których chcesz uniknąć. Szkoda.

+0

jQuery może sprawić, że stylizacja javascript będzie mniej bolesna, ponieważ obsługuje filtry wyboru bardzo podobne do CSS – Aleris

+1

@Alertis: prawda, ale nadal jest javascript. –

+0

Jest to wewnętrzna aplikacja internetowa, która i tak w dużej mierze zależy od JavaScript. Używanie go do stylizacji nie stanowi problemu. Zastanawiałem się, czy istnieje lepszy sposób. –

1

Czy masz również inne elementy wejściowe, które chcesz inaczej zaprojektować na element "tekstowy"? Jeśli nie, po prostu zastosować styl do wszystkich elementów wejściowych z CSS:

input { 
border: 1px #8194b2 solid; 
font : normal 100% "Tahoma", sans-serif; 
} 
+0

Niestety rzeczywiście chcą opuścić inne rodzajów nienaruszone. Będę zmieniać rzeczy, takie jak wysokość i kolor tła, więc będzie to wyglądało dość paskudnie na przykład na polu wyboru. –

+0

Rzeczywiście. Ponieważ używasz javascript tylko do kilku drobnych stylizacji, myślę, że możesz go usprawiedliwić. Nie wpłynie to na funkcjonalność mniejszości bez javascript. – Stuart

1

Czy wstawienie atrybutu klasy na Twoim elemencie wejściowym działa dla Ciebie?

input.text {

// niektóre atrybuty CSS i wartości tutaj ....

}

  • może bardziej eleganckie niż JS
8

Jeśli używasz jQuery, spróbuj dodać to do swojego onDOMready:

$('input[type="text"]').addClass('typeText'); 

Następnie w CSS można więc coś takiego:

input.typeText, input[type="text"] { 
    color:#efefef; 
}