CSS元素有哪些重要的定位方法_CSS元素定位有什么方法
CSS有三種基本的定位機(jī)制:普通流、浮動和絕對定位。下面由學(xué)習(xí)啦小編為大家整理的CSS元素定位方法,希望大家喜歡!
CSS元素定位方法
盒子屬性分三組:
邊框(border)??梢栽O(shè)置邊框的寬窄、樣式和顏色。
內(nèi)邊距(padding)。可以設(shè)置盒子內(nèi)容區(qū)與邊框的間距。
外邊距(margin)。可以設(shè)置盒子與相鄰元素的間距。
可以這么理解盒子屬性:外邊距是邊框向 外推 其他元素,而內(nèi)邊距是從邊框向 內(nèi)推 元素的內(nèi)容。
CSS 為邊框、內(nèi)邊距和外邊距分別規(guī)定了簡寫屬性。在每個簡寫聲明中,屬性值的順序都是上、右、下、左(順時針旋轉(zhuǎn))。
1.1 盒子邊框
邊框(border)有3個相關(guān)屬性:
寬度
可以使用 thin、medium 和 thick 等文本值,也可以使用
除百分比和負(fù)值之外的任何絕對值。
樣式
有 none、hidden、 dotted、 dashed、 solid、 double、 groove、
ridge、 inset 和 outset 等文本值。
顏色
可以使用任意顏色值,包括 RGB、 HSL、十六進(jìn)制顏色 值和顏色關(guān)鍵字。
1.2 盒子內(nèi)邊距
內(nèi)邊距(padding)用來設(shè)置盒子內(nèi)容區(qū)與邊框的間距。在沒有設(shè)定內(nèi)邊距的情況下,內(nèi)容會緊挨著邊框。
1.3 盒子外邊距
外邊距(margin)用來設(shè)置盒子與相鄰元素的間距。
推薦使用這條規(guī)則作為樣式表的第一條規(guī)則:* {margin:0; padding:0;}
說明:這條規(guī)則把所有元素默認(rèn)的外邊距和內(nèi)邊距都設(shè)定為零。把這條規(guī)則放到樣式表里后,所有默認(rèn)的外邊距和內(nèi)邊距都會消失。然后,你可以為那些真正需要外邊距的元素再添加外邊距。不同瀏覽器默認(rèn)的內(nèi)邊距和外邊距也不一樣,特別是對表單和列表等復(fù)合元素。在這種情況下,用這條規(guī)則 中和 默認(rèn)值,然后再根據(jù)需要添加,則會在各瀏覽器上獲得一致的效果。
1.4 疊加外邊距
垂直方向上的外邊距會疊加,這可是你必須得知道的一件事。
In CSS, the adjoining margins of two or more boxes (which might or might not be siblings) can combine to form a single margin. Margins that combine this way are said to collapse, and the resulting combined margin is called a collapsed margin.
在CSS中,兩個或多個毗鄰(父子元素或兄弟元素)的普通流中的塊元素垂直方向上的 margin 會發(fā)生疊加。這種方式形成的外邊距即可稱為外邊距疊加(collapsed margin)。
1.5 外邊距的單位
根據(jù)經(jīng)驗,為文本元素設(shè)置外邊距時通常需要混合使用不同的單位。比如說,一個段落的左、右外邊距可以使用像素,以便該段文本始終與包含元素邊界保持固定間距,不受字號變大或變小的影響。而對于上、下外邊距,以 em 為單位則可以讓段間距隨字號變化而相應(yīng)增大或縮小。
2.浮動與清除
浮動和清除是用來組織頁面布局的一柄利劍,這柄劍的劍刃就是 float 和 clear 屬性。
2.1 浮動
浮動,可以想象把元素從常規(guī)文檔流中拿出來。浮動元素脫離了常規(guī)文檔流之后,原來緊跟其后的元素就會在空間允許的情況下,向上提升到與浮動元素平起平坐。
如果浮動元素后面有兩個段落,而你只想讓第一段與浮動元素并列(就算旁邊還能放第二段,也不想讓它上來),可以使用 clear 屬性來 清除 第二段,然后它就會乖乖地呆在浮動元素下面了。
浮動 最常見的作用:
實現(xiàn)傳統(tǒng)出版物上那種文字繞排圖片的效果
讓原來上下堆疊的塊級元素,變成左右并列,從而實現(xiàn)布局中的分欄。
2.2 圍住浮動元素的三種方法
注意:三種方法各有利弊,看情況使用。
方法一:為父元素添加 overflow:hidden
方法二:同時浮動元素
方法三:添加非浮動的清除元素
3.定位
CSS 布局的核心是 position 屬性,對元素盒子應(yīng)用這個屬性,可以相對于它在常規(guī)文檔流中的位置重新定位。 position 屬性有 4 個值: static、 relative、 absolute、fixed,默認(rèn)值為 static。
3.1 靜態(tài)定位
static
在靜態(tài)定位的情況下,每個元素都處于常規(guī)文檔流中。要突破這種布局元素的方式,就必須把盒子的 position 屬性改為其它三個值。
3.2 相對定位
relative
相對定位,相對的是它原來在文檔流中的位置(或者默認(rèn)位置)。設(shè)置之后,可以使用 top、right、bottom 和 left 屬性來改變它的位置。多數(shù)情況下,只用 top 和 left 就可以實現(xiàn)我們想要的效果。
使用相對定位的關(guān)鍵就是要考慮到元素原來的空間。因為使用了相對定位的元素只是相對于原始位置挪動了一下,頁面沒有任何變化,即元素原來占據(jù)的空間沒有動,其他元素也沒動。
3.3 絕對定位
absolute
絕對定位會把元素徹底從文檔流中拿出來,然后相對于其他元素(默認(rèn)是定位上下文 body)定位。同樣可以通過 top 和 left 設(shè)定偏移值來決定位置。
3.4 固定定位
fixed
從完全移出文檔流的角度說,固定定位與絕對定位類似。但不同之處在于,固定定位元素的定位上下文是視口(瀏覽器窗口或手持設(shè)備的屏幕),因此它不會隨頁面滾動而移動。
提示:固定定位并不常用,最常見的情況是用它創(chuàng)建不隨頁面滾動而移動的導(dǎo)航元素。
3.5 定位上下文
定位上下文,指的是定位元素所相對偏移的元素。
事實上,只要把元素的外邊距和內(nèi)邊距設(shè)定好,多數(shù)情況下只用靜態(tài)定位就足以實現(xiàn)頁面布局了。很多剛開始接觸 CSS 的初學(xué)者都會錯誤地設(shè)定 position 屬性,最終才發(fā)現(xiàn)從文檔流中挪出來的這些元素一點也不好控制。因此,除非真需要那么做,否則 不要輕易修改元素默認(rèn)的 position 屬性。
4.顯示屬性
所有元素都有 position 屬性,也有 display 屬性。
display屬性有三個值:block、inline 和 none。
塊級元素,比如段落,標(biāo)題,列表等,在瀏覽器上下堆疊顯示。
行內(nèi)元素,比如a、span、img,在瀏覽器中左右并排顯示,只有前一行沒有空間時才會顯示到下一行。
CSS簡寫優(yōu)化的方法
一、盒子大小
這里主要用于兩個屬性:margin和padding,我們以margin為例,padding與之相同。盒子有上下左右四個方向,每個方向都有個外邊距:
margin-top:1px;
margin-right:2px;
margin-bottom:3px;
margin-left:4px;
你可以簡寫成:
margin:1px 2px 3px 4px;
語法 margin:top right bottom left;
二、邊框(border)
邊框的屬性如下:
border-width:1px;
border-style:solid;
border-color:#000;
可以縮寫為一句:
border:1px solid #000;
語法 border:width style color;
三、背景(Backgrounds)
背景的屬性如下:
background-color:#f00;
background-image:url(background.gif);
background-repeat:no-repeat;
background-attachment:fixed;
background-po sition:00;
四、字體(fonts)
字體的屬性如下:
font-style:italic;
font-variant:small-caps;
font-weight:bold;font-size:1em;
line-height:140%;
font-family:"Lucida Grande",sans-serif;
五、列表(lists)
取消默認(rèn)的圓點和序號可以這樣寫list-style:none;,
list的屬性如下:
list-style-type:square;
list-style-po sition:inside;
list-style-image:url(image.gif);
六、顏色(Color)
16進(jìn)制的色彩值,如果每兩位的值相同,可以縮寫一半。例如:
Aqua: #00ffff ——#0ff
Black: #000000 ——#000
Blue: #0000ff ——#00f
Dark Grey: #666666 ——#666
Fuchsia:#ff00ff ——#f0f
Light Grey: #cccccc ——#ccc
Lime: #00ff00 ——#0f0
Orange: #ff6600 ——#f60
Red: #ff0000 ——#f00
White: #ffffff ——#fff
Yellow: #ffff00 ——#ff0
七、屬性值為0
書寫原則是如果CSS屬性值為0,那么你不必為其添加單位(如:px/em),你可能會這樣寫:
padding:10px 5px 0px 0px;
試試這樣吧:
padding:10px 5px 00 ;
CSSRGB顏色如何用
一、RGB顏色模型解釋
RGB顏色模型就是一種描述某個顏色里面有多少紅、綠、藍(lán)三原色的量的方法,就像把水彩顏料或油彩顏料混合起來得到某種我們想要的真實色彩一樣。
想象下如果你要配出一個純藍(lán)色,為了實現(xiàn)這個,你就不能把紅色和綠色放進(jìn)這個顏色里。所以我們就把紅、綠設(shè)置為0%,把綠設(shè)置為100%:
二、CSS Code復(fù)制內(nèi)容到剪貼板
rgb(0%, 0%, 100%)
結(jié)果:
但如果你想要的不是藍(lán)色而是紫紅色,那該怎么辦呢?我們可以通過將100%的紅和100%的藍(lán)混合起來得到紫紅色:
三、CSS Code復(fù)制內(nèi)容到剪貼板
rgb(100%, 0%, 100%)
結(jié)果:
從基礎(chǔ)的色彩理論,我們知道了沒有任何顏色就是黑色。所以為了得到黑色我們可以通過設(shè)置紅、綠、藍(lán)三原色為0%來實現(xiàn):
四、CSS Code復(fù)制內(nèi)容到剪貼板
rgb(0%, 0%, 0%)
結(jié)果:
五、如何確定RGB顏色的值
我們可以使用Photoshop的拾色器功能來獲取特定色彩的紅、綠、藍(lán)三原色的數(shù)值,但也有免費的網(wǎng)上工具比如Color Slider和The RGB Color Calculator。
w3school上對RGB顏色的解釋:
六、RGB 顏色
所有瀏覽器都支持 RGB 顏色值。
RGB 顏色值是這樣規(guī)定的:rgb(red, green, blue)。每個參數(shù) (red、green 以及 blue) 定義顏色的強(qiáng)度,可以是介于 0 與 255 之間的整數(shù),或者是百分比值(從 0% 到 100%)。