标准流:行内/行内块元素横向有序排列 ; 块元素纵向有序排列。
浮动:Float
语法:float:left/right ; 设置浮动的元素,脱离标准流
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
可能的值 描述
left 元素向左浮动。
right 元素向右浮动
none 默认值,元素不浮动,并会显示在其在文本中出现的位置
inherit 规定应该从父元素继承float属性的值
特点:浮动找浮动,不浮动找不浮动
浮动只影响后面的元素
浮动以元素顶部为基准对齐
浮动可是实现模式转换(span设置浮动可以设置宽高 )
让块级元素在一行显示
浮动的作用: 文本绕图 | 制作导航 | 网页布局
当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘。
当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。
如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。
如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:
清除浮动: 当父盒子没有定义宽度,嵌套的盒子浮动后,下边的元素发生位置错误。 清除浮动不是不用浮动,清除浮动产生的方法
清除浮动的方式:
给父容器设置高度/ 通过设置clear:left | right| both /给父容器设置overflow:hidden
Left:不允许左浮动
Right:不允许右浮动
Both:左右都不允许浮动
None:默认值,允许浮动元素出现在左右两侧
Inherit:继承
通过伪元素
Overflow 介绍:
Overfolw属性规定当内容溢出元素框时发生的事情。
overflow:visible 默认值。内容不会被修剪,会呈现在元素框之外
Overflow:hidden 内容会被修剪,并且其余内容是不可见的。
Overflow:scroll 内容被修剪,但浏览器会显示滚动条以便查看其余的内容。
Overflow:auto 若内容被修建,则浏览器会显示滚动条以便查看其余的内容。
——————————————————————
最好的方法:
.clearfix : after {
Content:” .” ;
Display:block ;
Line-height:0;
Height:0;
Visibility:hidden;
Clear:both;
}
.clrarfix{
Zoom:1 ;
}
————————————————
CSS定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位
除非专门指定,否则所有框都在普通流中定位。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
定位 position
定位方向:left 、right、top、bottom
Position : static 静态定位
Position :absolute 绝对定位
Position :relative 相对定位
Position : fixed 固定定位
静态定位:(static)
按照标准流的显示方式 取消定位:position:static
绝对定位:(absoloute)
绝对定位以浏览器左上角为基准设置位置 ,脱离标准流
当一个盒子包含在另一个盒子中,父盒子设置定位,子盒子以父盒子左上角为基准设置位置
绝对定位绝对不占空间位置(与浮动一样)
绝对定位可以 实现模式转换 给行内元素使用绝对定位之后,转换为行内块。(不推荐使用,推荐使用display:inline-bolck;
相对定位:position - relative
相对定位以自身元素的位置为基准设置位置
相对定位 占位置
一般子元素设置相对定位,父元素设置绝对定位(子绝父相)
行内元素使用相对定位不能转行内块
嵌套的盒子,父元素相对定位,子元素绝对定位,子元素从父元素出发设置自身位置。
固定定位: position--fixed
固定定位之后,不占据原来的位置(脱标)
元素使用固定定位之后,位置从浏览器出发
元素使用固定定位之后,会转化为行内块(不推荐使用)
css初始化
腾讯:
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}
body{font:12px"宋体","Arial Narrow",HELVETICA;background:#fff;-webkit-text-size-adjust:100%;}
a{color:#2d374b;text-decoration:none}
a:hover{color:#cd0200;text-decoration:underline}
em{font-style:normal}
li{list-style:none}
img{border:0;vertical-align:middle}
table{border-collapse:collapse;border-spacing:0}
p{word-wrap:break-word}
新浪:
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;}
body{background:#fff;color:#333;font-size:12px; margin-top:5px;font-family:"SimSun","宋体","Arial Narrow";}
ul,ol{list-style-type:none;}
select,input,img,select{vertical-align:middle;}
a{text-decoration:none;}
a:link{color:#009;}
a:visited{color:#800080;}
a:hover,a:active,a:focus{color:#c00;text-decoration:underline;}
淘宝:
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font:12px/1.5tahoma, arial, 5b8b4f53; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; }
table { border-collapse:collapse; border-spacing:0; }
TIY 实例练习
- float 属性的简单应用
- 使图像浮动于一个段落的右侧。
- 将带有边框和边界的图像浮动于段落的右侧
- 使图像浮动于段落的右侧。向图像添加边框和边界。
- 带标题的图像浮动于右侧
- 使带有标题的图像浮动于右侧
- 使段落的首字母浮动于左侧
- 使段落的首字母浮动于左侧,并向这个字母添加样式。
- 创建水平菜单
- 使用具有一栏超链接的浮动来创建水平菜单。
- 创建无表格的首页
- 使用浮动来创建拥有页眉、页脚、左侧目录和主体内容的首页。