块元素的特征:(block)
含义:能够设置元素尺寸,隔离其他元素。
1:在没有设置宽度的时候,默认为父级的宽度。
2:块元素默认独占一行。
3:支持所有css指令。
内联元素的特征:(lnline)
含义:不能够设置元素尺寸,它能自适应内容, 无法隔离其他元素。其他元素会紧跟其后。
1:宽高由内容撑开。
2:不支持宽高(width,height)属性
3:同排可以跟上同类的标签。
4:不支持上下的margin。
5:代码中的换行要被解析。
内联块:(Inline-block)
含义:可以设置元素尺寸,但无法隔离其他的元素。
1:块在一行显示。
2:行内属性标签支持宽高。
3:没有宽度的时候内容撑开高度。
4: 标签之间的换行间隙会被解析。
5:ie6,ie7不支持块属性标签的inline-block。
练习一:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#parent a{
width: 17px;
height: 20px;
font: 12px '宋体';
border:1px solid #e0e1e2;
display:inline-block;
text-decoration: none;
text-align: center;
line-height: 20px
}
#parent .page{
width: 64px;
}
a:hover,.active{
background: #1f3a87;
color: #fff;
}
</style>
</head>
<body>
<div id="parent">
<a class='page' href='#'>上一页</a>
<a href='#'>1</a>
<a href='#'>2</a>
<a href='#' class='active'>3</a>
<a href='#'>4</a>
<a href='#'>5</a>
<a href='#'>6</a>
<a href='#'>7</a>
<a href='#'>8</a>
<a href='#'>9</a>
<a class='page' href='#'>下一页</a>
</div>
</body>
</html>
float/文档流 (让块元素在同一行显示)
float: left|right|none|inherit
left:左浮动
right:右浮动
inherit:继承父级的浮动属性
none:不浮动
文档流是文本当中可显示对象在排列时所占用的位置。
浮动的定义:
使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停下来。
clear: left|right|both|none|inherit :清楚某个方向上的移动。
Float的特征:
1:块在一排显示。
2:内联支持宽高。
3:默认内容撑开宽度。
4:“脱离文档流”。
5:提示层级半层。
清浮动方法:
1:加高度
问题:扩展性不好。
2:父级浮动
问题:页面所有元素都需要加浮动,margin左右自动失效。
3:inline-block 。
问题:margin左右auto失效
4:br清浮动。
问题:不符合工作中:结构,样式,行为,三者分离的要求
5:after伪类清浮动方法。(父级)
看实例:
:after{} IE6,7不兼容
zoom;ff不支持。触发IE下haslayout,使元素根据自身内容计算宽高
6: 空标签清浮动。
问题:IE6最小高度19px,(有2px偏差)
7: overflow: hidden
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>完美清浮动</title>
<style type="text/css">
.clear:after{
content: '';
display: block;
clear: both;
}
.clear{
*zoom:1;
}
.parent{
border: 1px solid red;
}
.son{
background: pink;
width: 200px;
height: 200px;
float:left;
}
</style>
</head>
<body>
<div class="parent clear">
<div class="son"></div>
</div>
</body>
</html>
转载于:https://blog.51cto.com/12907581/1929513