改变宽度并不难。单从标签中删除width
属性,在CSS中添加width: 100%;
为#canvas
#canvas{
border: solid 1px blue;
width: 100%;
}
更改高度是有点困难:你需要的JavaScript。我已经使用jQuery,因为我更舒适。
您需要删除从画布标记height
属性,并添加这个脚本:
<script>
function resize(){
$("#canvas").outerHeight($(window).height()-$("#canvas").offset().top- Math.abs($("#canvas").outerHeight(true) - $("#canvas").outerHeight()));
}
$(document).ready(function(){
resize();
$(window).on("resize", function(){
resize();
});
});
</script>
你可以看到这个小提琴:
编辑:
要回答你的第二个题。需要Javascript
0)我改变了你的#border ID为一类,因为第一ID必须为一个html页面中的元素独特的(你不能有2个标签具有相同的ID)
.border{
border: solid 1px black;
}
#canvas{
border: solid 1px blue;
width: 100%;
}
1)改变了你的HTML添加在需要的地方的ID,两个输入端和一个按钮,以使其适应在容器
内设置的值的
<div class="row">
<div class="col-xs-2 col-sm-2 border">content left</div>
<div class="col-xs-6 col-sm-6 border" id="main-content">
<div class="row">
<div class="col-xs-6">
Width <input id="w-input" type="number" class="form-control">
</div>
<div class="col-xs-6">
Height <input id="h-input" type="number" class="form-control">
</div>
<div class="col-xs-12 text-right" style="padding: 3px;">
<button id="set-size" class="btn btn-primary">Set</button>
</div>
</div>
canvas
<canvas id="canvas"></canvas>
</div>
<div class="col-xs-2 col-sm-2 border">content right</div>
</div>
2)设置在画布的高度和宽度
3)设置的宽度值和高度形成
$("#h-input").val($("#canvas").outerHeight());
$("#w-input").val($("#canvas").outerWidth());
4)最后,只要你点击按钮,设置画布宽度和高度设置的值。如果宽度值大于容器的宽度更大然后它会调整画布到容器的宽度,而不是(否则它会破坏你的布局)
$("#set-size").click(function(){
$("#canvas").outerHeight($("#h-input").val());
$("#canvas").outerWidth(Math.min($("#w-input").val(), $("#main-content").width()));
});
在这里看到一个完整的例子https://jsfiddle.net/1a11p3ng/7/
更新2:
要具有在宽度上完全控制你可以使用这个:
<div class="container-fluid">
<div class="row">
<div class="col-xs-2 border">content left</div>
<div class="col-xs-8 border" id="main-content">
<div class="row">
<div class="col-xs-6">
Width <input id="w-input" type="number" class="form-control">
</div>
<div class="col-xs-6">
Height <input id="h-input" type="number" class="form-control">
</div>
<div class="col-xs-12 text-right" style="padding: 3px;">
<button id="set-size" class="btn btn-primary">Set</button>
</div>
</div>
canvas
<canvas id="canvas">
</canvas>
</div>
<div class="col-xs-2 border">content right</div>
</div>
</div>
<script>
$(document).ready(function(){
$("#canvas").outerHeight($(window).height()-$("#canvas").offset().top-Math.abs($("#canvas").outerHeight(true) - $("#canvas").outerHeight()));
$("#h-input").val($("#canvas").outerHeight());
$("#w-input").val($("#canvas").outerWidth());
$("#set-size").click(function(){
$("#canvas").outerHeight($("#h-input").val());
$("#main-content").width($("#w-input").val());
$("#canvas").outerWidth($("#main-content").width());
});
});
</script>
https://jsfiddle.net/1a11p3ng/8/
如果宽度过高,则剩余内容和内容右侧列将移动到上方并且喜欢中央div,但如果使用引导程序,则无法提供帮助。但是,这不是什么反应意味着什么。一个真正具有响应能力的网站将根据用户屏幕调整其大小以保持布局的原样,而无需任何外部输入,让用户设置任何可能破坏布局的大小并不意味着要做出响应的网站。
你想仅对宽度或高度做出反应吗? – valepu
谢谢,宽度和高度 – Gislef
[尝试](https://jsfiddle.net/vjdgm9pq/3/)应用引导类 – Artem