成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CSS學(xué)習(xí)筆記(六) 元素定位

浠ラ箍 / 3151人閱讀

摘要:方法一為父元素添加方法二同時(shí)浮動(dòng)元素方法三添加非浮動(dòng)的清除元素定位布局的核心是屬性,對(duì)元素盒子應(yīng)用這個(gè)屬性,可以相對(duì)于它在常規(guī)文檔流中的位置重新定位。絕對(duì)定位絕對(duì)定位會(huì)把元素徹底從文檔流中拿出來,然后相對(duì)于其他元素默認(rèn)是定位上下文定位。

1.盒模型

盒模型,就是 瀏覽器為頁面中的每個(gè) HTML 元素生成的矩形盒子。

這些盒子們都要按照 可見版式模型visual formatting model)在頁面上排布。可見的頁面版式主要由三個(gè)屬性控制: position 屬性、 display 屬性和 float 屬性。其中,position 屬性控制頁面上元素間的位置關(guān)系, display 屬性控制元素是堆疊、并排,還是根本不在頁面上出現(xiàn), float 屬性提供控制的方式,以便把元素組成成多欄布局。

盒子屬性分三組:

邊框(border)??梢栽O(shè)置邊框的寬窄、樣式和顏色。

內(nèi)邊距(padding)??梢栽O(shè)置盒子內(nèi)容區(qū)與邊框的間距。

外邊距(margin)??梢栽O(shè)置盒子與相鄰元素的間距。

  

可以這么理解盒子屬性:外邊距是邊框向 外推 其他元素,而內(nèi)邊距是從邊框向 內(nèi)推 元素的內(nèi)容。

CSS 為邊框、內(nèi)邊距和外邊距分別規(guī)定了簡寫屬性。在每個(gè)簡寫聲明中,屬性值的順序都是上、右、下、左(順時(shí)針旋轉(zhuǎn))。
示例:margin:5px 10px 12px 8px;

  

注意:4 個(gè)值之間有空格,但不能是其他分隔符(比如逗號(hào)之類的)。甚至,你都不用把 4 值
全都寫出來——如果哪個(gè)值沒有寫,那就使用對(duì)邊的值

示例margin:12px 10px 6px;
說明:缺少最后一個(gè)值(左邊),使用對(duì)邊(右邊)的值(10px),即:margin:12px 10px 6px 10px。

示例margin:12px 10px;
說明:缺少最后兩個(gè)值(下邊和左邊),使用上邊(12px)和右邊(10px),即:margin:12px 10px 12px 10px;

示例margin:12px;
說明:只寫一個(gè)值,那么4個(gè)邊都去這個(gè)值。即:margin:12px 12px 12px 12px;

1.1 盒子邊框

邊框(border)有3個(gè)相關(guān)屬性:

寬度
可以使用 thin、mediumthick 等文本值,也可以使用
除百分比和負(fù)值之外的任何絕對(duì)值。

樣式
none、hiddendotted、 dashed、 soliddouble、 groove
ridge、 insetoutset 等文本值。

顏色
可以使用任意顏色值,包括 RGBHSL、十六進(jìn)制顏色 值顏色關(guān)鍵字。

1.2 盒子內(nèi)邊距

內(nèi)邊距(padding)用來設(shè)置盒子內(nèi)容區(qū)與邊框的間距。在沒有設(shè)定內(nèi)邊距的情況下,內(nèi)容會(huì)緊挨著邊框。

1.3 盒子外邊距

外邊距(margin)用來設(shè)置盒子與相鄰元素的間距。

  

推薦使用這條規(guī)則作為樣式表的第一條規(guī)則:* {margin:0; padding:0;}

說明:這條規(guī)則把所有元素默認(rèn)的外邊距和內(nèi)邊距都設(shè)定為零。把這條規(guī)則放到樣式表里后,所有默認(rèn)的外邊距和內(nèi)邊距都會(huì)消失。然后,你可以為那些真正需要外邊距的元素再添加外邊距。不同瀏覽器默認(rèn)的內(nèi)邊距和外邊距也不一樣,特別是對(duì)表單和列表等復(fù)合元素。在這種情況下,用這條規(guī)則 中和 默認(rèn)值,然后再根據(jù)需要添加,則會(huì)在各瀏覽器上獲得一致的效果。

1.4 疊加外邊距

垂直方向上的外邊距會(huì)疊加,這可是你必須得知道的一件事。

  

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中,兩個(gè)或多個(gè)毗鄰(父子元素或兄弟元素)的普通流中的塊元素垂直方向上的 margin 會(huì)發(fā)生疊加。這種方式形成的外邊距即可稱為外邊距疊加(collapsed margin)。

1.5 外邊距的單位

