这篇笔记的目的是记录分别应用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. python之路——初识函数

    阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...

  2. LayUI之table数据表格获取行、行高亮等相关操作

    前言 目前LayUI数据表格既美观有不乏一些实用功能.基本上表格应有的操作已经具备,LayUI作者[贤心]肯定是煞费苦心去优化,此处致敬.但是实话实话,如果单纯那数据表格功能来说,EasUI的数据表格 ...

  3. 如何打开hprof文件

    最近学习深入java虚拟机的书,照着里面的例子跑了下. 下面是demo: /** * VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * ...

  4. DMO节点内部插入的常用方法与区别

    1.DOM内部插入append()与appendTo() 动态创建的元素是不够的,它只是临时存放在内存中,最终我们需要放到页面文档并呈现出来.那么问题来了,怎么放到文档上? 这里就涉及到一个位置关系, ...

  5. 简单的Nginx自动化安装啊脚本

    #!/bin/bash #description:Nginx installation script automatically #user:baomanji #date:2017-03-25 #ve ...

  6. Django多级评论

    一.原理 #多级评论原理简单原理,弄完之后发现基础白学了 msg_list = [ {'id':1,'content':'xxx','parent_id':None}, {'id':2,'conten ...

  7. CSS 选择器简介

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 选择器权重 如果以4位数表示选择符权重,那么: 元素选择器的权重是1: id 选择器的权重为100: cl ...

  8. AtomicInteger类的理解及使用

    AtomicInteger在多线程并发场景的使用 AtomicInteger提供原子操作来进行Integer的使用,因此十分适合高并发情况下的使用. AtomicInteger位于包package j ...

  9. [JSOI 2008]最大数

    Description 题库链接 给你一个序列,初始为空.资瓷下列操作: 在序列末尾加上一个数: 查询后 \(L\) 个数中的最大值. 操作总数为 \(m\) , \(1\leq m\leq 2000 ...

  10. TopCoder SRM 559 Div 1 - Problem 900 CircusTents

    传送门:https://284914869.github.io/AEoj/559.html 题目简述: n个实心圆,两两没有交集,在第一个圆上找一个点,使得它到另外一个圆上某个点的最短距离的最小值尽量 ...