码迷,mamicode.com
首页 > 其他好文 > 详细

三栏布局的三个典型方法(圣杯、双飞翼、flex)

时间:2019-11-16 14:37:11      阅读:44      评论:0      收藏:0      [点我收藏+]

标签:back   ack   row   图片   body   charset   splay   title   padding   

聊聊三栏布局----左右定宽,中间自适应。

效果图:

技术图片

圣杯布局

<!DOCTYPE html>
<html>
<head lang="en">
<title>圣杯</title>
<style>
.container{
    padding:0 200px 0 180px;
    height:100px;
}
.left{
    float:left;
    width:180px;
    height:100px;
    margin-left:-100%;
    background:red;
    position:relative;
    left:-180px;
}
.main{
    float:left;
    width:100%;
    height:100px;
    background:blue;
}

.right{
    float:left;
    width:200px;
    height:100px;
    margin-left:-200px;
    background:green;
    position:relative;
    right:-200px;
}

</style>
</head>
<body>
<div class="container">
  <div class="main">middle</div>
  <div class="left">left</div>
  <div class="right">right</div>
</div>
</body>
</html>


双飞翼布局

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>双飞翼</title>
    <style>
.main{
    float:left;
    width:100%; 
    height:100px;
    background:blue;
}
.left{
    float:left;
    width:180px;
    height:100px;
    margin-left:-100%;
    background:red;
}
.right{
    float:left;
    width:200px;
    height:100px;
    margin-left:-200px;
    background:green;
}
.inline{
margin:0 200px 0 180px;
}
</style>
</head>
<body>
  <div class="main">
    <div class="inline">middle</div> 
  </div>
  <div class="left">left</div>
  <div class="right">right</div>
</body>
</html>

注意:一定要在要在main中再包裹一个<div>并设置它的margin:0 180px 0 200px。

Flex布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flex</title>
    <style>
.flex {
    display: flex;
    flex-flow: row;
}
.left{
    width: 180px;
    height: 100px;    
    background-color: red;
}
.main{
    flex: 1; 
    height: 100px;
    background-color: blue;
}
.right {
    width: 200px;
    height: 100px;
    background-color: green;
}
    </style>
</head>
<body>
<div class="flex">
    <div class="left">left</div>
    <div class="main">middle</div>
    <div class="right">right</div>
</div>
</body>
</html>

最重要的还是要理解浮动和负margin技术以及width:100%。

三栏布局的三个典型方法(圣杯、双飞翼、flex)

标签:back   ack   row   图片   body   charset   splay   title   padding   

原文地址:https://www.cnblogs.com/jlfw/p/11871616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!