根據(jù)經(jīng)驗(yàn),為文本元素設(shè)置外邊距時(shí)通常需要混合使用不同的單位。比如說,一個(gè)段落的左、右外邊距可以使用像素,以便該段文本始終與包含元素邊界保持固定間距,不受字號(hào)變大或變小的影響。而對(duì)于上、下外邊距,以 em 為單位則可以讓段間距隨字號(hào)變化而相應(yīng)增大或縮小。

示例p {font-size:1em; margin:.75em 30px;}

2.浮動(dòng)與清除
  

浮動(dòng)和清除是用來組織頁面布局的一柄利劍,這柄劍的劍刃就是 floatclear 屬性。

2.1 浮動(dòng)

浮動(dòng),可以想象把元素從常規(guī)文檔流中拿出來。浮動(dòng)元素脫離了常規(guī)文檔流之后,原來緊跟其后的元素就會(huì)在空間允許的情況下,向上提升到與浮動(dòng)元素平起平坐

如果浮動(dòng)元素后面有兩個(gè)段落,而你只想讓第一段與浮動(dòng)元素并列(就算旁邊還能放第二段,也不想讓它上來),可以使用 clear 屬性來 清除 第二段,然后它就會(huì)乖乖地呆在浮動(dòng)元素下面了。

浮動(dòng) 最常見的作用

實(shí)現(xiàn)傳統(tǒng)出版物上那種文字繞排圖片的效果

讓原來上下堆疊的塊級(jí)元素,變成左右并列,從而實(shí)現(xiàn)布局中的分欄。

2.2 圍住浮動(dòng)元素的三種方法
  

注意:三種方法各有利弊,看情況使用。

方法一:為父元素添加 overflow:hidden

方法二:同時(shí)浮動(dòng)元素

方法三:添加非浮動(dòng)的清除元素

3.定位

CSS 布局的核心是 position 屬性,對(duì)元素盒子應(yīng)用這個(gè)屬性,可以相對(duì)于它在常規(guī)文檔流中的位置重新定位。 position 屬性有 4 個(gè)值: staticrelative、 absolute、fixed,默認(rèn)值為 static

3.1 靜態(tài)定位

static

在靜態(tài)定位的情況下,每個(gè)元素都處于常規(guī)文檔流中。要突破這種布局元素的方式,就必須把盒子的 position 屬性改為其它三個(gè)值。

3.2 相對(duì)定位

relative

相對(duì)定位,相對(duì)的是它原來在文檔流中的位置(或者默認(rèn)位置)。設(shè)置之后,可以使用 top、rightbottomleft 屬性來改變它的位置。多數(shù)情況下,只用 topleft 就可以實(shí)現(xiàn)我們想要的效果。

  

使用相對(duì)定位的關(guān)鍵就是要考慮到元素原來的空間。因?yàn)槭褂昧讼鄬?duì)定位的元素只是相對(duì)于原始位置挪動(dòng)了一下,頁面沒有任何變化,即元素原來占據(jù)的空間沒有動(dòng),其他元素也沒動(dòng)。

3.3 絕對(duì)定位

absolute

絕對(duì)定位會(huì)把元素徹底從文檔流中拿出來,然后相對(duì)于其他元素(默認(rèn)是定位上下文 body)定位。同樣可以通過 topleft 設(shè)定偏移值來決定位置。

3.4 固定定位

fixed

從完全移出文檔流的角度說,固定定位與絕對(duì)定位類似。但不同之處在于,固定定位元素的定位上下文是視口(瀏覽器窗口或手持設(shè)備的屏幕),因此它不會(huì)隨頁面滾動(dòng)而移動(dòng)。

  

提示:固定定位并不常用,最常見的情況是用它創(chuàng)建不隨頁面滾動(dòng)而移動(dòng)的導(dǎo)航元素。

3.5 定位上下文

定位上下文,指的是定位元素所相對(duì)偏移的元素。

  

事實(shí)上,只要把元素的外邊距和內(nèi)邊距設(shè)定好,多數(shù)情況下只用靜態(tài)定位就足以實(shí)現(xiàn)頁面布局了。很多剛開始接觸 CSS 的初學(xué)者都會(huì)錯(cuò)誤地設(shè)定 position 屬性,最終才發(fā)現(xiàn)從文檔流中挪出來的這些元素一點(diǎn)也不好控制。因此,除非真需要那么做,否則 不要輕易修改元素默認(rèn)的 position 屬性。

4.顯示屬性

所有元素都有 position 屬性,也有 display 屬性。

display屬性有三個(gè)值:block、inlinenone。

塊級(jí)元素,比如段落,標(biāo)題,列表等,在瀏覽器上下堆疊顯示。

行內(nèi)元素,比如aspan、img,在瀏覽器中左右并排顯示,只有前一行沒有空間時(shí)才會(huì)顯示到下一行。

