Javascript <;部门>;在html中获取自动宽度而不进行初始化
我创建了一个迷宫,从用户那里获取高度和宽度值。我为迷宫对象指定了背景色,但我希望背景宽度与迷宫宽度的大小相同。如果迷宫的宽度变大,背景也会变大。我该怎么做?这是我的html代码Javascript <;部门>;在html中获取自动宽度而不进行初始化,javascript,html,css,Javascript,Html,Css,我创建了一个迷宫,从用户那里获取高度和宽度值。我为迷宫对象指定了背景色,但我希望背景宽度与迷宫宽度的大小相同。如果迷宫的宽度变大,背景也会变大。我该怎么做?这是我的html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style type="text/css"> .mze {
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
.mze
{
color: Blue;
text-align: center;
background-color: Yellow;
width: 100%;
}
.prompt
{
background-color: Yellow;
color: Red;
}
</style>
<script src="mazegenerator.js"></script>
<title>Maze</title>
</head>
<body>
<div id="maze">
<form style="text-align: center" name="forma1">
<br/>
<label>
HEIGHT: </label>
<input type="text" id="height" name="height" autofocus="autofocus"
maxlength="2" size="6" value="" />
<label>
WIDTH: </label>
<input type="text" id="width" name="width" maxlength="2" size="6" value="" />
<br/>
<br/>
<span id="prompt"></span>
<br/>
<input type="button" alt="submit" onclick="CreateMaze();"
value="Generate" style="margin-top: 10px;">
</form>
</div>
<div id="Mzobj" align="center">
<pre id="out" class="mze"></pre>
</div>
</body>
</html>
mze先生
{
颜色:蓝色;
文本对齐:居中;
背景颜色:黄色;
宽度:100%;
}
促使
{
背景颜色:黄色;
颜色:红色;
}
迷宫
高度:
宽度:
这是js部分,我从用户那里获取值:
function CreateMaze(){
//gets the value of Height & Width from user
var a = parseInt(document.getElementById("height").value);
var b = parseInt(document.getElementById("width").value);
//Values of Height and Width can't be zero
if (a == 0) {
document.getElementById('prompt').innerHTML = "<b>height</b> is invalid";
document.getElementById('prompt').className = "prompt";
return;
}
if (b == 0) {
document.getElementById('prompt').innerHTML = "<b>width</b> is invalid";
document.getElementById('prompt').className = "prompt";
return;
}
//Width can't be smaller than height
if (a > b) {
document.getElementById('prompt').innerHTML = "not possible";
document.getElementById('prompt').className = "prompt";
}
else {
document.getElementById('prompt').innerHTML = "";
document.getElementById('prompt').className = "";
}
document.getElementById('out').innerHTML = display(maze(a,b));
}
//Display the maze
function display(m) {
var text= [];
for (var j= 0; j<m.x*2+1; j++) {
var line= [];
if (0 == j%2)
for (var k=0; k<m.y*4+1; k++)
if (0 == k%4)
line[k]= '+';
else
if (j>0 && m.verti[j/2-1][Math.floor(k/4)])
line[k]= ' ';
else
line[k]= '-';
else
for (var k=0; k<m.y*4+1; k++)
if (0 == k%4)
if (k>0 && m.horiz[(j-1)/2][k/4-1])
line[k]= ' ';
else
line[k]= '|';
else
line[k]= ' ';
if (0 == j) line[1]=line[3]=' ',line[2]= 'S';
if (m.x*2-1 == j) line[4*m.y]= 'E';
text.push(line.join('')+'\r\n');
}
return text.join('');
函数CreateMaze(){
//从用户处获取高度和宽度的值
var a=parseInt(document.getElementById(“height”).value);
var b=parseInt(document.getElementById(“宽度”).value);
//高度和宽度的值不能为零
如果(a==0){
document.getElementById('prompt').innerHTML=“高度无效”;
document.getElementById('prompt').className=“prompt”;
返回;
}
如果(b==0){
document.getElementById('prompt').innerHTML=“宽度无效”;
document.getElementById('prompt').className=“prompt”;
返回;
}
//宽度不能小于高度
如果(a>b){
document.getElementById('prompt').innerHTML=“不可能”;
document.getElementById('prompt').className=“prompt”;
}
否则{
document.getElementById('prompt').innerHTML=“”;
document.getElementById('prompt').className=“”;
}
document.getElementById('out').innerHTML=display(迷宫(a,b));
}
//展示迷宫
功能显示(m){
var text=[];
对于(var j=0;j,只要用户输入的宽度以像素为单位,就可以在“CreateMaze()”函数的末尾添加以下代码
document.getElementById(“Mzobj”).setAttribute(“样式”,“宽度:”+b+“px”);
如果不是,则您需要找出如何将输入的宽度转换为在HTML页面中工作的度量值。如果是字符数,则需要找出字体中字符所占的单位数并进行计算。var width=*
下面的链接应该有助于计算单位
最有可能的是,你的js导致了这个问题。我同意@Huangism…事实上,style
属性被添加到div
中,这让我觉得是js设置了宽度。看那里,如果你仍然坚持发布js。我已经发布了js@BallbinAh,是的,我看到了…抱歉运行了一点今天速度很慢。在显示javascript中不使用括号有什么原因吗?很难理解。