2012-07-25 3 views
6

Dieser einfache Code funktioniert nicht in Chrome oder Safari ...CSS Box-Shadow funktioniert mit Textarea In Webkit

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Untitled Document</title> 
</head> 
<style> 
:required {box-shadow:0 0 5px red;} 
</style> 
<body> 
<form> 
<textarea required></textarea> 
</form> 
</body> 
</html> 

Es in Firefox und Opera funktioniert gut. border:1px solid red funktioniert auch gut in Webkit-Browsern. Was ist das Problem? Ich versuchte sogar textarea {display:block;} zu denken, dass es ein Inline-Problem hätte sein können.

+0

funktioniert gut für mich chromes Web-Entwickler-Tools + Hinzufügen von 'required' auf die Antwort Stackoverflow TextArea- – Ross

Antwort

13

Sie müssen hinzufügen

-webkit-appearance: none; 

auf die ehrfürchtige webkit TextArea- als gewöhnlicher Block machen zu zwingen und gelten alle CSS Sie schreiben.

See jsfiddle

+0

Ich gebe dir ein nützliches, wie es funktioniert hat. Ich denke jedoch nicht, dass dieser herstellerspezifische Code die beste Option ist. – doubleJ

+2

Die Sache ist, dass dieser herstellerspezifische Code die Ursache dafür ist, dass Ihre Stile nicht angewendet werden. Beachten Sie, dass Nicht-Webkit-Browser dieses Problem nicht aufweisen. –

+0

Ich wähle das als Antwort. Die Grenze hat das spezifische Problem gelöst, das die Frage betraf, aber dies scheint dieses Problem zu lösen, ebenso wie andere Probleme (z. B. "border-radius"). – doubleJ

0

versuchen, die Textarea über eine Klasse oder id anstelle des :required Wählers Auswahl

2

Wenn Sie dem Textfeld einer Hintergrund Erklärung keine (oder eine Hintergrund-Farbe Erklärung aus irgendeinem Grunde alles geben, außer Weiß) der Schatten wird funktionieren.

<style> 
:required { 
    background: none; 
    box-shadow:0 0 5px red; 
} 
</style> 
+0

Dies funktioniert, aber webkit enthält einen schwarzen Rand mit. – doubleJ

2

Versuchen Sie, diese

textarea:required { 
    box-shadow: 0 0 5px red; 
    -webkit-box-shadow: 0 0 5px red; 
    -moz-box-shadow: 0 0 5px red; 
    border: solid 0px transparent; // or border: none; 
}​ 

DEMO. und Read this.