把塊級(jí)元素變成行內(nèi)元素(或者相反)

/*默認(rèn)為 block*/
p {display:inline;}

/*默認(rèn)為 inline*/
a {display:block;}

把元素的 display 設(shè)置為 none,則該元素及所有包含在其中的元素,都不會(huì)在頁面顯示,它們?cè)日紦?jù)的空間也不會(huì)被回收,就好像相關(guān)標(biāo)記根本不存在一樣。

與此相對(duì)的元素是 visibility 屬性,屬性值為:visible(默認(rèn)值)和 hidden。如果設(shè)置為 hidden,元素會(huì)被隱藏,但其占據(jù)的頁面空間會(huì)被保留。

參考資料

CSS設(shè)計(jì)指南

盒模型 - CSS | MDN

Box model - w3.org

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110988.html

相關(guān)文章

  • 26天學(xué)通前端開發(fā)(配資料)

    摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識(shí)點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個(gè)前端框架。也可以關(guān)注微信公眾號(hào)曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫學(xué)習(xí)路徑,還要寫學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...

    blair 評(píng)論0 收藏0
  • CSS世界》筆記四:流的保護(hù)與破壞

    摘要:和可以看作是同父異母的兄弟關(guān)系。例子如下結(jié)果如下而父元素設(shè)置屬性的方式則是利用了的特性下面將會(huì)詳細(xì)講解結(jié)界全稱為,中文為塊級(jí)格式化上下文。 上一篇:《CSS世界》筆記三:內(nèi)聯(lián)元素與對(duì)齊下一篇:《CSS世界》筆記五:CSS層疊規(guī)則及元素隱藏 寫在前面 原本博客名為浮動(dòng)與定位,但是《CSS世界》第六章節(jié)的內(nèi)容不僅有浮動(dòng)定位,很大一部分篇幅都在講BFC和overflow。更吸引人的是,作者將...

    he_xd 評(píng)論0 收藏0
  • 學(xué)習(xí)筆記CSS深入理解之a(chǎn)bsolute

    摘要:張鑫旭的深入理解之學(xué)習(xí)筆記絕對(duì)定位的特性絕對(duì)定位與浮動(dòng)相似,都有破壞性和包裹性。利用絕對(duì)定位元素脫離文檔流的特性,使用動(dòng)畫可以避免大范圍的回流和重繪。絕對(duì)定位元素拉伸實(shí)現(xiàn)寬高自適應(yīng),可應(yīng)用于大范圍的布局。 《張鑫旭的CSS深入理解之a(chǎn)bsolute》學(xué)習(xí)筆記 絕對(duì)定位的特性 絕對(duì)定位與浮動(dòng)相似,都有破壞性和包裹性。浮動(dòng)的一些應(yīng)用場景中也可用絕對(duì)定位替代 絕對(duì)定位的行為表現(xiàn) 無依賴絕對(duì)...

    Anleb 評(píng)論0 收藏0
  • 【零基礎(chǔ)入門】 css學(xué)習(xí)筆記(4) 布局與定位 介紹

    摘要:內(nèi)聯(lián)元素在水平方向上相互挨著,總體上會(huì)從左上方流向右下方。,增加元素,設(shè)置屬性,兩個(gè)內(nèi)聯(lián)元素并排擺放,但只有左右方向有。還能與其它內(nèi)聯(lián)元素并排。 寫在前面:作為一個(gè)剛開始寫技術(shù)博客的新手,看到有人收藏了文章,寫作動(dòng)力又猛增了。這應(yīng)該就是寫技術(shù)博客的好處之一:能給自己增加成就感和驅(qū)動(dòng)力。最近關(guān)于css布局和定位相關(guān)內(nèi)容整理地有點(diǎn)慢,因?yàn)橥瑫r(shí)在做freecodecamp上的題,所以節(jié)奏有點(diǎn)...

    nevermind 評(píng)論0 收藏0
  • CSS學(xué)習(xí)筆記】絕對(duì)定位的父類參照物的確定

    摘要:今天看定位的課程,了解到一個(gè)元素要設(shè)置絕對(duì)定位,需要確定一個(gè)父類或者祖先類參照物,默認(rèn)是根元素。第三步,在第二步的基礎(chǔ)上給添加屬性聲明小結(jié)唉,這次卻被擒獲了唉,怎么回事沒錯(cuò),做絕對(duì)定位的祖先參照物,是設(shè)置了相對(duì)定位且離最近的那個(gè)祖先類元素。 今天看CSS定位的課程,了解到一個(gè)元素要設(shè)置絕對(duì)定位,需要確定一個(gè)父類或者祖先類參照物,默認(rèn)是根元素html。這個(gè)默認(rèn)根元素已經(jīng)明確,但是祖先類元...

    cooxer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

浠ラ箍

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<