HTML4.01+CSS2.0教程(四)

2/25/2017 10:26:17 PM

css定位

一切皆為框:

  • div、h1 或 p 元素常常被稱為塊級元素,即“塊框”。
  • span拂共,strong等稱為行內(nèi)元素,即“行內(nèi)框”姻几。
  • 把文本添加到一個塊級元素的開頭(如<div> some text <p>Some more text.</p> </div>)宜狐,即使沒有把這些文本定義為段落势告,它也會被當(dāng)作段落對待,這種情況下這個框稱為無名框抚恒,不與專門定義的元素相關(guān)聯(lián)咱台。
  • 塊級元素的文本行也會發(fā)生類似的情況。假設(shè)有一個包含三行文本的段落俭驮。每行文本形成一個無名框回溺。無法直接對無名塊或行框應(yīng)用樣式,因為沒有可以應(yīng)用樣式的地方(注意表鳍,行框和行內(nèi)框是兩個概念)。

CSS 有三種基本的定位機制:普通流祥诽、浮動和絕對定位譬圣。默認(rèn)普通流。
塊級框從上到下一個接一個地排列雄坪,框之間的垂直距離是由框的垂直margin計算出來(margin合并)厘熟。
行內(nèi)框在一行中水平布置∥可以使用水平內(nèi)邊距(padding-left/right)绳姨、邊框(border-left/right)和外邊距(margin-left/right)調(diào)整它們的間距。但是阔挠,垂直內(nèi)邊距飘庄、邊框和外邊距不影響行內(nèi)框的高度。由一行形成的水平框稱為行框(Line Box)购撼,行框的高度總是足以容納它包含的所有行內(nèi)框跪削。
如下:

<!DOCTYPE html>
<html>
<head>
    <title>空標(biāo)簽合并</title>
