父元素如何围住浮动的子元素的三种办法:

一、为父元素应用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浮动布局小技巧的更多相关文章

  1. 第八十四节,css布局小技巧及font-awesome图标使用

    css布局小技巧及font-awesome图标使用 图片鼠标放上去遮罩效果,显示文字 当鼠标放上去时 /*最外层div*/ .a{ width: 384px; height: 240px; backg ...

  2. css浮动布局

    上次我们一起对盒子模型进行了一定的了解,今天我们就对css浮动布局做一下研究.首先我们来了解一下网页基本布局的三种形式. 首先我们来了解一下什么是网页布局: 网页的布局方式其实就是指浏览器是如何对网页 ...

  3. css的一些小技巧。修改input样式

    在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...

  4. CSS浮动布局与菜单栏设计

    公司周六停电,终于可以双休了.用周五空余时间再夯实一下css基础,<CSS权威指南>概念性的内容看起来容易犯困,不如实践来得快,动手操作吧. 一.浮动布局 浮动存在问题:浮动使元素脱离文档 ...

  5. css浮动布局,浮动原理,清除(闭合)浮动方法

    css浮动 1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通过让元素浮动,我们可以使元素在水平上左右移动,再通过margin属性调整位置 2.浮动的原理:使当前元素脱离普通流,相 ...

  6. Css - 浮动布局

    Css - 浮动布局 浮动布局 float 取值:left | right | none 利用float属性可设置元素的浮动,虽然浮动主要是应用于块元素,但行内元素其实也可以浮动,但行内元素本来就是一 ...

  7. CSS浮动布局带来的高度塌陷以及其解决办法

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  8. 关于html/css的一些小技巧之hack掉"margin-top"层叠问题

    身为小前端菜鸟一枚,忽然听到这样一则传言~~ 心情久久不能平复,想到前几日,开通了博客君,特来此寻找存在feeling~ 旨在造福普罗大众(更多前端小菜鸟) 话不多说, 我们步入正题,今天来给大家分享 ...

  9. css布局小技巧 2016.03.06

    偶遇一个可爱的css布局学习网站,立刻学起来哟- max-width: 当页面左右宽度缩小时,为了避免出现左右滚动条的糟糕体验,就可以用到max-width啦!页面比宽度小时,会自动缩小哦- max- ...

随机推荐

  1. idea中文输入问题

    desc: idea2017.3.4输入中文,光标不跟随. 解决方案:

  2. CentOS 中查看软件的版本号

    CentOS  中查看软件的版本号 1. rpm 查看 [root@hadoop110 ~]# rpm -qa | grep mysql mysql-community-client--.el6.x8 ...

  3. 【Leetcode】Divide Two Integers

    Divide two integers without using multiplication, division and mod operator. class Solution { public ...

  4. P1613 跑路

    Luogu1613 #include<bits/stdc++.h> using namespace std; const int N=65; bool G[N][N][N]; int di ...

  5. LeetCode记录之35——Search Insert Position

    这道题难度较低,没有必要作说明. Given a sorted array and a target value, return the index if the target is found. I ...

  6. Luogu P2243 电路维修 双端队列BFS

    当转移的代价是0和一个分明不同的权值时,可以用双端队列BFS去跑(你跑最短路也没问题..QWQ) 而对于这道题,边旋转代价是1,不旋转代价是0:可以直接建图最短路,也可以跑BFS 这个题建图很有意思: ...

  7. Oracle9i之xmltype应用(1)

    oracle从9i开始支持一种新的数据类型-- xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点.下面将介绍xmltype的一些基本使用. ...

  8. U盘安装CentOS 7错误 /dev/root does not exist, could not

    问题: U盘安装CentOS 7,显示/dev/root does not exist, could not boot 解决方法: 1. 到windows里面查看U盘名称(例如 "Cento ...

  9. js css div 点亮半颗星星(二)

    上回说到js css点亮星星 换种方式来点亮 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  10. qs.parse() 和 qs.stringfy() 之 传输数据秘籍

    qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 1. qs.parse()将URL解析成对象的形式 const Qs = require('qs');let url ...