css 圣杯布局三种方式

所谓的圣杯布局就是左右两边大小固定不变,中间宽度自适应。我们可以用浮动、定位以及flex这三种方式来实现

一般这种布局方式适用于各种移动端顶部搜索部分,这是最常见的,如京东手机版主页面顶部搜索:

可以看到左边有个菜单按钮,中间是搜索框,右边是登录两个文字,左右大小是固定的,而中间部分则是随着手机屏幕尺寸的大小而自适应。

  第一种方法 float实现:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5
 6     <title>Document</title>
 7     <style type="text/css">
 8     *{
 9         margin: 0;
10         padding: 0;
11         color: black;
12         font-size: 45px
13     }
14     .main>div{
15         float: left;
16     }
17     .main{
18        width: 100%;
19        background: yellow
20     }
21     .center{
22         background: red;
23         margin-left: 200px;
24         margin-right: -200px;
25         width: 100%
26     }
27     .left{
28        background: pink ;
29        width: 200px;
30        margin-left: -100%
31     }
32     .right{
33        background: blue ;
34        width: 200px;
35        margin-right: -200px
36     }
37 </style>
38 </head>
39 <body>
40     <div class="main">
41         <div class="center">中间</div>
42         <div class="left">左边</div>
43          <div class="right">右边</div>
44     </div>
45
46 </body>
47 </html>

第二种 position实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
        color: black;
        font-size: 45px
    }
    .main div{
        box-sizing: border-box;
    }
    .main{
       width: 100%;
       background: red;
       position: relative;
       padding-left: 200px;
       padding-right: 200px;
    }
    .center{
        width: 100%;
        background: pink
    }
    .left{
       background: yellow ;
       width: 200px;
      position: absolute;
      left: 0;
      top: 0;
    }
    .right{
       background: blue ;
       width: 200px;
        position: absolute;
      top: 0;
      right:0
    }
</style>
</head>
<body>
    <div class="main">
        <div class="center">z中间</div>
        <div class="left">左</div>
        <div class="right">右</div>
    </div>

</body>
</html>

第三种 flex实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    *{
        margin:0;padding:0;
    }
    .container{
        display: flex;
        height: 100vh;
        flex-direction: column;
    }
    header{
        background: #000;
    }
    section{
        flex:1;
        background: pink;
        display: flex;
    }
    footer{
        background: #000;
    }
    .left{
        background: red;
        flex:0 0 100px;
    }
    .center{
        flex:1;
        background: blue;
    }
    .right{
        flex:0 0 100px;
        background: red;
    }
    </style>
</head>
<body>

<div class=‘container‘>

    <header>头部</header>
    <section>
        <div class=‘left‘>左</div>
        <div class=‘center‘>中</div>
        <div class=‘right‘>右</div>
    </section>
    <footer>底部</footer>

</div>

</body>
</html>

原文地址:https://www.cnblogs.com/hsgg/p/9736804.html

时间: 2024-10-09 18:00:07

css 圣杯布局三种方式的相关文章

python 中增加css样式的三种方式

增加css样式的三种方式: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <!--head中style是第一处写css样式的地方--> 7 <style> 8 .cl{ 9 /*背景色*/ 10 background-color

Android开发游记:RecycleView 实现复杂首页布局三种方式

做过电商类应用的朋友可能都会遇到一个比较头疼的问题:复杂的首页布局如何实现.参考百度糯米,美团,bilibili等应用,都会发现其首页的布局相对复杂,例如下图bilibili的首页(第二张是demo实现的效果图),可以看到在同一个页面中先是有列表布局出现,然后出现了2列的网格布局,接着3列的网格布局,最后还出现了瀑布流式布局: 这样的效果该怎么做呢?是使用LinearLayoutManager.GridLayoutManager还是StaggeredGridLayoutManager?还是根本不

css使用的三种方式

方式一:行内样式 特点: 1)在一个标签内使用style属性编写css内容 2) 好处:直接和直观    弊端:是只对当前标签起作用 方式二: 内部样式 特点: 1)通常会在html的<head>标签内使用<style>标签编写css内容 2)好处: 可以一次性控制多个标签   弊端:html代码和css都写在html文件中,不好维护 方式三: 外部样式(推荐使用) 特点: 1)独立一个css后缀的文件编写css内容,然后在html文件中使用<link>标签导入外部cs

css折叠样式(1)——使用css样式的三种方式

一.css的声明标签是告诉浏览器应该是用什么形式去解析你,一般为:<!DOCTYPE html>  因为html5支持向下兼容,详细可看上图. 二.css样式的使用方式: (1)内链样式表: demo.html <!DOCTYPE html> <html> <head>     <title>内链样式使用</title>     <meta charset="utf-8"> </head>

css代码插入三种方式

1.内联式 <p style="color:red;font-size: 12px">iutt</p> 2.嵌入式 <style type="text/css"> span{ color: red; } </style> 3.外部式 <link rel="stylesheet" type="text/css" href="css.css"><

第十一节 CSS引入的三种方式

1 <!-- CSS:层叠样式表,有了CSS,HTML中大部分表示样式的标签就废弃不用了,HTML只负责文档的结构和内容,表现形式完全交给CSS,HTML文档变得更加简洁,方便爬虫爬取 --> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Document</title>

android中填充界面布局的三种方式

改变原来界面布局的三种方式: 1.第一种方式: LayoutInflater li = LayoutInflater.from(this); 具体代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activ

1.关于css居中的几种方式

刚开始的时候看到垂直居中就有点头大,现在写出来为后来的同学头不要再大 首先来看一下dom结构,一般是俩个容器, <div class="container"> <div class="t1"> </div> </div> 第一种方式 也是很常用的一种方式 贴css代码 .container{ width: 400px; height: 400px; margin: 0 auto; background: lightco

[转]Asp.net Mvc2中重构View的三种方式

本文转自:http://www.cnblogs.com/zhuqil/archive/2010/07/14/asp-net-mvc2-view-refactoring.html 我们在Asp.net mvc的view开发过程中,如果不注意可能会写大量的重复的代码.这篇文章介绍3种方式重构View的代码,来减少View中的重复代码.    1.母板页 在Asp.net mvc中保留了母板页的使用,我们可以使用母板页对我们的站点进行布局.看下面母板页的代码: <%@ Master Language=