布局(左边的div随着右边div的高度变化而变化)

今天同学问了一个左边div的高度随着右边div的高度变化而变化的问题。开始想了想有点蒙。中间试着用height:100%;试过发现并不可行,因为高度百分比必须有确切的祖先元素(即设置了px)才可以。由于今天晚上正在团建,回来都12点多了。然后怎么也睡不着就做做这个吧,发现一坐下来安心的想问题,竟然迎刃而解了。

我用到的方法是1父元素设置position:relative;2左边的div设置position:absolute;top:0;bottom:0;这个也是css3中flex布局的实现原理。包括左右布局,左边自适应,右边固定等等都可以用类似的原理实现。刚好做了一个小的例子,大家复制粘贴就ok。希望对大家有帮助,也希望大家可以有更好的方法给我留言。感激不尽啊。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>test</title>    <style>        * {            margin: 0;            padding: 0;        }

li {            width: 100px;            height: 50px;        }

#big {            width: 500px;            height: auto;            background-color: red;            position: relative;        }

.left {            width: 200px;            position: absolute;            top: 0;            bottom: 0;            display: inline-block;            background-color: yellow;        }

.right {            width: 200px;            height: auto;            display: inline-block;            background-color: green;        }    </style></head><body><div id="big">    <div class="left"></div>    <div class="right">        <ul>            <li>haha</li>        </ul>    </div></div><button id="btn">点击增加</button><script>    var right = document.getElementsByClassName("right")[0];    document.getElementById("btn").onclick = function () {        var x = document.createElement("li");        x.innerText = "hello";        document.getElementsByClassName("right")[0].getElementsByTagName("ul")[0].appendChild(x);    }</script></body></html>
时间: 2024-12-18 08:14:23

布局(左边的div随着右边div的高度变化而变化)的相关文章

css样式实现左边的固定宽度和高度的图片或者div跟随右边高度不固定的文字或者div垂直居中(文字高度超过图片,图片跟随文字居中,反之文字跟随图片居中非table实现)

<!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-Typ

实现左边div固定宽度,右边div自适应

(1)使用float <div class="use-float"> <div></div> <div></div> </div> .use-float>div:first-child{ width:100px; float:left; } .use-float>div:last-child{ overflow:hidden; } - - - - - - - - - - - - - - - - - -

俩列布局(左边固定,右边自适应),等高布局,最小高度

俩列布局(左边固定,右边自适应): 1. <!DOCTYPE html> <html> <head> <title>俩列布局</title> <meta charset="utf-8"> <style type="text/css"> *{         margin: 0;         padding: 0;     } #left {         float: left

二列布局 左边固定宽度 右边响应

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>二列布局 左边固定宽度 右边响应</title> <style> html{ height: 100%; } body{ height: 100%; margin: 0; padding: 0; } .left{ width: 200px; heig

CSS布局:div高度随窗口变化而变化(BUG会有滚动条)

<!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><title>CSS布局:div高度随窗口变化而变化</

轻松学DIV教程(div+css布局)

你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习: 第一种可能是你还没有理解CSS处理页面的原理.在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义.结构添加CSS.这篇文章将告诉你应该怎样把HTML结构化. 另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,.hspace.align=left等等)束手无策,不知道该转换成对应的什么CSS语句.当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表

左右布局,左边定宽,右边自适应。

左右布局,左边固定宽度,右边自适应. 自己整理的几种方法: 页面布局如下: 方法1: 左边定位,右边添加marge-left .div1{ width: 300px; height: 600px; background: black; position: absolute;}  .div2{height: 600px; min-width: 100px; background: red; margin-left: 300px} 方法2: 左边定为,右边定位(设置left) .div1{ widt

左两行右一行的布局(仅限三个div)

用三个div做一个类似下图的布局: <!DOCTYPE html > <html> <head> <meta charset="utf-8" /> <title>get objects by class</title> <style type="text/css"> div{ background:#ccc} .no1{margin-bottom: 10px;} .no1,.no2{

左边订宽,右边自适应布局的方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { padding: 0; margin: 0; color: #fff; font-size: 30px; font-weight: bold; text-align: center; bo