
CSS中如何让盒子自动占完其余所有宽度, 比如 <body> <div1> <div2
</div><div3></div><div4></div></div></body>div1宽度100%div2和div4宽度40pxdiv2,div3左浮动div4右...
</div>
<div3></div>
<div4></div>
</div>
</body>
div1宽度100%
div2和div4宽度40px
div2,div3左浮动
div4右浮动
div3占完剩余部分 展开
<div3></div>
<div4></div>
</div>
</body>
div1宽度100%
div2和div4宽度40px
div2,div3左浮动
div4右浮动
div3占完剩余部分 展开
4个回答
展开全部
只用CSS是实现不了的,你要么用表格,左右定义宽度,中间自动,要么写JS来控制中间DIV宽度
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery.js"></script>
<style>
.div1{ width:100%; height:25px;}
.div2{ width:40px; height:25px; float:left;border:1px solid #777;}
.div3{ float:left;border:1px solid red;}
.div4{ width:40px; height:25px; float:right;border:1px solid #777;}
</style>
</head>
<body>
<div class="div1">
<div class="div2">
2
</div>
<div class="div3">3</div>
<div class="div4">4</div>
</div>
</body>
<script>
tmntH();//加载的时候执行一次
$(window).resize(function() {tmntH();});//浏览器窗口变化时执行
function tmntH()
{
var div3=$(".div1").width()-86+'px';//div3的宽度等于div1宽度-80-6(边框线)
//alert(div3);
$(".div3").css("width",div3);
}
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery.js"></script>
<style>
.div1{ width:100%; height:25px;}
.div2{ width:40px; height:25px; float:left;border:1px solid #777;}
.div3{ float:left;border:1px solid red;}
.div4{ width:40px; height:25px; float:right;border:1px solid #777;}
</style>
</head>
<body>
<div class="div1">
<div class="div2">
2
</div>
<div class="div3">3</div>
<div class="div4">4</div>
</div>
</body>
<script>
tmntH();//加载的时候执行一次
$(window).resize(function() {tmntH();});//浏览器窗口变化时执行
function tmntH()
{
var div3=$(".div1").width()-86+'px';//div3的宽度等于div1宽度-80-6(边框线)
//alert(div3);
$(".div3").css("width",div3);
}
</script>
</body>
</html>
展开全部
可以用clac,,,因为你2.4都是固定宽度,
第3个盒子的宽度可以这样设置:width: calc(100% - 80px);
第3个盒子的宽度可以这样设置:width: calc(100% - 80px);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>_</title>
<style type="text/css">
.div1{ width:100%; }
.div2{ width:40px; float:left; background:#aaa; }
.div3{ width:calc(100% - 80px); float:left; background:#ccc; }
.div4{ width:40px; float:right; background:#eee; }
</style>
</head>
<body>
<div class="div1">
<div class="div2">2</div>
<div class="div3">3</div>
<div class="div4">4</div>
</div>
</body>
</html>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用浮动
display flex 父盒子和子盒子配合
自己研究下
display flex 父盒子和子盒子配合
自己研究下
追问
谢谢,看完了的确不错。
追答
flex是以后的趋势
楼下方法不错 但有一个缺点 就是宽度计算会以四舍五入来计算
所以很可能在某些场景实际值会少一像素 或者多一像素 导致换行或者空一边
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询