这篇笔记的目的是记录分别应用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. ActiveMQ学习系列(三)----下载github源码并编译

    前记:坚持使用官网的资源去学习是挺痛苦的一个过程,昨天瞎溜达了一天,也没看到有系统性的学习文章,倒是发现了github上的ActiveMq项目. 地址:https://github.com/apach ...

  2. golang如何使用channel控制goroutine退出

    最经典的处理方式: 在启动goroutine的时候,传递一个额外的chan型参数,用来接收退出信号,代码如下 func worker(name string, stopchan chan struct ...

  3. 【PYTHON】用户登录三次错误锁定

    黑名单:blacklist.txt 用户名单:username_password.py # Author:Stephen Yuan # 用户名和密码 username_password = { ', ...

  4. JavaScript初探之字符串与数组

    一直在研究JS以至于忘记跟新博客... 字符串:// str.charAt(x); //获取下标为x的字符// str.indexOf(",",1); //获取",&qu ...

  5. Apache 配置小技巧

    1. 使 Apache 只能通过本地主机访问 1.1. 如果在开发环境中,你希望除了自己以外其他人都无法访问站点,你可以使用以下配置: 首先打开Apache的配置文件httdp.conf,此文件路径为 ...

  6. [LeetCode] Best Time to Buy and Sell Stock with Transaction Fee 买股票的最佳时间含交易费

    Your are given an array of integers prices, for which the i-th element is the price of a given stock ...

  7. pyqt5 动画学习(一) 改变控件大小

    入坑pyqt也有半年了,由于人们对事物的审美,静态界面已经不能满足用户,而动画却给人眼前一亮,so,今天来学习pyqt的动画了 由于资料真的是太少,本人也是有啃外国佬的英文进行摸索学习,可能也是触及皮 ...

  8. Python的hasattr() getattr() setattr() 函数使用方法详解 (转)

    来自:https://www.cnblogs.com/cenyu/p/5713686.html hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOO ...

  9. python 网路爬虫(二) 爬取淘宝里的手机报价并以价格排序

    今天要写的是之前写过的一个程序,然后把它整理下,巩固下知识点,并对之前的代码进行一些改进. 今天要爬取的是淘宝里的关于手机的报价的信息,并按照自己想要价格来筛选. 要是有什么问题希望大佬能指出我的错误 ...

  10. ●BZOJ 2337 [HNOI2011]XOR和路径

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2337题解: 概率dp, 因为异或的每一位之间没有关系,我们就依次考虑每一位k.(即边权要么为 ...