如果,說浮動, 關鍵在乙個 「浮」 字上面, 那麼 我們的定位,關鍵在於乙個 「位」 上。
如果用標準流或者浮動,實現會比較複雜或者難以實現,此時我們用定位來做
元素的定位屬性主要包括定位模式和邊偏移兩部分。
1、邊偏移
邊偏移屬性
描述top
頂端偏移量,定義元素相對於其父元素上邊線的距離
bottom
底部偏移量,定義元素相對於其父元素下邊線的距離
left
左側偏移量,定義元素相對於其父元素左邊線的距離
right
右側偏移量,定義元素相對於其父元素右邊線的距離
也就說,以後定位要和這邊偏移搭配使用了, 比如 top: 100px; left: 30px;
2、定位模式(定位的分類)
在css中,position屬性用於定義元素的定位模式,其基本語法格式如下:
選擇器position屬性的常用值值描述
static
自動定位(預設定位方式)
relative
相對定位,相對於其原文件流的位置進行定位
absolute
絕對定位,相對於其上乙個已經定位的父元素進行定位
fixed
固定定位,相對於瀏覽器視窗進行定位
靜態定位是所有元素的預設定位方式,當position屬性的取值為static時,可以將元素定位於靜態位置。 所謂靜態位置就是各個元素在html文件流中預設的位置。
白話:網頁中所有元素都是靜態定位,也就是標準流的特性
在靜態定位下,沒有偏移量
相對定位不脫標(不脫離標準流)
相對定位是將元素相對於它在標準流中的位置進行定位,當position屬性的取值為relative時,可以將元素定位於相對位置。
注意:1.元素相對定位後,雖然可以用便偏移量改變位置,但是在文件流中的位置仍保留。
2.每次移動的位置,都是以自己的左上角為基點移動
浮動:多個塊級元素一行顯示
相對定位:主要價值就是移動位置
絕對定位完全脫標
當position屬性的取值為absolute時,可以將元素的定位模式設定為絕對定位。
若所有父元素都沒有定位,以瀏覽器為準對齊(document文件)。
絕對定位是將元素依據最近的已經定位(絕對、固定或相對定位)的父元素(祖先)進行定位。
非常重要,是我們的口訣
首先,絕對定位是將元素依據最近的已經定位絕對,固定,相對的父元素(祖先)進行定位。
也就是說,子級絕對定位,父級只要是定位(除static靜態定位)就可以,也就是說,子絕父絕也行
那麼,為何父級要求時相對定位呢?
子級絕對定位,父級就用相對定位(最優解),因為子級時絕對定位不佔位置,就可放在父級的任何位置
因為父盒子在布局時,需要占有位置,因此父級要相對定位
都是乙個意思。
最普通的布局叫標準流
普通的盒子是左右margin 改為 auto就可, 但是對於絕對定位就無效了
水平居中的演算法:
1.left 50% ,父盒子的一半大小
2.再有外邊距負的一半值即可
它以瀏覽器視窗作為參照物來定義網頁元素。當position屬性的取值為fixed時,即可將元素的定位模式設定為固定定位。
固定定位是一種特殊的絕對定位
當對多個元素同時設定定位時,定位元素之間有可能會發生重疊。
1.預設值是0,取值越大,定位元素越居上
2.取值相同,看書寫順序
3.數字沒有單位
4.只有定位才有該屬性,浮動,標準流,靜態定位都沒有該屬性
定位模式
是否脫標(脫離標準流)
是否使用偏移量
移動位置基準
靜態static
不脫標,正常模式
不可以正常
相對定位relative
不脫標,占有位置
可以相對與自己移動
絕對定位absolute
脫標,不佔位置
可以相對於定位父級移動
固定定位fixed
脫標,不佔位置
可以相對於瀏覽器移動
跟 浮動一樣, 元素新增了 絕對定位和固定定位之後, 元素模式也會發生轉換, 都轉換為 行內塊模式,
在css中有三個顯示和隱藏的單詞比較常見,我們要區分開,他們分別是 display visibility 和 overflow。
display 設定或檢索物件是否及如何顯示。
none 隱藏功能
block 除了轉換成塊級元素外,還有顯示元素功能
特點:隱藏之後,不保留位置
設定或檢索是否顯示物件。
visible : 物件可視
hidden : 物件隱藏
特點:隱藏之後,繼續保留位置
檢索或設定當物件的內容超過其指定高度及寬度時如何管理內容。
/*overflow: visible;*/ /*預設值,超出顯示*/
/*overflow: auto;*/ /*自動 超出顯示滾動條,不超出不顯示滾動條*/
/*overflow: scroll;*/ /*一直顯示滾動條*/
overflow: hidden; /*不顯示超出的內容,超出的內容隱藏*/
所謂的介面樣式, 就是更改一些使用者操作樣式, 比如 更改使用者的滑鼠樣式, 表單輪廓等。但是比如滾動條的樣式改動受到了很多瀏覽器的抵制,因此我們就放棄了。 防止表單域拖拽
設定或檢索在物件上移動的滑鼠指標採用何種系統預定義的游標形狀。
cursor : default 小白 | pointer 小手 | move 移動 | text 文字
滑鼠放我身上檢視效果哦:
>
style
="cursor
:default
">
我是小白li
>
style
="cursor
:pointer
">
我是小手li
>
style
="cursor
:move
">
我是移動li
>
style
="cursor
:text
">
我是文字li
>
ul>
盡量不要用hand 因為 火狐不支援 pointer ie6以上都支援的盡量用
是繪製於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。
outline
: outline-color ||outline-style || outline-width
但是我們都不關心可以設定多少,我們平時都是去掉的。
最直接的寫法是 : outline: 0;
type
="text"
style
="outline
: 0;
"/>
resize:none 這個單詞可以防止 火狐 谷歌等瀏覽器隨意的拖動 文字域。
右下角可以拖拽:
右下角不可以拖拽:
style
="resize
: none;
">
textarea
>
以前我們講過讓帶有寬度的塊級元素居中對齊,是margin: 0 auto;
以前我們還講過讓文字居中對齊,是 text-align: center;
但是我們從來沒有講過有垂直居中的屬性, 我們的媽媽一直很擔心我們的垂直居中怎麼做。
vertical-align 垂直對齊, 這個看上去很美好的乙個屬性, 實際有著不可捉摸的脾氣,否則我們也不會這麼晚來講解。
vertical-align
: baseline |top |middle |bottom
設定或檢索物件內容的垂直對其方式。
vertical-align 不影響塊級元素中的內容對齊,它只針對於 行內元素或者行內塊元素,特別是行內塊元素, 通常用來控制和表單等。
所以我們知道,我們可以通過vertical-align 控制和文字的垂直關係了。 預設的會和文字基線對齊。
解決的方法就是:
給img vertical-align:middle | top等等。 讓不要和基線對齊。
給img 新增 display:block; 轉換為塊級元素就不會存在問題了。
normal 使用瀏覽器預設的換行規則。
break-all 允許在單詞內換行。
keep-all 只能在半形空格或連字元處換行。
text-overflow : clip | ellipsis
設定或檢索是否使用乙個省略標記(…)標示物件內文字的溢位
clip : 不顯示省略標記(…),而是簡單的裁切
ellipsis : 當物件內文字溢位時顯示省略標記(…)
蛇皮噥的實習生活 day6
使用寬度屬性width和高度屬性height可以對盒子的大小進行控制。width和height的屬性值可以為不同單位的數值或相對于父元素的百分比 實際工作中最常用的是畫素值。大多數瀏覽器,如firefox ie6及以上版本都採用了w3c規範,符合css規範的盒子模型的總寬度和總高度的計算原則是 外盒...
蛇皮噥的實習生活 day17
1.引入相關檔案 rel stylesheet type text css href css jquery.fullpage.css src js jquery.min.js script src js jquery.easing.1.3.js script src js jquery.fullpa...
中軟實習 day7總結
使用寬度屬性width和高度屬性height可以對盒子的大小進行控制。width和height的屬性值可以為不同單位的數值或相對于父元素的百分比 實際工作中最常用的是畫素值。大多數瀏覽器,如firefox ie6及以上版本都採用了w3c規範,符合css規範的盒子模型的總寬度和總高度的計算原則是 外盒...