Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
用CSS有普通流、絕對(duì)定位和浮動(dòng)三種基本的定位機(jī)制,如果不是專門指定區(qū)塊的位置都是在普通流中定位,即從上到下一個(gè)接一個(gè)地排列,位置
由元素在HTML中的位置決定。
文檔中默認(rèn)都是靜態(tài)定位
使用相對(duì)定位的盒子的位置常以標(biāo)準(zhǔn)流的排版方式為基礎(chǔ), 然后使盒子相對(duì)于它在原本的標(biāo)準(zhǔn)位置偏移指定的距離。
相對(duì)定位的盒子仍在標(biāo)準(zhǔn)流中, 它后面的盒子仍以標(biāo)準(zhǔn)流方式對(duì)待它。
使用relative, 即相對(duì)定位, 除了將position屬性設(shè)置為relative之外, 還需要指定一定的偏移量,
水平方向通過(guò)left或者right屬性來(lái)指定, 垂直方向通過(guò)top和bottom來(lái)指定。
使用相對(duì)定位的盒子,會(huì)相對(duì)于它原本的位置,通過(guò)偏移指定的距離,到達(dá)新的位置。而該相對(duì)定位的盒子則仍然位于標(biāo)準(zhǔn)流中,它對(duì)父塊沒(méi)有任何影響。
使用相對(duì)定位的盒子不僅對(duì)父塊沒(méi)有任何影響,對(duì)兄弟盒子也沒(méi)有任何影響。
簡(jiǎn)單理解:
它是相對(duì)于"原來(lái)的自己"進(jìn)行定位, 相對(duì)定位元素它還占用空間, 它的層次會(huì)比普通元素要高
相對(duì)定位屬性它一般都是用于配合絕對(duì)定位來(lái)使用
相對(duì)定位有坑, 所以一般不用于做"壓蓋"效果。頁(yè)面中, 效果極小。就兩個(gè)作用:
1) 微調(diào)元素
2) 做絕對(duì)定位的參考,子絕父相(配合絕對(duì)定位一起使用)
相關(guān)屬性
可以用left、right來(lái)描述盒子右、左的移動(dòng);
可以用top、bottom來(lái)描述盒子的下、上的移動(dòng)。
用絕對(duì)定位的盒子以它的"最近"的一個(gè)"已經(jīng)定位"的"祖先元素"為基準(zhǔn)進(jìn)行偏移。如果沒(méi)有已經(jīng)定位的祖先元素,那么會(huì)以瀏覽器窗口為基準(zhǔn)進(jìn)行定位。
再有,絕對(duì)定位的框從標(biāo)準(zhǔn)流中脫離,這意味著它們對(duì)其后的兄弟盒子的定位沒(méi)有任何影響,其他的盒子就好像這個(gè)盒子不存在一樣。
簡(jiǎn)單理解:
絕對(duì)定位元素它是相對(duì)于"祖先"定位元素(relative、fixed、absolute),如果絕對(duì)定位元素它的祖先沒(méi)有定位元素(static)那么它會(huì)以當(dāng)前的瀏覽器窗口來(lái)進(jìn)行定位,
絕對(duì)定位元素不再占用空間
當(dāng)position的屬性值為fixed,即固定定位。它與絕對(duì)定位有些類似,區(qū)別主要在于定位的基準(zhǔn)不是祖先,而是瀏覽器窗口或其它顯示設(shè)備窗口。
也就是當(dāng)訪問(wèn)者拖動(dòng)瀏覽器的窗口滾動(dòng)條時(shí),固定定位的元素相對(duì)于瀏覽器窗口的位置保持不變。(IE6不支持固定定位)
簡(jiǎn)單理解:它是以瀏覽器窗口作為參照標(biāo)準(zhǔn)來(lái)進(jìn)行定位, 固定定位元素它不再占用空間
定位問(wèn)題:
絕對(duì)定位問(wèn)題:
當(dāng)我們給一個(gè)子元素設(shè)置絕對(duì)定位,讓它在父元素的右下角顯示,這個(gè)時(shí)候
如果父元素的寬和高都為奇數(shù),那么在IE6下我們沒(méi)有方法讓這個(gè)子元素壓住邊框的
這個(gè)時(shí)候我們建議大家不要使用奇數(shù)作為長(zhǎng)度
相對(duì)定位問(wèn)題;
IE6下,它認(rèn)為我們的父元素一定包住它里面的子元素,所以當(dāng)子元素的寬度和高度大于父元素時(shí),在IE下父元素就會(huì)被撐開(kāi),
這個(gè)時(shí)候我們想解決這個(gè)問(wèn)題,我們可以給父元素設(shè)置overflow:hidden,但是此時(shí)IE6還是不起作用,
所以我們解決方法就是給子元素和父元素都設(shè)置相對(duì)定位
固定定位的問(wèn)題:
當(dāng)我們給一個(gè)固定定位的子元素(子元素position:fixed)的父元素添加相對(duì)定位或者絕對(duì)定位的時(shí)候,
它是不會(huì)跟著父元素移動(dòng)的,仍然是相對(duì)屏幕的。
實(shí)例:導(dǎo)航條
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<title>導(dǎo)航條</title>
<style type="text/css">
*{
margin:0px;
padding:0px;
}
ul,li{
list-style:none;
}
.box{
width:800px;
height:30px;
margin:100px auto;
}
li{
float:left;
width:180px;
text-align: center;
line-height:28px;
border:1px solid red;
margin-left:-1px;
}
li:hover{
border:1px solid green;
position:relative; /* 解決邊框被壓住問(wèn)題 解釋:后面的li壓住前面一個(gè)li,使用相對(duì)定位后,提高了li顯示高度 */
}
</style>
</head>
<body>
<div class="box">
<ul>
<li>HTML+CSS</li>
<li>javascript</li>
<li>jquery</li>
<li>php</li>
</ul>
</div>
</body>
</html>
讓層水平居中的方法:
讓左右邊界自動(dòng)判斷之下,即可達(dá)成左右位置呈現(xiàn)居中的目的。
#content {
width: 980px;
margin-right: auto;
margin-left: auto;
position: relative;
}
<div id="content">層內(nèi)容</div>
若內(nèi)容區(qū)<div>之內(nèi)還有其他內(nèi)容<div>,其CSS屬性設(shè)置就需要加上"定位"position:absolute(或relative),以防firefox等其他瀏覽器出現(xiàn)錯(cuò)誤
<div id="container">
<div id="content">
</div>
</div>
#container {
background-image: url(images/3-2-1-bg.jpg);
height: 400px;
width: 800px;
position: relative;
background-repeat: no-repeat;
margin-right: auto;
margin-left: auto;
}
#content {
margin: 75px;
height: 210px;
width: 610px;
padding: 20px;
border: 1px solid #FFF;
position: absolute;
}
讓層垂直居中的方法:
如果,說(shuō)浮動(dòng), 關(guān)鍵在一個(gè) “浮” 字上面, 那么 我們的定位,關(guān)鍵在于一個(gè) “位” 上。
PS: 定位是我們CSS算是數(shù)一數(shù)二難點(diǎn)的了,但是,你務(wù)必要學(xué)好它,我們CSS離不開(kāi)定位,特別是后面的js特效,天天和定位打交道。不要抵觸它,反而要愛(ài)上它,它可以讓我們工作更加輕松哦!
為什么要用定位?
那么定位,最長(zhǎng)運(yùn)用的場(chǎng)景再那里呢? 來(lái)看幾幅圖片,你一定會(huì)有感悟!
第一幅圖, 小黃色塊可以再圖片上移動(dòng):
第二幅圖, 左右箭頭壓住圖片:
第三幅圖, hot 再盒子外面多出一塊,更加突出:
以上三個(gè)小地方,如果用標(biāo)準(zhǔn)流或者浮動(dòng),實(shí)現(xiàn)會(huì)比較復(fù)雜或者難以實(shí)現(xiàn),此時(shí)我們用定位來(lái)做,just soso!
元素的定位屬性
元素的定位屬性主要包括定位模式和邊偏移兩部分。
1、邊偏移
也就說(shuō),以后定位要和這邊偏移搭配使用了, 比如 top: 100px; left: 30px; 等等
2、定位模式(定位的分類)
在CSS中,position屬性用于定義元素的定位模式,其基本語(yǔ)法格式如下:
選擇器{position:屬性值;}
position屬性的常用值
靜態(tài)定位(static)
靜態(tài)定位是所有元素的默認(rèn)定位方式,當(dāng)position屬性的取值為static時(shí),可以將元素定位于靜態(tài)位置。 所謂靜態(tài)位置就是各個(gè)元素在HTML文檔流中默認(rèn)的位置。
上面的話翻譯成白話: 就是網(wǎng)頁(yè)中所有元素都默認(rèn)的是靜態(tài)定位哦! 其實(shí)就是標(biāo)準(zhǔn)流的特性。
在靜態(tài)定位狀態(tài)下,無(wú)法通過(guò)邊偏移屬性(top、bottom、left或right)來(lái)改變?cè)氐奈恢谩?/p>
PS: 靜態(tài)定位其實(shí)沒(méi)啥可說(shuō)的。
相對(duì)定位relative(自戀型)
小笑話: 剛剛看到一個(gè)超級(jí)超級(jí)帥的帥哥,看得我都忍不住想和他搞基了。世間怎會(huì)有如此之完美的男人。我和他就這樣一動(dòng)不動(dòng)的對(duì)視著,就仿佛一見(jiàn)鐘情。時(shí)間也在這一瞬間停止了。直到我的手麻了。才戀戀不舍的放下鏡子。。。。
相對(duì)定位是將元素相對(duì)于它在標(biāo)準(zhǔn)流中的位置進(jìn)行定位,當(dāng)position屬性的取值為relative時(shí),可以將元素定位于相對(duì)位置。
對(duì)元素設(shè)置相對(duì)定位后,可以通過(guò)邊偏移屬性改變?cè)氐奈恢茫撬谖臋n流中的位置仍然保留。如下圖所示,即是一個(gè)相對(duì)定位的效果展示:
注意:
就是說(shuō),相對(duì)定位的盒子仍在標(biāo)準(zhǔn)流中,它后面的盒子仍以標(biāo)準(zhǔn)流方式對(duì)待它。(相對(duì)定位不脫標(biāo))
如果說(shuō)浮動(dòng)的主要目的是 讓多個(gè)塊級(jí)元素一行顯示,那么定位的主要價(jià)值就是 移動(dòng)位置, 讓盒子到我們想要的位置上去。
絕對(duì)定位absolute (拼爹型)
小笑話: 吃早飯時(shí),老婆往兒子碗里放了兩個(gè)煎蛋,兒子全給了我,還一本正經(jīng)地說(shuō):“爸爸,多吃點(diǎn),男人養(yǎng)家不容易?!?<br/> 我一陣感動(dòng),剛想夸他兩句。 兒子接著說(shuō):“以后全靠你讓我拼爹了!”
[注意] 如果文檔可滾動(dòng),絕對(duì)定位元素會(huì)隨著它滾動(dòng),因?yàn)樵刈罱K會(huì)相對(duì)于正常流的某一部分定位。
當(dāng)position屬性的取值為absolute時(shí),可以將元素的定位模式設(shè)置為絕對(duì)定位。
注意: 絕對(duì)定位最重要的一點(diǎn)是,它可以通過(guò)邊偏移移動(dòng)位置,但是它完全脫標(biāo),完全不占位置。
父級(jí)沒(méi)有定位
若所有父元素都沒(méi)有定位,以瀏覽器為準(zhǔn)對(duì)齊(document文檔)。
父級(jí)有定位
絕對(duì)定位是將元素依據(jù)最近的已經(jīng)定位(絕對(duì)、固定或相對(duì)定位)的父元素(祖先)進(jìn)行定位。
子絕父相
這個(gè)“子絕父相”太重要了,是我們學(xué)習(xí)定位的口訣,時(shí)時(shí)刻刻記住的。
這句話的意思是 子級(jí)是絕對(duì)定位的話, 父級(jí)要用相對(duì)定位。
首先, 我們說(shuō)下, 絕對(duì)定位是將元素依據(jù)最近的已經(jīng)定位絕對(duì)、固定或相對(duì)定位)的父元素(祖先)進(jìn)行定位。
就是說(shuō), 子級(jí)是絕對(duì)定位,父親只要是定位即可(不管父親是絕對(duì)定位還是相對(duì)定位,甚至是固定定位都可以),就是說(shuō), 子絕父絕,子絕父相都是正確的。
但是,在我們網(wǎng)頁(yè)布局的時(shí)候, 最常說(shuō)的 子絕父相是怎么來(lái)的呢? 請(qǐng)看如下圖:
所以,我們可以得出如下結(jié)論:
因?yàn)樽蛹?jí)是絕對(duì)定位,不會(huì)占有位置, 可以放到父盒子里面的任何一個(gè)地方。
父盒子布局時(shí),需要占有位置,因此父親只能是 相對(duì)定位.
這就是子絕父相的由來(lái)。
絕對(duì)定位的盒子水平/垂直居中
普通的盒子是左右margin 改為 auto就可, 但是對(duì)于絕對(duì)定位就無(wú)效了
定位的盒子也可以水平或者垂直居中,有一個(gè)算法。
固定定位fixed(認(rèn)死理型)
固定定位是絕對(duì)定位的一種特殊形式,類似于 正方形是一個(gè)特殊的 矩形。它以瀏覽器窗口作為參照物來(lái)定義網(wǎng)頁(yè)元素。當(dāng)position屬性的取值為fixed時(shí),即可將元素的定位模式設(shè)置為固定定位。
當(dāng)對(duì)元素設(shè)置固定定位后,它將脫離標(biāo)準(zhǔn)文檔流的控制,始終依據(jù)瀏覽器窗口來(lái)定義自己的顯示位置。不管瀏覽器滾動(dòng)條如何滾動(dòng)也不管瀏覽器窗口的大小如何變化,該元素都會(huì)始終顯示在瀏覽器窗口的固定位置。
固定定位有兩點(diǎn):
記憶法: 就類似于孫猴子, 無(wú)父無(wú)母,好不容易找到一個(gè)可靠的師傅(瀏覽器),就聽(tīng)的師傅的,別的都不聽(tīng)。
ie6等低版本瀏覽器不支持固定定位。
疊放次序(z-index)
當(dāng)對(duì)多個(gè)元素同時(shí)設(shè)置定位時(shí),定位元素之間有可能會(huì)發(fā)生重疊。
在CSS中,要想調(diào)整重疊定位元素的堆疊順序,可以對(duì)定位元素應(yīng)用z-index層疊等級(jí)屬性,其取值可為正整數(shù)、負(fù)整數(shù)和0。
比如: z-index: 2;
注意:
顏色屬性被用來(lái)設(shè)置文字的顏色。
顏色是通過(guò)CSS最經(jīng)常的指定:
一個(gè)網(wǎng)頁(yè)的文本顏色是指在主體內(nèi)的選擇:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
body {
color: blue;
}
h1 {
color: #00ff00;
}
h2 {
color: rgb(255, 0, 0);
}
</style>
</head>
<body>
<h2>hello world</h2>
<h1>welcome to CaoZhou</h1>
</body>
</html>
注:對(duì)于W3C標(biāo)準(zhǔn)的CSS:如果你定義了顏色屬性,你還必須定義背景色屬性。
文本排列屬性是用來(lái)設(shè)置文本的水平對(duì)齊方式。
文本可居中或?qū)R到左或右,兩端對(duì)齊。
當(dāng)text-align設(shè)置為"justify",每一行被展開(kāi)為寬度相等,左,右外邊距是對(duì)齊(如雜志和報(bào)紙)。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
h1 {
text-align: center;
}
p.date {
text-align: right;
}
p.main {
text-align: justify;
}
</style>
</head>
<body>
<p class="date">2015 年 3 月 14 號(hào)</p>
<p class="main"> 從前有個(gè)書生,和未婚妻約好在某年某月某日結(jié)婚。到那一天,未婚妻卻嫁給了別人。書生受此打擊, 一病不起?! ∵@時(shí),路過(guò)一游方僧人,從懷里摸出一面鏡子叫書生看。書生看到茫茫大海,一名遇害的女子一絲不掛地躺在海灘上。路過(guò)一人, 看一眼,搖搖頭,走了。又路過(guò)一人,將衣服脫下,給女尸蓋上,走了。再路過(guò)一人,過(guò)去,挖個(gè)坑,小心翼翼把尸體掩埋了。 僧人解釋道, 那具海灘上的女尸,就是你未婚妻的前世。你是第二個(gè)路過(guò)的人,曾給過(guò)他一件衣服。她今生和你相戀,只為還你一個(gè)情。但是她最終要報(bào)答一生一世的人,是最后那個(gè)把她掩埋的人,那人就是他現(xiàn)在的丈夫。書生大悟,病愈。
</p>
<p><b>注意:</b> 重置瀏覽器窗口大小查看 "justify" 是如何工作的。</p>
</body>
</html>
text-decoration 屬性用來(lái)設(shè)置或刪除文本的裝飾。
從設(shè)計(jì)的角度看 text-decoration屬性主要是用來(lái)刪除鏈接的下劃線:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.none {}
.del {
text-decoration: none;
}
</style>
</head>
<body>
<p>原來(lái)的樣子</p>
<a href="#" class="none">wwwwwwwwwwwwwwwwww</a>
<p>去掉下劃線</p>
<a href="#" class="del">wwwwwwwwwwwwwwwwwwwww</a>
</body>
</html>
也可以這樣裝飾文字:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
h1 {
text-decoration: overline;
}
h2 {
text-decoration: line-through;
}
h3 {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
</body>
</html>
注:不建議強(qiáng)調(diào)指出不是鏈接的文本,因?yàn)檫@常?;煜脩簟?/span>
text-transform文本轉(zhuǎn)換屬性是用來(lái)指定在一個(gè)文本中的大寫和小寫字母。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
p.uppercase {
text-transform: uppercase;
}
p.lowercase {
text-transform: lowercase;
}
p.capitalize {
text-transform: capitalize;
}
</style>
</head>
<body>
<p class="uppercase">This is some text.</p>
<p class="lowercase">This is some text.</p>
<p class="capitalize">This is some text.</p>
</body>
</html>
text-indent文本縮進(jìn)屬性是用來(lái)指定文本的第一行的縮進(jìn)。
p {text-indent:50px;}
增加或減少字符之間的空間。
<style>
h1 {
letter-spacing:2px;
}
h2 {
letter-spacing:-3px;
}
</style>
指定在一個(gè)段落中行之間的空間。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
p.small {
line-height: 70%;
}
p.big {
line-height: 200%;
}
</style>
</head>
<body>
<p>
This is a paragraph with a standard line-height.<br> This is a paragraph with a standard line-height.<br> The default line height in most browsers is about 110% to 120%.<br>
</p>
<p class="small">
This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br>
</p>
<p class="big">
This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br>
</p>
</body>
</html>
增加一個(gè)段落中的單詞之間的空白空間。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style type="text/css">
p {
word-spacing: 30px;
}
</style>
</head>
<body>
<p>
This is some text. This is some text.
</p>
</body>
</html>
設(shè)置文本的垂直對(duì)齊圖像。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
img{
width: 200px;
height: 100px;
}
img.top {
vertical-align: text-top;
}
img.bottom {
vertical-align: text-bottom;
}
</style>
</head>
<body>
<p>An <img src="img/logo.png" /> image with a default alignment.</p>
<p>An <img class="top" src="img/logo.png" /> image with a text-top alignment.</p>
<p>An <img class="bottom" src="img/logo.png" /> image with a text-bottom alignment.</p>
</body>
</html>
設(shè)置文本陰影。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=640, user-scalable=no">
<title>項(xiàng)目</title>
<style>
h1{
text-shadow: 2px 2px #FF0000;
}
</style>
</head>
<body>
<h1>Text-shadow effect</h1>
</body>
</html>
本文主要介紹了CSS文本樣式實(shí)際應(yīng)用中應(yīng)該如何去操作,通過(guò)講解文本中對(duì)應(yīng)的屬性去改變文本的表現(xiàn)形式。使用豐富的效果圖的展示,能夠更直觀的看到運(yùn)行的效果,能夠更好的理解。使用Html語(yǔ)言,代碼結(jié)構(gòu)更佳的清晰,能夠幫助你更好的學(xué)習(xí)。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。