左边的DIV设定了固定的宽度,右边的DIV如何自适应地填满剩下的屏幕宽度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了左边的DIV设定了固定的宽度,右边的DIV如何自适应地填满剩下的屏幕宽度?相关的知识,希望对你有一定的参考价值。

左边的DIV设定了固定的宽度,右边的DIV如何自适应地填满剩下的屏幕宽度?自适应是为了满足不同电脑的分辨率。我已经设定了DIV等高了。
<style type="text/css">
/*CSS部分*/
*margin:0;padding:0;font-family:"微软雅黑"; /*去除默认间隔,设定全部字体为微软雅黑*/
bodybackground-image: url(images/wooden.jpg); background-repeat:no-repeat; background-size:cover; -moz-background-size: cover; /*网页背景*/

#sidebarwidth: 210px; height:auto; background-color: #ebb058;float:left; position: fixed;

#containerwidth: auto;height: auto;border: 2px solid #400080;margin-left: 210px; float: left; position: absolute;
</style>

<!--html部分-->
<body>
<!--div盒子模型 -->
<div id="sidebar"><!--左边的DIV-->
</div>

<div id="container"><!--右边的DIV-->
</div>
<!--javascript部分-->
<!--div等高-->
document.getElementById("sidebar").style.height = document.getElementById("container").offsetHeight + "px";
</script>
</body>

<head>
<style>
.row
display: flex;
wrap: no-wrap;

.box1
width: 100px;
height: 100px;

.box2
width: 100%;
height: 200px;
background: black;
color: #fff;

</style>
</head>
<body>
<div class="row">
<div class="box1">
<h1>box1</h1>
</div>
<div class="box2">
<h1>box2</h1>
</div>
</div>
</body>

可以简单参考一下,上面用了flex布局。(我也是最近才学的)

至于用浮动来实现,一时半会我还真想不起要怎么实现了,再想想看......

参考技术A

无需js、无需浮动,直接用CSS即可搞定这样的布局,主要代码如下:

#sidebar, #container min-height:400px; /* 视具体情况 */
#sidebar width:210px; background-color:#ebb058; position:absolute; top:0; left:0;
#container margin-left:210px; border:2px solid #400080;

居然没悬赏分的说……

追问

用你的绝对定位没办法固定sidebar不跟随页面滚动。暂时发现只有position:fixed才能固定。

追答

你想固定sidebar的话,将position:absolute改为position:fixed即可。

参考技术B

<!doctype html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<style type="text/css">

*margin: 0;

body

width: 100%;

height: 100%;

.l

float: left;

width: 131px;

height: 45px;

background-color: #aaa;

.r

height: 45px;

background-color: #0f0;

</style>

</head>

<body>

<div>左</div>

<div>右</div>

</body>

</html>

参考技术C 右边盒子设置宽度百分之百,margin-left是左边盒子的宽度就可以了
或者伸缩布局,设置flex

右边固定,左边自适应

右边固定,左边自适应

原理:两节点并排,左节点浮动,右节点向最左边靠齐,此时浮动元素会遮住左节点,因为块状元素默认长度100%;

 

html

<div id="wrap">
  <div id="sidebar" style="height:340px;">固定宽度区</div>
  <div id="content" style="height:340px;">自适应区</div>
</div>
<div id="footer">后面的一个DIV,以确保前面的定位不会导致后面的变形</div>

css

#wrap {
    overflow: hidden; *zoom: 1;
  }
  #content ,#sidebar {
    background-color: #eee; 
  }
  #sidebar {
    float: right; width: 300px;
  }
  #content {
    margin-right: 310px;
  }
  #footer {background-color: #f00;color:#fff; margin-top: 1em}

 

以上是关于左边的DIV设定了固定的宽度,右边的DIV如何自适应地填满剩下的屏幕宽度?的主要内容,如果未能解决你的问题,请参考以下文章

两个div并排,左边div固定宽度,右边宽度自适应”,至少列出4种。

右边固定,左边自适应

css能不能实现左边div固定宽度,右边div自适应撑满剩下的宽度

css能不能实现左边div固定宽度,右边div自适应撑满剩下的宽度

css能不能实现左边div固定宽度,右边div自适应撑满剩下的宽度

div inline 如何做到右边div宽度随左边div宽度增加而自适应减小,但是不换行?