css浮动布局小技巧
父元素如何围住浮动的子元素的三种办法:
一、为父元素应用overflow:hidden。
overflow真正用途是防止包含元素被大的内容撑开,设定了宽度之后,包含元素将超过容器的内容减掉;而它还有另外一个作用就是迫使父元素包含其浮动的子元素。
二、同时浮动父元素。
三、添加非浮动的元素并清除它。
这里又有二种办法来清除元素:
第一种方法是加个空的div容器,由于没有往其添加内容,所以不会引入多余空间,然后使用clear属性清除他,我们知道包含元素一定会包围非浮动的子元素,
当我们添加一个div子元素,并且清除浮动时他是位于浮动元素的下方的,所以包含元素会肯定包含他。以及他前面的浮动元素。
第二种方法是不需要的多余的元素。利用css3的伪元素。::after
对包含元素采用这样的css规则就行:
包含元素::after{
content: "";
display: block;
clear: both;
}
上面的第三种方法的第二小种办法,还能应用于没有父元素容器的情况。

图片对应的html代码。我们发现第三张图片,由于第二张右侧还有空间,所以他浮动到图片右侧。这不是我们想要的结果。
<div>
<img src="../../img/img/a.jpg" width="200px" height="100px" />
<p>这是第一张图片这是第一张图片这是第一张图片这是第一张图片这是第一张图片这是第一张图片这是第一张图片
</p>
<img src="../../img/img/a.jpg" width="200px" height="100px" />
<p>这是第二张图片这是第二张图片
这
</p>
<img src="../../img/img/a.jpg" width="200px" height="100px" />
<p>这是第三张图片这是第三张图片这是第三张图片这是第三张图片这是第三张图片这是第三张图片
</p>
</div>
<style>
div{border: 1px solid burlywood;width: 400px;}
img {float: left;} </style>
解决方案是为每个段落应用上面的三种方法的第二种即添加伪元素::after。这样不管文本大小多少,都能保持完好。(你也可以给图片跟段落加个包含容器,然后运用前面的三种办法)
为每个段位应用这样的一条css规则后效果如下:
.clearfix{content: "";clear: both;display:block}

