CSS.04 -- 浮动float、overflow、定位position、CSS初始化

时间:2023-03-09 02:18:21
CSS.04 -- 浮动float、overflow、定位position、CSS初始化

标准流:行内/行内块元素横向有序排列 ; 块元素纵向有序排列。

浮动:Float

语法:float:left/right ;  设置浮动的元素,脱离标准流

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

可能的值    描述

left      元素向左浮动。

right      元素向右浮动

none      默认值,元素不浮动,并会显示在其在文本中出现的位置

inherit    规定应该从父元素继承float属性的值

 

特点:浮动找浮动,不浮动找不浮动

浮动只影响后面的元素

浮动以元素顶部为基准对齐

浮动可是实现模式转换(span设置浮动可以设置宽高 )

让块级元素在一行显示

浮动的作用: 文本绕图 |  制作导航  |  网页布局 

CSS.04 -- 浮动float、overflow、定位position、CSS初始化

CSS.04 -- 浮动float、overflow、定位position、CSS初始化

当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘。

当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。

如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

CSS.04 -- 浮动float、overflow、定位position、CSS初始化

如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

清除浮动: 当父盒子没有定义宽度,嵌套的盒子浮动后,下边的元素发生位置错误。 清除浮动不是不用浮动,清除浮动产生的方法

清除浮动的方式:

给父容器设置高度/ 通过设置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, \5b8b\4f53; }

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 属性的简单应用
使图像浮动于一个段落的右侧。
将带有边框和边界的图像浮动于段落的右侧
使图像浮动于段落的右侧。向图像添加边框和边界。
带标题的图像浮动于右侧
使带有标题的图像浮动于右侧
使段落的首字母浮动于左侧
使段落的首字母浮动于左侧,并向这个字母添加样式。
创建水平菜单
使用具有一栏超链接的浮动来创建水平菜单。
创建无表格的首页
使用浮动来创建拥有页眉、页脚、左侧目录和主体内容的首页。