当 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 以保持您创建的相同样式。
希望这会有所帮助
我刚刚添加了一个 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 以保持您创建的相同样式。 希望这会有所帮助