定位方式 及CSS高级技巧

定位

Background-position 背景位置算法

浮动,在一个浮字上面,咱们的定位,在一个位上。CSS离不开定位,特别是后面的JS特效,每天和定位打交道。浏览器

为何要使用定位?

 

 

 

 

 

 

元素的定位属性

元素的定位属性主要包括定位模式和边偏移两部分。spa

一、边偏移3d

 

边偏移属性指针

描述orm

top对象

顶端偏移量,定义元素相对于其父元素上边线的距离blog

bottom图片

底部偏移量,定义元素相对于其父元素下边线的距离ip

left

左侧偏移量,定义元素相对于其父元素左边线的距离

right

右侧偏移量,定义元素相对于其父元素右边线的距离

 

二、定位模式

Position属性用于定义元素的定位模式,其基本语法格式以下:

 

 

 

静态定位(static)

静态定位是全部元素的默认定位方式,当position属性的取值是static时,能够将元素定位于静态位置。所谓静态位置就是各个在HTML文档流中默认的位置。

 

相对定位relative(自恋型)

相对定位是将元素相对于它在标准流中的位置进行定位,当position属性的取值为relative时,能够将元素定位于相对位置。

对元素设置相对定位后,能够经过边偏移量改变元素的位置,可是它在文档流中的位置仍然保留。

 

 

注意:

一、相对定位能够经过偏移量移动位置,可是原来的所占位置继续保留(相似于停薪留职)。

二、每次移动的位置,是以本身的左上角为基点移动。(相对于本身来移动位置)

就是说,相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。(相对定位不脱标)

若是说浮动的主要目的是 让多个块级元素一行显示,那么定位的主要价值就是 移动位置,让盒子到咱们想要的位置上去。

 

绝对定位absolute(拼爹型)

注意:若是文档可滚动,绝对定位元素会随着它滚动,由于元素最终会相对于正常流的某一部分地位。

当position属性的取值为absolute时,能够将元素的定位模式设置为绝对定位。

注意:绝对定位最重要的一点是,它能够经过偏移量移动位置,可是它彻底脱标,彻底不占位置。

 
父级没有定位

父级没有定位,取上一级定位,body的定位就是浏览器当前屏幕为准对齐。

 

 

 
父级有定位

 

 

 
子绝父相

子绝父相:子级是绝对定位的话,父级要用相对定位。

绝对定位是将元素依据最近的已经定位绝对、固定或相对定位的父元素(祖先)进行定位。

 

绝对定位的盒子水平/垂直居中

普通的盒子是左右margin改成auto就可,可是对于绝对定位就无效了

定位的盒子也能够水平或者垂直居中,有一个算法:

一、首先left 50% 父盒子的一半大小

二、而后走本身外边距负的一半值就能够了 margin-left

 

固定定位fixed(认死理型)

固定地位是绝对定位的一种特殊形式。它以浏览器窗口做为参照物来定义网页元素。当position属性的取值为fixed时,便可将元素的定位模式设置为固定定位。

当对元素设置固定定位后,它将脱离标准文档流动的控制,始终依据浏览器窗口来定义本身的显示位置。无论浏览器滚动条如何滚动,也无论浏览器窗口的大小如何变化,该元素都会始终显示在浏览器窗口的固定位置。

固定定位有2点:

一、固定定位的元素跟父亲没有任何关系,只认浏览器

二、固定定位彻底脱标,不占有位置,不随着滚动条滚动。

 

叠放次序(z-index)

 

 

注意:z-index:100;

一、z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居中。

二、若是取值相同,则根据书写顺序,后来居上

三、后面数字必定不能加单位

四、只有相对定位、绝对定位、固定定位有此属性,其他标准流、浮动、静态定位都无此属性,亦不可指定此属性。

 

四种定位总结

定位模式

是否脱标占有位置

是否能够使用边偏移

移动位置基准

静态static

不脱标,正常模式

不能够

正常模式

相对定位relative

不脱标,占有位置

能够

相对自身位置移动

绝对定位absolute

彻底脱标,不占有位置

能够

相对于定位父级移动位置

固定定位fixed

彻底脱标,不占有位置

能够

相对于浏览器移动位置

 

 

定位模式转换

跟浮动同样,元素添加了绝对定位和固定定位以后,元素模式也会发生转换,都转换为 行内块模式。

所以 好比 行内元素 若是添加了 绝对定位或者 固定定位后 浮动后,能够不用转换模式,直接给高度和宽度就能够了。

 

元素的显示与隐藏

在CSS中 三个显示和隐藏的单词,分别是display、visibility、overflow。

他们的主要目的是让一个元素在页面中消失,可是不在源码中删除。

 

Display显示

Display 设置或检索对象是否及如何显示。

Display:none 隐藏对象  与它相反的是display:block除了转换为块级元素以外,同时还有显示元素的意思。

特色:隐藏以后,不在保留位置。

 

Visibility可见性

设置或检索是否显示对象。

Visible:对象可视

Hidden:对象隐蔽

特色:隐藏以后,继续保留原有位置。(停薪留职)

Visibility:hidden; 显示

 

Overflow溢出

检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。

Visible:不剪切内容也不添加滚动条

Auto:超出自动显示滚动条,不超出不显示滚动条

Hidden:不显示超过对象尺寸的内容,超出的部分隐藏掉

Scoll:无论超出内容否,老是显示滚动条

Overflow:auto; 超出自动显示滚动条,不超出不显示滚动条。

 

CSS高级技巧

Css用户界面样式

所谓界面样式,就是更改一些用户操做样式,好比更改用户的鼠标样式,表单轮廓。可是好比滚动条的样式改动受到了不少浏览器的抵制。

 

鼠标样式cursor

设置或检索在对象上移动的鼠标指针采用何种系统预约义的光标形状。

 Cursor:default小白  | pointer 小手 | move 移动 | text 文本

 

 

轮廓outline

是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的做用。

 

 

防止拖曳文本域resize

Resize:none 能够防止 火狐 谷歌等浏览器随意的拖动 文本域

右下角能够拖曳:

<textarea>ddaaa</textarea>

 

 

Vertical-align垂直对齐

设置或检索对象内容的垂直对齐方式。

 

 

Vertical-align:baseline 基线对齐,默认的是文字和图片基线对齐

Vertical-align:top     顶部对齐,默认的是文字和图片顶部对齐

Vertical-align:middle 垂直对齐,默认的是文字和图片中线对齐

Vertical-align:bottom 底部对齐,默认的是文字和图片底部对齐

  

图片、表单和文字对齐

Vertical-align控制图片和文字的垂直关系。默认的图片会和文字基线对齐。

 
去除图片底侧空白缝隙

图片或表单行内块元素,他的底线会和父级盒子的基线对齐。

解决方法:

一、给 img Vertical-align:middle | top 等等,让图片不要和基线对齐。

 

 

二、给img 添加display:bloc;转换为块级元素就不会存在问题了。

 

 

 

溢出的文字隐藏省略号代替

 

White-space

White-space设置或检索对象内文本显示方式。一般咱们使用于强制一行显示内容

Normal:默认处理方式

Nowrap:强制在同一行内显示全部文本,直到文本结束或者遭遇br标签对象才换行

能够处理中文

 

Text-overflow文字溢出省略号代替

Text-overflow:  clip | ellipsis

设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。

Clip:不显示省略标记(...),而是简单的裁切

Ellipse:当对象内文本溢出时显示省略标记(...)

 

 

PS:必定要首先强制在一行内显示,再次和overflow属性 搭配使用

相关文章
相关标签/搜索