作者:jeson1232 | 来源:互联网 | 2023-08-06 00:41
1、块级元素独占一行行内元素可以在一行显示,但是不能设置上下的padding和margin值。块级元素可以设置width,height属性,行内元素设置width,
1、 块级元素独占一行
行内元素可以在一行显示,但是不能设置上下的padding和margin值。
块级元素可以设置 width, height属性,行内元素设置width, height无效
块级元素可以设置margin 和 padding.
行内元素的水平方向的padding-left,padding-right,margin-left,margin-right 都产生边距效果,
但是竖直方向的padding-top,padding-bottom,margin-top,margin-bottom都不会产生边距效果。
(即行内元素水平方向有效,竖直方向无效)
2、块级元素转行内元素:display:inline;
行内元素转块级元素:display:block;
3、常见的块级元素、行内元素与行内块元素
块级元素 :div、h系列、li、dt、dd、p
行内元素 :span、u、a、、em、b、i、u、em
行内块元素:input 、img 、button 、texterea 、label。
浮动以后一定要给父元素添加overflow
当li设置float:left;的时候,它的父元素就不会随着li的增多自适应高度(主要是FF等浏览器),所以,如果父元素有背景的话是不会随着li的高度增加而出现的。
这个时候可以给父元素加1个属性,overflow:hidden;
为什么li在浮动(float)时,给父元素加1个属性,overflow:hidden;父标签就能自适应高度
解决float浮动带来的父元素高度没有的问题---清除浮动
float的特性 :
1:使元素block块级化;
2:破坏性造成的紧密排列特性。
基于以上的特性,使得我们通常把浮动用来布局,带来的问题是,容易出问题,重用性不行,ie6-的版本下很多问题,因为它是要求固定的宽度,宽度计算错误就会带来整个布局的错乱。
float属性出现的初衷是为了让文字环绕图片实现图文混排的效果和应用于流体布局,所以float浮动带来的父元素高度没有的问题并不是我们说的是一个 BUG,这本身就是float的特性。
以下是解决float浮动带来的父元素高度没有的问题
测试为IE5+
1:在父元素的里面浮动元素的后面添加一个样式为clear:both;的元素;缺点是添加了无用的标签元素;
.clear{ clear:both; height:0px; font-size: 1px; line-height: 0px;overflow:hidden; }/* 清除浮动*/
2:给父元素添加伪类并给样式(.fix应用在包含浮动子元素的父元素上)
.fix:after{content:"";display: block;height: 0;overflow: hidden;clear: both;}
.fix{*zoom:1;} //兼容ie7以下
或者
.fix:after{content:"";display: table;clear: both;}
.fix{*zoom:1;}
3:直接给父元素添加一句样式:
父元素{overflow: hidden;}