这篇笔记的目的是记录分别应用float和flex布局的方法。主要是对遇到的问题进行总结。

1.float布局

总结:

1.1 使用float布局要清除浮动,清除的方法是,在父元素添加如下样式

.clearfix::after {
content: '';
display: block;
clear: both;
}
.clearfix{
zoom: 1;/*兼容ie6*/
}

1.2 布局元素(本文布局元素指的是使用float布局的元素)就单纯的做布局,不要再加任何别的样式,否则会产生一些意想不到的的问题。可以给布局元素添加子元素,然后对子元素添加样式。

1.3 如果没必要就别给元素的宽度和高度一个固定的值,可以通过给元素添加padding/line-height调整高度。宽度可以通过比例来决定。

在实现平均布局的时候,因为每个元素之间会有margin所以就会产生子元素的宽度总和大于父元素的宽度,就会产生换行,无法实现一行四个一样大小格子的布局。解决的办法

第一种方法:让父元素左右两边往外扩大一定的大小,根据margin值决定或是让靠父元素左边

第二种方法:右边的子元素margin为0。

第一种解决方法。在原先的子元素外面添加一个父元素div,然后给这个父元素添加如下样式。

.wrapper{
margin-left: -4px;
margin-right: -4px;
}

第二种方法

.picture:nth-child(4n+1){
margin-left: 0;
}
.picture:nth-child(4n){
margin-right: 0;
}

  1. flex布局

    flex布局参考:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

代码

<div class="parent clearfix">
<div class="child">logo</div>
<div class="child">
<div class="nav clearfix">
<div class="item">导航1</div>
<div class="item">导航2</div>
<div class="item">导航3</div>
<div class="item">导航4</div>
<div class="item">导航5</div>
</div>
</div>
</div> <div class="banner"></div>
<div class="pictures">
<div class="wrapper">
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
<div class="picture"></div>
</div>
</div> <div class="art clearfix">
<div class="sider">
<div class="sider-child">广告1</div>
</div>
<div class="main">
<div class="main-child">广告2</div>
</div>
</div>

css

*{
box-sizing: border-box;
}
.parent{
margin-left: auto;
margin-right: auto;
background: #ddd;
min-width: 600px;
}
.clearfix::after {
content: '';
display: block;
clear: both;
}
.clearfix{
zoom: 1;/*ie6*/
}
.child {
color: white;
}
.child:nth-child(1) {
float: left;
width: 10%;
text-align: center;
line-height: 24px;
padding: 6px 0;
background-color: #533;
} .child:nth-child(2) {
float: right;
} .nav{
line-height: 24px;
padding: 6px 0;
} .item {
float: left;
margin-left: 20px;
} .banner{
width: 800px;
height: 300px;
background: #888;
margin-left: auto;
margin-right: auto;
margin-top: 10px;
}
.pictures{
width: 800px;
margin: 0 auto;
}
.pictures>.wrapper{
display: flex;
flex-wrap: wrap;
margin: 0 -4px;
}
.picture{
width: calc(25% - 8px);/*calc两个值之间要有空格*/
height: 194px;
background: #d5d;
margin: 4px;
} .art{
background: #ddd;
width: 800px;
margin: 0 auto;
}
.art>.sider{
float: left;
width: 33.33%;
}
.art>.main{
float: left;
border: 1px solid black;
width: 66.66%;
height: 300px;
} .sider-child{
margin-right: 20px;
border: 1px solid black;
height: 300px;
}

CSS布局套路的更多相关文章

  1. 界面设计技法之css布局

    css布局之于页面就如同ECMAScript之于JS一般,细想一番,html就如同语文,css就如同数学,js呢,就是物理,有些扯远,这里就先不展开了. 回到主题,从最开始的css到如今的sass(l ...

  2. CSS布局 - 三栏布局

    CSS布局技术可谓是前端技术中最基础的技术,就是因为基础,所以我认为要更加熟练,深入的去掌握,去梳理. 一. 传统 ---> 浮动实现的三栏布局 采用浮动实现的三栏布局有以下特点及注意事项: · ...

  3. DIV+CSS布局中主要CSS属性介绍

    Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...

  4. CSS 布局

    近日开发中,总感觉页面布局方面力不从心.以前也曾学过这方面的内容,但是不够系统,因此我打算整理一下. 在web 页面中一般有 table 和 css+div 两种布局方式. 其中css+div 又分为 ...

  5. CSS布局经典—圣杯布局与双飞翼布局

    在我之前的博客网页整体布局完全剖析-剖完你不进来看一下么?中总结单列.两列.三列固宽与变宽布局,我还以为已经囊括了所有经典的网页布局方法了呢,当然除了CSS3的弹性盒模型没有涉及到,现在看来确实是自己 ...

  6. html学习第三天—— 第12章——css布局模型

    清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又不同于我们常说的 ...

  7. CSS篇之DIV+CSS布局

    <div></div> div与其他标签一样,也是一个XHTML所支持的标签. div是XHTML中指定的,远门用于布局设计的容器标记. 简单的CSS布局 头部 内容 页脚 & ...

  8. CSS 布局口诀

    body { font-family: Segoe UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMi ...

  9. CSS布局基础——BFC

    what's BFC? 第一次看到这个名词,我是拒绝的,css什么时候还有这个东西?于是迫不及待的google了一下,才发现原来它无时无刻不在我们的css当中,只不过它并不是一个属性,不需要我们平常使 ...

随机推荐

  1. 初学Java Web(7)——文件的上传和下载

    文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...

  2. js变量的生命周期

    1.在JavaScript中,对于for循环中定义的i变量,其生命周期在循环结束后仍然是有效的. for (var i=0; i < 10; i++){ doSomething(i); } al ...

  3. [HNOI 2015]落忆枫音

    Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出 这样一个问题.  「相信吧.不然我们是什么,一团肉吗?要不是有灵魂……我们 ...

  4. [PA 2014]Iloczyn

    Description 斐波那契数列的定义为:k=0或1时,F[k]=k:k>1时,F[k]=F[k-1]+F[k-2].数列的开头几项为0,1,1,2,3,5,8,13,21,34,55,…你 ...

  5. [USACO17FEB]Why Did the Cow Cross the Road II S

    题目描述 The long road through Farmer John's farm has  crosswalks across it, conveniently numbered  (). ...

  6. POJ 1486二分图的必要边

    题意:有n个大小不等透明的幻灯片(只有轮廓和上面的数字可见)A.B.C.D.E…按顺序叠放在一起,现在知道每个幻灯片大小,由于幻灯片是透明的,所以能看到幻灯片上的数字(给出了每个数字的坐标,但不知道这 ...

  7. [BZOJ]2589: Spoj 10707 Count on a tree II

    Time Limit: 20 Sec  Memory Limit: 400 MB Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor last ...

  8. [bzoj4755][Jsoi2016]扭动的回文串

    来自FallDream的博客,未经允许,请勿转载,谢谢. JYY有两个长度均为N的字符串A和B. 一个“扭动字符串S(i,j,k)由A中的第i个字符到第j个字符组成的子串与B中的第j个字符到第k个字符 ...

  9. [Apio2009][bzoj1179]Atm

    题意:一个n个点m条单向边的图,每个点有权值,给定出发点和p个可以停止的点,你可以随便走一条路径从出发点走到一个可以停止的点,但是每个点的点权只能计算一次,求能得到的最大权值. n,m<=500 ...

  10. c语言第四次作业e

    ---恢复内容开始--- (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"Th ...