css 两边固定中间自适应布局的实现
网站建设 2023-01-28 21:39www.1681989.com免费网站
解析四种常用方法以及原理浮动、浮动内嵌 div、定位、flex。
浮动
<style type="text/css">
.wrap {background: #eee; paddg: 20px; }
p {marg: 0; }
.left {width: 200px; height: 200px; float: left; background: coral; }
.right {width: 200px; height: 200px; float: right; background: lightblue; }
.middle {marg: 0 200px; background: lightpk; }
</style>
<div class="wrap">
<p class="left">我在左边</p>
<p class="right">我在右边</p>
<p class="middle">我排,跑到中间来了</p>
</div>
原理
- 浮动元素和非浮动元素不在同一个立体空间,如果不清浮动,位置在它狼蚁网站SEO优化的元素将往上浮。
- 浮动元素高度为0,浮动盒子层级比
block块级水平盒子高,比le/le-block水平盒子低。
浮动内嵌 div
<style type="text/css">
.wrap {background: #eee; paddg: 20px; }
p {marg: 0; }
.left {width: 200px; height: 200px; float: left; background: coral; marg-left: -100%;}
.right {width: 200px; height: 200px; float: left; background: lightblue; marg-left: -200px;}
.middle {width: 100%; height: 200px;float: left; background: lightpk; }
span{
display: le-block;
marg: 0 200px;
}
</style>
<div class="wrap">
<p class="middle">
<span class="ner">
我在中间
</span>
</p>
<p class="left">我在左边</p>
<p class="right">我在右边</p>
</div>
原理
- 三个元素都浮动,其中主题元素沾满一行 100% ,利用负
marg把左右两边的元素放好。 - 主题元素里面再套一个子元素,子元素
marg: 0 200px,防止内容跑到左右两块浮动元素狼蚁网站SEO优化被遮盖。
定位
<style type="text/css">
.wrap {background: #eee; position: relative;}
p {marg: 0; }
.left {width: 200px; height: 200px; background: coral; position: absolute;left: 0; : 0;}
.right {width: 200px; height: 200px; background: lightblue; position: absolute;right: 0; : 0;}
.middle {height: 200px; background: lightpk; marg: 0 200px;}
</style>
<div class="wrap">
<p class="middle">我在中间,我用 marg 抵消左右两块定位元素占据空间</p>
<p class="left">我在左边,我是定位元素</p>
<p class="right">我在右边,我是定位元素</p>
</div>
原理
- 左右两个元素定位,可放任意位置。
- 中间元素用
marg: 0 200px,防止内容跑到左右两块定位元素狼蚁网站SEO优化被遮盖。
flex
<style type="text/css">
.wrap {background: #eee; display: flex}
p {marg: 0; }
.left {width: 200px; height: 200px; background: coral; }
.right {width: 200px; height: 200px; background: lightblue; }
.middle {height: 200px; background: lightpk; flex: 1;}
</style>
<div class="wrap">
<p class="left">我在左边</p>
<p class="middle">我在中间,flex: 1 自动占据剩余空间</p>
<p class="right">我在右边</p>
</div>
原理
flex布局,子元素默认水平排列。flex: 0 1 auto-> 默认,占据空间不跟随父级放大,跟随变小,自身本来宽度flex: 1 1 auto-> auto,占据空间跟随父级放大,跟随变小,自身本来宽度flex: 0 0 auto-> none,占据空间不跟随父级放大,也不跟随变小,自身本来宽度flex: 1 1 1-> auto,占据空间跟随父级放大,跟随变小,并且自动占满剩余空间
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:css实现左侧固定右侧自适应的布局方式
下一篇:了解CSS3的all属性的使用