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- ...
随机推荐
- 微信小程序获取用户手机号,服务器解码demo
原理:通过微信登陆接口wx.login得到encryptedData . iv .code.经过接口处理code得到sessionkey.最后官方demo得到解密后的手机号.(接口处理这一步也可以在 ...
- 谈谈easyui datagrid 的数据加载
文章目录 1url方式加载数据 1.1调用方式 1.2相关方法 1.3二次加载问题 2加载本地数据方式 2.1调用方式 2.2如何分页 2.3加载中效果 2.4如何不统计总数 这篇文章只谈jQuery ...
- C++_代码重用3-私有继承
使用包含:易于理解,类声明中包含表示被包含类的显式命名对象,代码可以通过名称引用这些对象: 使用继承:将使关系更抽象,且继承会引起很多问题,尤其是从多个基类继承时. 私有继承所提供的特性确实比包含多. ...
- Rebranding(模拟+思维)
The name of one small but proud corporation consists of n lowercase English letters. The Corporation ...
- ESC/POS 控制指令
ESC/POS 控制指令 HT 横向跳格 [名称] Horizontal tab [格式] ASCII HT Hex 09 Decimal 9 [描述] 将当前位置移动到下一个跳格位置. [注释] ...
- Linux-Xshell5
Linux-Xshell5 1.下载 2.安装 3.新建会话(连接) 点击新建 需要知道要连接的 IP, 查看命令 ifconfig 配置 名称可以自己命名,主机写要连接的 IP,其他的不能改 输 ...
- eclipse中注释快捷键
手动注释: ①类注释:Shift+Alt+J ②方法注释:在方法上方输入/** 后点击回车 自动注释:点击菜单栏上的Window -->Preferences-->Java-->Co ...
- OSG DB的插件地址设置
今天搞了一整天OSG,结果每次都说could not find plugin,就是说找不到OSG的插件去加载文件,我大概看了下OSG的插件机制,发现他是用插件的形式下去读取文件的 http://blo ...
- 华为 p8上配置outllook,同步日历/邮件
在网上找了半天,也没有找到合适的方法,在outlook官网上终于找到了配置方式 一种方式是使用outlook的手机应用.(此处省略) 另外一种方式是使用手机自带的邮件/日历应用(见下面操作方法) 如果 ...
- (转)PowerHA完全手册(一,二,三)
PowerHA完全手册(一) 原文:http://www.talkwithtrend.com/Article/39889-----PowerHA完全手册(一) http://www.talkwitht ...