关于圣杯双飞翼布局

Posted hellonico

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于圣杯双飞翼布局相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<head>
<title>附加案例</title>
<style type="text/css">
body{
background: #ccc;
margin: 0;
padding: 0;
}
.container{
--width: 400px;
width:calc(var(--width) * 2);
height: var(--width);
margin: 0 auto;
background: skyblue;
border: 1px solid #000;
perspective: 2000px;
perspective-origin: right top;
box-sizing: border-box;
}
.box{
box-sizing: border-box;
background: yellow;
width: 100%;
height:100%;
transform:rotateY(0deg);
transform-origin:100%;
backface-visibility: visible;
}
.container:hover .box{
transform: rotateY(90deg);
}
.box{
text-align: center;
transition: 2s;
line-height: var(--width);
letter-spacing: 2em;
font-size: 20px;
}
.container2{
text-align: center;
background: #555;
border-radius: 5px;
width: 200px;
height: 50px;
line-height: 50px;
box-shadow: -1px 1px 3px rgba(25,25,25,.9),-1px 0px 2px rgba(225,225,225,.6) inset;
position: relative;
transition: 1s;
border: 1px solid rgba(25,25,25,0.5);
color: #fff;
text-shadow:-2px 1px 2px #000;
}
.container2:after{
content: "";
display: inline-block;
width: 50%;
height: 1px;
background: linear-gradient(to right,transparent,#fff,transparent);
position: absolute;
left: 0;
top: 0;
border-radius: 100%;
transition: 1s;
}
.container2:hover{
box-shadow: 1px 1px 5px rgba(25,25,25,.9);
text-shadow: 2px 2px 2px #000;
}
.container2:hover:after{
left: 50%;
}
.container3{
width: calc(100% - 10px);
height: 400px;
margin: 0 auto;
border: 1px solid #000;
box-sizing: border-box;
}
ul{
overflow: hidden;
padding: 0;
margin-right: -12px;
}
li{
float:left;
height:10em;
background:#FF6666;
border: 1px solid #ccc;
width:calc(33.33% - 1px * 6);
list-style: none;
}
.container4{
background: skyblue;
overflow: hidden;
padding: 0 220px 0 200px;
}
/*.box1{
width: 200px;
background: #ddd;
float: left;
margin: 0 50px 0 0;
}
.box3{
width: 300px;
background: #000;
color: #fff;
float: left;
margin: 0 0 0 50px;
}
.box2{
background: yellow;
float: left;
width: calc(100% - 600px);
}*/
.box1,.box2,.box3{
position: relative;
float: left;
}
.box1{
width: 200px;
background: red;
margin-left: -100%;
left: -200px;
}
.box3{
width: 220px;
background: green;
margin-right:-220px;
}
.box2{
background: blue;
width: 100%;
}
.container5{
background: #000;
overflow: hidden;
}
.middle,.left,.right{
position: relative;
float: left;
}
.middle{
width: 100%;
background: red;
}
.inner{
margin:0 200px 0 300px;
background:#fff;
}
.left{
width: 300px;
background: skyblue;
margin-left: -100%;
}
.right{
width: 200px;
background: #999;
margin-left: -200px;
}
</style>
</head>
<body>
<div class="container">
<div class="box">BUTTON</div>
</div>
<div class="container2">
<span>B</span>
<span>U</span>
<span>T</span>
<span>T</span>
<span>O</span>
<span>N</span>
</div>
<div class="container3">
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</div>
④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素
<div class="container4">
<div class="box2">
透视点距离元④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为
</div>
<div class="box1">④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素</div>

<div class="box3">④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素</div>
</div>
<div class="container5">
<div class="middle">
<div class="inner">点距离元④perspective 透视点 => 即透视点距离元素的z轴的距离 => 设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为
</div>
</div>
<div class="left">④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素</div>

<div class="right">④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素④perspective 透视点 => 即透视点距离元素的z轴的距离 => 他如果作为属性,则是设置舞台元素(即设置在要转换元素的父级元素上);如果作为transform的属性值,则设置的是当前元素</div>
</div>
<br>
<b>
实现两边固定宽度,中间自适应的办法:
①圣杯布局 (圣杯布局:中间盒子无inner,采用外容器无padding,中间容器设置margin,右边盒子设置margin-left)
②双飞翼布局
③calc()自适应布局
</b>
</body>
</html>

















































































































































































































以上是关于关于圣杯双飞翼布局的主要内容,如果未能解决你的问题,请参考以下文章

深入理解圣杯布局和双飞翼布局

经典三栏布局之圣杯双飞翼弹性布局

CSS布局之圣杯布局和双飞翼布局

圣杯布局,双飞翼布局详解

圣杯布局与双飞翼布局

圣杯布局与双飞翼布局