当 Javascript 函数运行时,如何防止我的布局中断?

How can I prevent my layout from disrupting when a Javascript function runs?

我刚刚添加了一个 Javascript 的 changeText 功能,使我的网站具有放大文本的辅助功能,以便视障用户能够更轻松地使用我的网站。但是,单击运行 javascript 的 'larger text' 图标后,它会打乱我的布局。我该如何纠正这个问题?会是CSS吗?这是网站:

[www.me14ch.leedsnewmedia.net/slate][1]

放大文本图标位于 header 的右侧。或者如果这有帮助,这是代码:

<div id="font-size-buttons">
   <a href="#" onclick="changeText(100)"><img src="http://www.me14ch.leedsnewmedia.net/slate/images2/fontmin.png" width="25" height"25" alt="Switch to original text size and colours"></a>
  <a href="#" onclick="changeText(150)"><img src="http://www.me14ch.leedsnewmedia.net/slate/images2/fontmax.png" width="30" height="30" alt="Switch to larger text and improved colour contrast"></a>
  </div>

和 Javascript:

function changeText(size) {
var obj = document.getElementsByTagName('html')[0];
obj.style.fontSize = size + '%';

}

查看网站是的,你需要添加css来绘制你的网站并限制网站的一部分,这样js就不会影响你不想要的东西。

但您需要提供更多网站代码,以便我们为您提供帮助

您的 div#font-size-buttons 正在继承您的新 font-size:150% 规则,该规则在点击后将其高度提升至 48 像素。
为了解决这个问题,您需要将其高度固定为 32px,如下所示:

#font-size-buttons {
  float: right;
  clear: both;
  margin-right: 5px;
  font-size: 32px;
}   

希望对您有所帮助

编辑:

您还需要这些:

.intro {
  clear: both;
  text-align: left;
  padding: 4px;
  line-height: 1.5;
}
.subgroup1 {
  width: 64.54%;
  float: left;
  margin-bottom: 25px;
  margin-top: 5px;
}   

(我从 .subgroup 中删除了固定高度并减少了边距,以使 div 更 "elastic")

#footer {
  max-width: 1000px;
  width: 100%;
  color: black;
  bottom: 0;
  position: relative;
  font-family: arial, palatino sans-serif;
  font-size: 0.75em;
  text-align: center;
  background: #A3CC39;
  clear: both;
  border-radius: 5px;
}   

(再次 - 从页脚中删除 height:20px 以使 div 自行调整)

我很快看了看,改变你的整个 css 会太长,所以我建议的解决方法是你的 + 和 - 只改变你的包装 div 因为这是你的主要内容。对于您的 js 中的此更改

<script src="accessjava.js">
function changeText(size) {
var obj = document.getElementsById('wrapper')[0];
obj.style.fontSize = size + '%';
}
</script>

并在 body 变化中

<div class="wrapper">

成为

<div id="wrapper">

最后一件事是在您的 css 中将 .wrapper 替换为 #wrapper 以保持您创建的相同样式。 希望这会有所帮助