为什么<textarea>和<textfield>没有从正文中取得font-family和font-size?
为什么Textarea
和textfield
不能从正文中获取font-family
和font-size
?
在这里看到生动的例子http://jsbin.com/ucano4
码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>texearea font</title> <style type="text/css"> body { font-family: Verdana, Geneva, sans-serif; font-size:16px } </style> </head> <body> <form action="" method="get"> <textarea name="" cols="20" rows="4"></textarea> <input name="" type="text" /> </form> <p>some text here</p> </body> </html>
如果这是一个常见的行为,那么我应该写在这样的CSS。 我需要同样的风格
body,textarea,input { font-family: Verdana, Geneva, sans-serif; font-size:16px }
XHTML中有多less其他元素不会从body {....}
获取字体样式?
默认情况下,浏览器使用操作系统控件或浏览器控件渲染大多数表单元素(textareas,文本框,button等)。 所以大部分字体属性都是从操作系统当前使用的主题中获取的。
如果要更改字体/文本样式,则必须自己定位表单元素 – 尽可能select它们应该很容易,就像刚刚完成的那样。
据我所知,只有表单元素受到影响。 closures我的头顶部: input
, button
, textarea
, select
。
某些控件不是默认inheritance字体设置。 你可以通过将其放置在CSS中来覆盖它:
textarea { font-family: inherit; font-size: inherit; }
所有浏览器都有内置的默认样式表。 这就是为什么当你制作一个没有定义任何样式的页面时, <h1>
标签是大而粗的, <strong>
使得文本变粗。 类似地, <input>
和<textarea>
元素的字体样式在默认样式中定义。
要在Firefox中看到这个样式表,把它放到你的地址栏中: resource://gre/res/forms.css
无论如何,你必须重写这些样式,就像你在最后一个例子中所做的其他样式一样。
如果您想知道还有哪些样式是定义的,请查看资源中的CSS文件。 你可以通过上面的url访问它们,或者通过在你的res
文件夹中查看firefox目录(例如: c:\program files\mozilla firefox\res
)。 这些可能会影响正常页面的样式:
- html.css
- forms.css
- quirk.css
- ua.css
我认为他的意思是说一些元素比DOM中的其他元素更具体,或者有一个更小的范围。 由于textarea存在于body中,任何为textarea定义的样式都将覆盖body {}样式。 所以,FF的默认textarea风格会覆盖你的身体风格,即使你稍后定义了它(通常是更新的东西将会优先,但是如果它在更宽的范围/更不特定的话)。