我正在尝试通过从列表中选择字体来更改textarea和容器中显示的文本的字体系列和字体大小,应修复字体大小。我也在尝试在拾取字体时更改背景颜色。
那是我的代码:
<script type="text/javascript">
function changeFont(_name) {
document.body.style.fontFamily = _name;
document.textarea = _name;
}
</script>
</head>
<body style="font-family">
<form id="myform">
<input type="text" />
<button>erase</button>
<select id="fs" onchange="changeFont(this.value);">
<option value="arial">Arial</option>
<option value="verdana">Verdana</option>
<option value="impact">Impact</option>
<option value="'ms comic sans'">MS Comic Sans</option>
</select>
<div align="left">
<textarea style="resize: none;" id="mytextarea"
cols="25" rows="3" readonly="readonly" wrap="on">
Textarea
</textarea>
<div id='container'>
<div id='float'>
<p>This is a container</p>
</div>
</form>
</body>
当我在浏览器中尝试时,字体系列在文本区域中不会改变。它只会在容器中发生变化。我现在也知道如何在选择字体系列时为容器和textarea设置新的字体大小和背景。
我会感谢任何帮助人员!
答案 0 :(得分:47)
完整的解决方案:
<强> HTML:强>
<form id="myform">
<button>erase</button>
<select id="fs">
<option value="Arial">Arial</option>
<option value="Verdana ">Verdana </option>
<option value="Impact ">Impact </option>
<option value="Comic Sans MS">Comic Sans MS</option>
</select>
<select id="size">
<option value="7">7</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
</form>
<br/>
<textarea class="changeMe">Text into textarea</textarea>
<div id="container" class="changeMe">
<div id="float">
<p>
Text into container
</p>
</div>
</div>
<强> jQuery的:强>
$("#fs").change(function() {
//alert($(this).val());
$('.changeMe').css("font-family", $(this).val());
});
$("#size").change(function() {
$('.changeMe').css("font-size", $(this).val() + "px");
});
在这里小提琴:http://jsfiddle.net/AaT9b/
答案 1 :(得分:5)
在我看来,只需在主体上设置一个类,并根据该类在css中设置font-family,这将是一个更简洁的解决方案。
不知道在你的情况下这是否是一个选项。
答案 2 :(得分:1)
在某些浏览器中,字体是为textareas和输入设置的,因此它们不会从较高元素继承字体。所以,我认为您需要为每个textarea应用字体样式并在文档中输入(而不仅仅是正文)。
一个想法可能是在主体上添加clases,然后使用CSS来相应地设置文档的样式。
答案 3 :(得分:0)
如果您只想更改TEXTAREA中的字体,则只需将原始代码中的changeFont()函数更改为:
function changeFont(_name) {
document.getElementById("mytextarea").style.fontFamily = _name;
}
然后选择字体只会在TEXTAREA中改变字体。