浮动元素传统用来做出文字环绕图片的效果,二是可以让原来上下堆叠的块级元素变成左右并列,从而实现分栏布局。
浮动非图片元素时,必须给它设定宽度,因为图片本身有默认的宽度。这一点要注意了。
基于上面的考虑,本人运用浮动,写了个三栏固定宽度布局。
固定宽度一般为960px,它能够被16 12 10 8 6 5 4 3整除,很容易计算出等宽分栏的数量。
代码如下:
<div id="wrapper">
<header>
<img src="../../img/img/d.jpg" width="50px"/>
<h1>A Fixed width layout</h1>
</header>
<nav>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</nav>
<div id="article">
<h1>demo</h1>
<p> dddddddddddddddddddddfffffffff
fafffffffffffffffffffffffffffff
fafsddddddddddddfadasdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
</p>
<h1>demo1</h1>
<p> dddddd</p>
<h1>demo1</h1>
<p> dddddd</p>
<h1>demo1</h1>
<p> dddddd</p>
<h1>demo1</h1>
<p> dddddd</p>
</div>
<aside>
<div >
<h3>demo00</h3>
<p>dafafaf</p>
<h3>demo00</h3>
<p>dafafaf</p>
<h3>demo00</h3>
<p>dafafaf</p>
<h3>demo00</h3>
<p>dafafaf</p>
<img src="../../img/img/d.jpg" />
</div>
</aside>
<footer>this is my web thanks watching</footer>
</div>
<style>
header{background: #f00;}
header img{float:left}
header h1::after{content: "";clear: both;display: block;}
footer{background: #FF0000;clear: both;font-size: 20px;text-align: center;}
*{margin: ;padding: ;}
nav{float: left;width: 150px;background: orange;box-sizing: border-box;padding: 10px;}
nav li{list-style: none;}
#wrapper{width:960px;border: 10px solid royalblue;margin: auto;}
#article{background: #ffed53;float: left;width: 600px;padding: 10px;box-sizing:border-box}
#article p{word-wrap: break-word;padding:10px ;}
aside{width: 210px;float: left;background: darkgray;}
aside div{padding:20px;margin: 10px;}
</style>

css浮动布局小技巧的更多相关文章
- 第八十四节,css布局小技巧及font-awesome图标使用
css布局小技巧及font-awesome图标使用 图片鼠标放上去遮罩效果,显示文字 当鼠标放上去时 /*最外层div*/ .a{ width: 384px; height: 240px; backg ...
- css浮动布局
上次我们一起对盒子模型进行了一定的了解,今天我们就对css浮动布局做一下研究.首先我们来了解一下网页基本布局的三种形式. 首先我们来了解一下什么是网页布局: 网页的布局方式其实就是指浏览器是如何对网页 ...
- css的一些小技巧。修改input样式
在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...
- CSS浮动布局与菜单栏设计
公司周六停电,终于可以双休了.用周五空余时间再夯实一下css基础,<CSS权威指南>概念性的内容看起来容易犯困,不如实践来得快,动手操作吧. 一.浮动布局 浮动存在问题:浮动使元素脱离文档 ...
- css浮动布局,浮动原理,清除(闭合)浮动方法
css浮动 1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通过让元素浮动,我们可以使元素在水平上左右移动,再通过margin属性调整位置 2.浮动的原理:使当前元素脱离普通流,相 ...
- Css - 浮动布局
Css - 浮动布局 浮动布局 float 取值:left | right | none 利用float属性可设置元素的浮动,虽然浮动主要是应用于块元素,但行内元素其实也可以浮动,但行内元素本来就是一 ...
- CSS浮动布局带来的高度塌陷以及其解决办法
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- 关于html/css的一些小技巧之hack掉"margin-top"层叠问题
身为小前端菜鸟一枚,忽然听到这样一则传言~~ 心情久久不能平复,想到前几日,开通了博客君,特来此寻找存在feeling~ 旨在造福普罗大众(更多前端小菜鸟) 话不多说, 我们步入正题,今天来给大家分享 ...
- css布局小技巧 2016.03.06
偶遇一个可爱的css布局学习网站,立刻学起来哟- max-width: 当页面左右宽度缩小时,为了避免出现左右滚动条的糟糕体验,就可以用到max-width啦!页面比宽度小时,会自动缩小哦- max- ...
随机推荐
- Centos7.4 更换国内yum源
1.进入yum源配置文件夹.(配置之前先看看有没有安装wget命令呢,没的话可以先用当前的yum源安装一下再说.yum -y install wget) 2.转到配置文件目录 cd /etc/yum ...
- 使用TortoiseSVN新建及合并分支图文教程
打开trunks目录,在trunks目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编 ...
- 【转】intellij idea使用指南—— 导入Eclipse的Web项目
通常一个团队中可能有人用eclipse,有人用intelliJ,那么经常会出现需要导入别人用eclipse建好的web项目.而IntelliJ提供了多种项目类型的导入方式,其中就有eclipse. 在 ...
- python学习之路---day18--反射
一:isinstance,type,issubclass 001:内置函数:isinstance() class Base: pass class Foo(Base): pass class Bar ...
- Hibernate 环境配置和依赖添加(使用java web和普通javaSE工程)
1.Hibernate依赖包的添加 File---->Project Structure,按照如图所示操作,导入所依赖的jar包. 2.生成hibernate.hbm.xml的配置文件 (1)点 ...
- R语言学习笔记(四)
6. 数据转换 本章主要讲述apply系列函数:apply.lapply.sapply.tapply.mapply,以及姊妹函数by.split.适用于批量处理数据,而不许循环. 6.1 向量分组 用 ...
- XSS攻击的防御
XSS攻击的防御 XSS 攻击是什么 XSS 又称 CSS,全称 Cross SiteScript,跨站脚本攻击,是 Web 程序中常见的漏洞,XSS 属于被动式且用于客户端的攻击方式,所以容易被忽略 ...
- LeetCode记录之20——Valid Parentheses
09.18更新算法采用栈的思想解决,方法①所示. 本题主要是找是否有匹配的字符串,因为还没有复习到栈之类的知识点,只能还是采用暴力方法了,后期会补上更加优化的算法.我的思路就是先遍历一遍找是否有匹配的 ...
- 权限管理系统源码分析(ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存)
系统采用最先进技术开发: (ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存) 大家可以加我QQ讨论 309159 ...
- 118th LeetCode Weekly Contest Powerful Integers
Given two non-negative integers x and y, an integer is powerful if it is equal to x^i + y^j for some ...