<style type="text/css">
    br{margin: 20px;background-color: #0f0;}
    br.NO1{margin: 20px;margin-bottom: 30px;background-color: #00f;}
    p{margin: 10px 15px;background-color: #f00;color: #00f;}
    body{background-color: #000;}
    div{background-color: #fff;color: #aaa;}
    p.inline span{background-color: #dad;margin: 60px;}
</style>
</head>
<body>
<br/>
<br class="NO1" />
<p>我沒有邊框</p>
<br/>
<div>
some text
<p class="inline">Some more text.Some more <span>Some more text.</span>Some more text.Some more text.Some more text.Some more text.Some more text.Some more text.Some more text.Some more text.</p>
<p>我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空我們的天空</p>
</div>
</body>
</html>
圖片說明文字

position定位屬性:
值:static;relative迂求;absolute碾盐;fixed

  • static默認(rèn)沒有定位
    top,bottom,left,right或者z-index聲明
  • relative(相對定位)相對于自身:定義元素框偏移某個距離,這個距離可以為負值揩局。
    格式如下:p{position: relative;left: 70px;top:80px;}毫玖,將這個屬性加到上例代碼中p選擇器內(nèi)。
    此時會發(fā)生什么情況呢凌盯?我原本理解的是元素框向左偏移70px付枫,向上偏移80px,但實際如下圖:
    圖片說明文字

    relative描述為“生成相對定位的元素驰怎,相對于其正常位置(以元素框左上角為起點)進行定位励背。
    注意:在使用相對定位時,無論是否進行移動砸西,元素仍然占據(jù)原來的空間叶眉。因此址儒,移動元素會導(dǎo)致它覆蓋其它框。

‘left:20’ 會向元素的left位置添加20 像素衅疙。
所以position: relative;left: 70px;top:80px;的意思是向元素框left添加70px莲趣,top添加80px,實際即所有的p元素向右下偏移指定的值饱溢。
position:relative;left:-20px的意思是從元素框左側(cè)減去:“-20px”喧伞。

  • absolute(絕對定位)相對于static定位以外的第一個已定位的父元素:如下:
<head>
<style type="text/css">
h2.pos_abs
{
position:absolute;
left:100px;
top:150px
}
</style>
</head>
<body>
<h2 class="pos_abs">這是帶有絕對定位的標(biāo)題</h2>
<p>通過絕對定位,元素可以放置到頁面上的任何位置绩郎。下面的標(biāo)題距離頁面左側(cè) 100px潘鲫,距離頁面頂部 150px。</p>
</body>

圖片說明文字

absolute絕對定位:絕對定位的元素的位置相對于最近的已定位祖先元素肋杖,如果元素沒有已定位的祖先元素溉仑,那么它的位置相對于最初的包含塊。
在本例中父元素為body状植,所以相對于整個頁面進行定位浊竟。指的是h2的margin的角點距離整個頁面左側(cè)100px,距離頁面頂部150px津畸。因為margin也屬于h2的一部分振定。
如果設(shè)置了absolute屬性彈沒有設(shè)置值,那么使用了absolute的元素在代碼中在哪個位置在瀏覽器中就還是在那個位置肉拓,absolute屬性定義的元素是脫離了文檔流后频。
設(shè)置為絕對定位的元素框從文檔流完全刪除,并相對于其包含塊定位暖途,包含塊可能是文檔中的另一個元素或者是初始包含塊徘郭。元素原先在正常文檔流中所占的空間會關(guān)閉,即完全脫離了正常的文檔流丧肴,(可能覆蓋在普通文本流上方)残揉,因此不占據(jù)空間,就好像該元素原來不存在一樣芋浮。元素定位后生成一個塊級框抱环,而不論原來它在正常流中生成何種類型的框。
提示:因為絕對定位的框與文檔流無關(guān)纸巷,所以它們可以覆蓋頁面上的其它元素镇草。可以通過設(shè)置 z-index 屬性來控制這些框的堆放次序瘤旨。

  • fixed(固定定位)相對于瀏覽器窗口
    元素的margin角點相對于整個窗口的定位梯啤。可以把fixed看作是absolute的特殊情況存哲。

注意:

  • 定位之后的元素A在顯示頁面上可能會覆蓋原本在此位置上的普通流元素B因宇,A有多大就覆蓋多達面積七婴。
  • 可用像素和百分比設(shè)置定位值。

子元素在父元素中居中定位
當(dāng)子元素定位屬性為absolute/fixed察滑,這個時候子元素脫離了文本流打厘,父元素定位屬性為relative,在沒有設(shè)置偏移量的情況下贺辰,子元素永遠在父元素里面户盯,設(shè)置了偏移量之后可能會離開父元素的界面。
在不知道父元素尺寸的情況下饲化,將一個元素在父元素中居中放置莽鸭,最簡單的方式是,給父元素設(shè)定一個relative屬性吃靠,子元素設(shè)定一個absolute/fixed屬性硫眨,如下所示:

<head>
<style type="text/css">
p {
    position: relative;
    padding: 50px;
    background-color: #f00;
}
span{position: absolute;
left: 50%;
top: 50%;
background-color: green;
transform: translate(-50%,-50%);}
</style>
</head>
<body>
    <p>aswwwwwwwwwwd <span>artfgyhjk</span></p>
</body>

span元素在p元素內(nèi),設(shè)定span{left: 50%;top: 50%;}撩笆,即span以p元素長寬為基數(shù)捺球,以自身左上角為基點缸浦,向右偏移50%夕冲,向下偏移50%,此時span元素左上角與p元素中心點對齊裂逐。我們要實現(xiàn)的是中心點與中心點對齊歹鱼,此時再額外設(shè)定一個transform: translate(-50%,-50%),使span以自身的長寬為基數(shù),以自身左上角為基點卜高,向左偏移50%弥姻,向上偏移50%,成功啦~
注意:以下這兩段代碼實現(xiàn)的效果相同

span{position: absolute;
left: 50%;
top: 50%;
background-color: green;
transform: translate(-50%,-50%);}
span{position: absolute;
right: 50%;
bottom: 50%;
background-color: green;
transform: translate(50%,50%);}

設(shè)置元素的形狀
檢索或設(shè)置對象的可視區(qū)域掺涛。區(qū)域外的部分是透明的庭敦。
clip屬性剪裁絕對定位元素,只有當(dāng)position的值設(shè)定為“absolute”或“fixed”時薪缆,clip屬性才可以用秧廉。
clip值為auto(默認(rèn))和shape。

  • auto:默認(rèn)不剪裁拣帽。
  • shape:設(shè)置元素的形狀疼电,唯一合法的形狀值是:rect (top, right, bottom, left)

rect(<number>|auto <number>|auto <number>|auto <number>|auto): 依據(jù)上-右-下-左的順序提供自對象左上角為(0,0)坐標(biāo)計算的四個偏移數(shù)值,其中任一數(shù)值都可用auto替換减拭,即此邊不剪切蔽豺。

  • 示例1:clip:rect(auto 50px 20px auto)

說明:上邊不剪切,從右往左剪切到圖片寬度為50px拧粪,從下往上剪切到圖片高度為20px修陡,左邊不剪切沧侥。

  • 示例2:clip:rect(10px 70px 40px 10px)

說明:圖片從上往下剪切10px,從右往左剪切到圖片寬度為(70-10)px濒析,從下往上剪切到圖片高度為(40-10)px正什,從左往右剪切10px
即:盒子的實際高度為|bottom-top|,實際寬度為|right-left|号杏。
(和截圖時調(diào)整寬度和高度是一樣的道理)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婴氮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盾致,更是在濱河造成了極大的恐慌主经,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庭惜,死亡現(xiàn)場離奇詭異罩驻,居然都是意外死亡,警方通過查閱死者的電腦和手機护赊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門惠遏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骏啰,你說我怎么就攤上這事节吮。” “怎么了判耕?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵透绩,是天一觀的道長。 經(jīng)常有香客問我壁熄,道長帚豪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任草丧,我火速辦了婚禮狸臣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昌执。我一直安慰自己烛亦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布仙蚜。 她就那樣靜靜地躺著此洲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪委粉。 梳的紋絲不亂的頭發(fā)上呜师,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音贾节,去河邊找鬼汁汗。 笑死衷畦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的知牌。 我是一名探鬼主播祈争,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼角寸!你這毒婦竟也來了菩混?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扁藕,失蹤者是張志新(化名)和其女友劉穎沮峡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亿柑,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡邢疙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了望薄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疟游。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痕支,靈堂內(nèi)的尸體忽然破棺而出颁虐,到底是詐尸還是另有隱情,我是刑警寧澤采转,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布聪廉,位于F島的核電站瞬痘,受9級特大地震影響故慈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜框全,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一察绷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧津辩,春花似錦拆撼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚜印,卻和暖如春莺禁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窄赋。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工哟冬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留楼熄,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓浩峡,卻偏偏與公主長得像可岂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翰灾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案缕粹? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,759評論 1 92
  • Html 標(biāo)簽 斜體 粗體 單獨的樣式 引用文本 長文本引用 換行 空格 分割線 地址信息 單行代碼 多行代碼 無...
    SunnySky_閱讀 557評論 0 5
  • 學(xué)習(xí)建議 定位致开、浮動是 CSS 核心知識點,必須熟練掌握萎馅。 1.文檔流的概念指什么双戳?有哪種方式可以讓元素脫離文檔流...
    饑人谷_任磊閱讀 1,093評論 0 3
  • 本課來自http://www.imooc.com/learn/9請不要用作商業(yè)用途。 HTML5 HTML介紹 H...
    PYLON閱讀 3,233評論 0 5
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表糜芳,主要用...
    寥寥十一閱讀 1,839評論 0 6