定位方式 及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屬性 搭配使用

相關文章
相關標籤/搜索