关于圣杯、双飞翼布局

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

原文地址:https://www.cnblogs.com/helloNico/p/10063312.html

时间: 2024-10-06 23:23:55

关于圣杯、双飞翼布局的相关文章

圣杯(双飞翼)布局

实现一个三列布局  左右固定  中间mainDIV 根据窗体大小而改变 <html> <head> <meta name="description" content="[三列布局 3 Cols]"> <style type="text/css"> body { margin: 0; } .way1 .left { width: 180px; height: 200px; float: left; b

圣杯 双飞翼布局 多栏自适应布局BFC

七种实现左侧固定,右侧自适应两栏布局的方法 圣杯布局 双飞翼布局 圣杯布局和双飞翼布局 CSS深入理解流体特性和BFC特性下多栏自适应布局 块状元素的流体特性. 图片宽度一直width:100%,结果随着margin, padding, border的出现,其可用宽度自动跟着减小,形成了自适应效果.就像放在容器中的水流一样,内容区域会随着margin, padding, border的出现自动填满剩余空间(box-sizing:border box;感觉) 然而,利用块状元素流体特性实现的自适应

圣杯/双飞翼布局

圣杯布局与双飞翼布局针对的都是三列左右栏固定中间栏边框自适应的网页布局 三列布局,中间宽度自适应,两边定宽 中间栏要在浏览器中优先展示渲染 允许任意列的高度最高 显示如图: (1).浮动布局(float+calc) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style type=&

圣杯布局/双飞翼布局异同和比较

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>圣杯/双飞翼布局</title> <style> /* 圣杯布局 */ /* .container{ padding:0 200px; } .center{ float:left; width:100%; background: red; heigh

圣杯布局和双飞翼布局的理解和区别

圣杯布局和双飞翼布局基本上是一致的,都是两边固定宽度,中间自适应的三栏布局,其中,中间栏放到文档流前面,保证先行渲染.解决方案大体相同,都是三栏全部float:left浮动,区别在于解决中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话),而双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在

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

圣杯布局和双飞翼布局 今天看了很多圣杯布局和双飞翼布局的技术博客,通过自己的理解总结一下吧. 1.二者相同点: 实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局.它们实现的效果是一样的. 2.不同点: 圣杯布局知识点:浮动,负边距,相对定位,不需要添加额外标签. 双飞翼:只用到浮动,负边距,不需要使用相对定位,需要添加一个额外的标签. 注意:html结构中中间部分要写在左右布局之前,为了优先渲染. 下面就先来看一下圣杯布局的实现过程吧: 先写出基本DOM结构:

圣杯布局和双飞翼布局

圣杯布局和双飞翼布局基本上是一致的,都是两边固定宽度,中间自适应的三栏布局,其中,中间栏放到文档流前面,保证先行渲染.解决方案大体相同,都是三栏全部float:left浮动,区别在于解决中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话),而双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在

负边距、三栏布局(圣杯布局、双飞翼布局)

首先来了解下 一.负边距在让元素产生偏移时和position: relative有什么区别? position:relative产生偏移时,他原来的位置不会脱离文档流的,即还占用原来的空间,但负边距产生偏移时它原来的位置并不占用空间: 例如下面的代码 Document *{ margin: 0px; padding: 0px; } .up,.down,.middle{ background-color: red; height: 100px; width: 100px; } .negative-

对于圣杯布局和双飞翼布局的新认识

今天刷题的时候碰见了一道要求使用双飞翼布局的题.于是便对比了一下圣杯布局得到了点新认识. 我们都知道圣杯布局和双飞翼布局都实现了中间宽度自适应,两边定宽的效果.这样做的优势是重要的东西放在文档流前面可以优先渲染.两者又有什么差别呢? 对比圣杯布局和双飞翼布局 1.二者都主要使用了浮动和负边距来达到中间宽度自适应,两边定宽的目的. 具体来说就是设置左右两边div的margin-left为一负值并设置浮动.于是便会移动到上方的div内(也就是中间的div)与之重叠. 2.相比于圣杯布局双飞翼布局没有

双飞翼布局和圣杯布局的对比

先回顾一下 圣杯布局的实现过程>> 在不增加额外标签的情况下,圣杯布局已经非常完美,圣杯布局使用了相对定位,以后布局是有局限性的,而且宽度控制要改的地方也多,那么有没其他方法更加简洁方便呢? 在淘宝UED探讨下,增加多一个div就可以不用相对布局了,只用到了浮动和负边距,这就是我们所说的双飞翼布局. DOM结构:main内层增加了一个div <div class="header">Header</div> <div class="bd