hellosimon2.2嵌入式嵌入式是將CSS樣式集中寫(xiě)在網(wǎng)頁(yè)的標(biāo)簽對(duì)的標(biāo)簽對(duì)中。格式如下:Title2.3鏈接式將style.css文件引入到HTML文件中Title2." />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python之路【第十九篇】:前端CSS

系統(tǒng) 2004 0

CSS

一、CSS概述

CSS是Cascading Style Sheets的簡(jiǎn)稱,中文稱為層疊式樣式表,用來(lái)控制網(wǎng)頁(yè)數(shù)據(jù)的表現(xiàn),可以使網(wǎng)頁(yè)的表現(xiàn)與數(shù)據(jù)內(nèi)容分離。

學(xué)CSS后我們需要掌握的技能:

1、怎么找到標(biāo)簽(選擇器)

2、如何操作標(biāo)簽對(duì)象(element)

二、CSS的四種引入方式

2.1 行內(nèi)式

                  

>hello simon

2.2 嵌入式

嵌入式是將CSS樣式集中寫(xiě)在網(wǎng)頁(yè)的標(biāo)簽對(duì)的 標(biāo)簽對(duì)中。格式如下:

                  
                  
                    Title
                  
                  
                

2.3 鏈接式

將style.css文件引入到HTML文件中

                  
                  
                    Title
                  
                                    
                

2.4 導(dǎo)入式

將獨(dú)立的style.css文件引入HTML文件中,導(dǎo)入式使用CSS規(guī)則引入外部CSS文件,

?注意:

導(dǎo)入式會(huì)使整個(gè)網(wǎng)頁(yè)加載完后再裝載CSS文件,因此會(huì)導(dǎo)致一個(gè)問(wèn)題,如果網(wǎng)頁(yè)比較大則會(huì)出現(xiàn)先顯示無(wú)樣式的頁(yè)面,閃爍一下之后,在出現(xiàn)網(wǎng)頁(yè)的樣式。這是導(dǎo)入式固有的一個(gè)缺陷。使用鏈接式時(shí)會(huì)與導(dǎo)入式不同的是它會(huì)以網(wǎng)頁(yè)文件主體裝載前裝載CSS文件,因此顯示出來(lái)的網(wǎng)頁(yè)從一開(kāi)始就是帶樣式的效果,它不會(huì)像導(dǎo)入式那樣先顯示無(wú)樣式的網(wǎng)頁(yè),然后再顯示有樣式的網(wǎng)頁(yè),這是鏈接式的優(yōu)點(diǎn)所在。

三、CSS的選擇器(selector)

3.1 基礎(chǔ)選擇器

                * :           通用元素選擇器,匹配任何元素                    * { margin:0; padding:0; }

E  :          標(biāo)簽選擇器,匹配所有使用E標(biāo)簽的元素               p { color:green; }

.info和E.info: class選擇器,匹配所有class屬性中包含info的元素   .info { background:#ff0; }    p.info { background:blue; }

#info和E#info  id選擇器,匹配所有id屬性等于footer的元素         #info { background:#ff0; }   p#info { background:#ff0; }
              

代碼如下:

                
                
                  Title
                
                
                
                   hello zhurui 
                  
hello div

pppp

ppppp

pppppp

ppppppp

aaaa

Python之路【第十九篇】:前端CSS_第1張圖片

3.2 組合選擇器

                 E,F         多元素選擇器,同時(shí)匹配所有E元素或F元素,E和F之間用逗號(hào)分隔         div,p { color:#f00; }

 E F         后代元素選擇器,匹配所有屬于E元素后代的F元素,E和F之間用空格分隔    li a { font-weight:bold;
 E > F       子元素選擇器,匹配所有E元素的子元素F                            div > p { color:#f00; }
 
 E + F       毗鄰元素選擇器,匹配所有緊隨E元素之后的同級(jí)元素F                  div + p { color:#f00; }  
              
                
                
                  Title
                
                
                
                   hello zhurui 
                  
hello div

pppp

ppppp

朱銳是帥哥

朱銳是simon

ppppppp

aaaa
simon div before
a

ppp

div3

p zhurui

div2
after div1

after div1 p

效果展示:

Python之路【第十九篇】:前端CSS_第2張圖片

?注意嵌套規(guī)則:

1、塊級(jí)元素可以包含內(nèi)聯(lián)元素或某些塊級(jí)元素,但內(nèi)聯(lián)元素不能包含塊級(jí)元素,它只能包含其他內(nèi)聯(lián)元素。

2、有幾個(gè)特殊的塊級(jí)元素只能包含內(nèi)聯(lián)元素,不能包含塊級(jí)元素。如h1,h2,h3,h4,h5,h6,

3、li內(nèi)可以包含div

4、塊級(jí)元素與塊級(jí)元素并列、內(nèi)聯(lián)元素與內(nèi)聯(lián)元素并列。

3.3 屬性選擇器

                 E[att]         匹配所有具有att屬性的E元素,不考慮它的值。(注意:E在此處可以省略,比如“[cheacked]”。以下同。)   p[title] { color:#f00; }

 
 E[att=val]     匹配所有att屬性等于“val”的E元素                                 div[class=”error”] { color:#f00; }

 
 E[att~=val]    匹配所有att屬性具有多個(gè)空格分隔的值、其中一個(gè)值等于“val”的E元素      td[class~=”name”] { color:#f00; }

 E[attr^=val]    匹配屬性值以指定值開(kāi)頭的每個(gè)元素                     div[class^="test"]{background:#ffff00;}

 E[attr$=val]    匹配屬性值以指定值結(jié)尾的每個(gè)元素                     div[class$="test"]{background:#ffff00;}

 E[attr*=val]    匹配屬性值中包含指定值的每個(gè)元素                     div[class*="test"]{background:#ffff00;}
              

?

                
                
                  Title
                
                
                                
zhurui
zhurui
zhurui
zhurui

3.4 偽類(Pseudo-classes)

?CSS偽類是用來(lái)給選擇器添加一些特殊效果

author偽類:專用于控制鏈接的顯示效果

                a:link(沒(méi)有接觸過(guò)的鏈接),用于定義了鏈接的常規(guī)狀態(tài)。

a:hover(鼠標(biāo)放在鏈接上的狀態(tài)),用于產(chǎn)生視覺(jué)效果。

a:visited(訪問(wèn)過(guò)的鏈接),用于閱讀文章,能清楚的判斷已經(jīng)訪問(wèn)過(guò)的鏈接。

a:active(在鏈接上按下鼠標(biāo)時(shí)的狀態(tài)),用于表現(xiàn)鼠標(biāo)按下時(shí)的鏈接狀態(tài)。

偽類選擇器 : 偽類指的是標(biāo)簽的不同狀態(tài):

           a ==> 點(diǎn)過(guò)狀態(tài) 沒(méi)有點(diǎn)過(guò)的狀態(tài) 鼠標(biāo)懸浮狀態(tài) 激活狀態(tài)

a:link {color: #FF0000} /* 未訪問(wèn)的鏈接 */

a:visited {color: #00FF00} /* 已訪問(wèn)的鏈接 */

a:hover {color: #FF00FF} /* 鼠標(biāo)移動(dòng)到鏈接上 */

a:active {color: #0000FF} /* 選定的鏈接 */ 格式: 標(biāo)簽:偽類名稱{ css代碼; }
              

?代碼如下:

                
                
                  Title
                
                
                
                  hello-world
                
                
hello simon

補(bǔ)充:

                .outer:hover .right{color: red}
              

before after 偽類 :

                :before    p:before       在每個(gè)
                

元素之前插入內(nèi)容 :after p:after 在每個(gè)

元素之后插入內(nèi)容 p:before 在每個(gè)

元素的內(nèi)容之前插入內(nèi)容 p:before{content:"hello";color:red} p:after 在每個(gè)

元素的內(nèi)容之前插入內(nèi)容 p:after{ content:"hello";color:red}

3.5 CSS優(yōu)先級(jí)和繼承

                樣式表中的特殊性描述了不同規(guī)則的相對(duì)權(quán)重,它的基本規(guī)則是:
      1 內(nèi)聯(lián)樣式表的權(quán)值最高       style=""-------------------     1000;
   2 統(tǒng)計(jì)選擇符中的ID屬性個(gè)數(shù)。    #id    -------------   100
  3 統(tǒng)計(jì)選擇符中的CLASS屬性個(gè)數(shù)。 .class  -------------   10
 4 統(tǒng)計(jì)選擇符中的HTML標(biāo)簽名個(gè)數(shù)。     p     --------------  1
              

按這些規(guī)則將數(shù)字符串逐位相加,就得到最終的權(quán)重,然后在比較取舍時(shí)按照從左到右的順序逐位比較。

                
                
                  Title
                
                
                
嵌套優(yōu)先級(jí)

繼承是CSS的一個(gè)主要特征,它是依賴于祖先-后代的關(guān)系的。繼承是一種機(jī)制,它允許樣式不僅可以應(yīng)用于某個(gè)特定的元素,還可以應(yīng)用于它的后代。例如一個(gè)BODY定義了的顏色值也會(huì)應(yīng)用到段落的文本中。

                body{color:red;}       
                

helloyuan

這段文字都繼承了由body {color:red;}樣式定義的顏色。然而CSS繼承性的權(quán)重是非常低的,是比普通元素的權(quán)重還要低的0。

                  p{color:green}
                

發(fā)現(xiàn)只需要給加個(gè)顏色值就能覆蓋掉它繼承的樣式顏色。由此可見(jiàn):任何顯示申明的規(guī)則都可以覆蓋其繼承樣式。 

? ? ? 此外,繼承是CSS重要的一部分,我們甚至不用去考慮它為什么能夠這樣,但CSS繼承也是有限制的。有一些屬性不能被繼承,如:border, margin, padding, background等。

?附加說(shuō)明:

                1、文內(nèi)的樣式優(yōu)先級(jí)為1,0,0,0,所以始終高于外部定義。這里文內(nèi)樣式指形如
                
                    
ppppp
ppppp
ppppp
ppppp

4.2 字體屬性

                    
                      font-size: 20px/50%/larger
 
font-family:'Lucida Bright'
 
font-weight: lighter/bold/border/
 

                      

朱銳

4.3 背景屬性

                    
                      background-color: cornflowerblue

background-image: url('1.jpg');

background-repeat: no-repeat;(repeat:平鋪滿)

background-position: right top(20px 20px);(橫向:left center right)(縱向:top center bottom)

      簡(jiǎn)寫(xiě):

              
                      

注意:如果將背景屬性加在body上,要記得給body加上一個(gè)height,否則結(jié)果異常,這是因?yàn)閎ody為空,無(wú)法撐起背景圖片;另外,如果此時(shí)要設(shè)置一個(gè)width=100px,你也看不出效果,除非你設(shè)置出html。

?

                    
                    
                      Title
                    
                    
                  
                    
                    
                      Title
                    
                    
                    
                    
                  

4.4 文本屬性

                    
                      font-size: 10px;

text-align: center;   橫向排列

line-height: 200px;   文本行高 通俗的講,文字高度加上文字上下的空白區(qū)域的高度 50%:基于字體大小的百分比

vertical-align:-4px  設(shè)置元素內(nèi)容的垂直對(duì)齊方式 ,只對(duì)行內(nèi)元素有效,對(duì)塊級(jí)元素?zé)o效


text-indent: 150px;   首行縮進(jìn)
letter-spacing: 10px;
word-spacing: 20px;
text-transform: capitalize;
                    
                  

范例:

                    
                    
                      Title
                    
                    
                    
文本屬性文本屬性文本屬性文本屬性文本屬性文本屬性本屬性文本屬性文本屬性文本屬性本屬性文本屬性文本屬性文本屬性本屬性文本屬性文本屬性文本屬性

hello zhurui hellosimon hello zhurui hellosimonhello zhurui hellosimonhello zhurui hellosimon

4.5 邊框?qū)傩?

                    
                      border-style: solid;
 
border-color: chartreuse;
 
border-width: 20px;
 
簡(jiǎn)寫(xiě):border: 30px rebeccapurple solid;
                    
                  

代碼如下:

                    
                    
                      Title
                    
                    
                    

4.6 列表屬性

                    
                      ul,ol{   list-style: decimal-leading-zero;
         list-style: none; 
                      
list-style: circle; list-style: upper-alpha; list-style: disc; }

代碼展示:

                    
                    
                      Title
                    
                    
                    
  1. 111
  2. 222
  3. 333
  • 111
  • 222
  • 333
江蘇省
南京
蘇州
無(wú)錫

效果展示:

Python之路【第十九篇】:前端CSS_第3張圖片

4.7 display屬性

                    
                      none
block
inline
                    
                  

display:inline-block可做列表布局,其中的類似于圖片間的間隙小bug可以通過(guò)如下設(shè)置解決:

樣式代碼如下:

                    
                    
                      Title
                    
                    
                    
divvvvvvvv

ppppppp

spannnnnnn click
spannnnn click

4.8 外邊距和內(nèi)邊距

1、margin:? ? 用于控制元素與元素之間的距離;margin的最基本用途就是控制元素周圍空間的間隔,從視覺(jué)角度上達(dá)到相互隔開(kāi)的目的。

2、 padding:? 用于控制內(nèi)容與邊框之間的距離;? ?

3、 Border(邊框) ? ? 圍繞在內(nèi)邊距和內(nèi)容外的邊框。

4、 Content(內(nèi)容) ? 盒子的內(nèi)容,顯示文本和圖像。

元素的寬度和高度:

Remark 重要: ?當(dāng)您指定一個(gè)CSS元素的寬度和高度屬性時(shí),你只是設(shè)置內(nèi)容區(qū)域的寬度和高度。要知道,完全大小的元素,你還必須添加填充,邊框和邊距。

                    
                      margin:10px 5px 15px 20px;-----------上 右 下 左
margin:10px 5px 15px;----------------上 右左 下
margin:10px 5px;---------------------上下  右左
margin:10px;    ---------------------上右下左
                    
                  

下面的例子中的元素的總寬度為300px:

                    
                      width:250px;
padding:10px;
border:5px solid gray;
margin:10px; 
                    
                  
                    
                    
                      Title
                    
                    
                    
hello div1
hello div2

?

思考1:

? ? ? ?邊框在默認(rèn)情況下會(huì)定位于瀏覽器窗口的左上角,但是并沒(méi)有緊貼著瀏覽器的窗口的邊框,這是因?yàn)閎ody本身也是一個(gè)盒子(外層還有html),在默認(rèn)情況下, ? body距離html會(huì)有若干像素的margin,具體數(shù)值因各個(gè)瀏覽器不盡相同,所以body中的盒子不會(huì)緊貼瀏覽器窗口的邊框了,為了驗(yàn)證這一點(diǎn),加上:

                    
                      body{
    border: 1px solid;
    background-color: cadetblue;
}
                    
                  

>>>>解決方法:

                    
                      body{
    margin: 0;
}
                    
                  

思考2:

? ? ? ?margin collapse(邊界塌陷或者說(shuō)邊界重疊)

? ? ? ?外邊距的重疊只產(chǎn)生在普通流文檔的上下外邊距之間,這個(gè)看起來(lái)有點(diǎn)奇怪的規(guī)則,其實(shí)有其現(xiàn)實(shí)意義。設(shè)想,當(dāng)我們上下排列一系列規(guī)則的塊級(jí)元素(如段 ? ? 落P)時(shí),那么塊元素之間因?yàn)橥膺吘嘀丿B的存在,段落之間就不會(huì)產(chǎn)生雙倍的距離。又比如停車場(chǎng)

? ? ? ?1兄弟div:上面div的margin-bottom和下面div的margin-top會(huì)塌陷,也就是會(huì)取上下兩者margin里最大值作為顯示值

? ? ? ?2父子div ???

? ? ? ? ? ? ? ? if ?父級(jí)div中沒(méi)有 border,padding,inline content,子級(jí)div的margin會(huì)一直向上找,直到找到某個(gè)標(biāo)簽包括border,padding,inline content? ?中的其中一個(gè),然后按此div 進(jìn)行margin?;

?

                    
                    
                      Title
                    
                    
                    

解決方法:

                    
                      1: border:1px solid transparent
2:  padding:1px
3: over-flow:hidden; 
                    
                  

五、float屬性

先來(lái)了解一下block元素和inline元素在文檔流中的排列方式。

  block元素通常被現(xiàn)實(shí)為獨(dú)立的一塊,獨(dú)占一行,多個(gè)block元素會(huì)各自新起一行,默認(rèn)block元素寬度自動(dòng)填滿其父元素寬度。block元素可以設(shè)置width、height、margin、padding屬性;

  inline元素不會(huì)獨(dú)占一行,多個(gè)相鄰的行內(nèi)元素會(huì)排列在同一行里,直到一行排列不下,才會(huì)新?lián)Q一行,其寬度隨元素的內(nèi)容而變化。inline元素設(shè)置width、height屬性無(wú)效。inline元素的margin和padding屬性。水平方向的padding-left, padding-right, margin-left, margin-right都產(chǎn)生邊距效果;但豎直方向的padding-top, padding-bottom, margin-top, margin-bottom不會(huì)產(chǎn)生邊距效果。

  • 常見(jiàn)的塊級(jí)元素有 div、form、table、p、pre、h1~h5、dl、ol、ul 等。
  • 常見(jiàn)的內(nèi)聯(lián)元素有span、a、strong、em、label、input、select、textarea、img、br等

? ?? ?

所謂的文檔流 ,指的是元素排版布局過(guò)程中,元素會(huì)自動(dòng)從左往右,從上往下的流式排列。

脫離文檔流 ,也就是將元素從普通的布局排版中拿走,其他盒子在定位的時(shí)候, 會(huì)當(dāng)做脫離文檔流的元素不存在而進(jìn)行定位

只有絕對(duì)定位absolute和浮動(dòng)float才會(huì)脫離文檔流。

? ???---部分無(wú)視和完全無(wú)視的區(qū)別?需要注意的是,使用float脫離文檔流時(shí),其他盒子會(huì)無(wú)視這個(gè)元素,但其他盒子內(nèi)的文本依然會(huì)為這個(gè)元素讓出位置,環(huán)繞在周圍(可以說(shuō)是部分無(wú)視)。而對(duì)于使用absolute position脫離文檔流的元素,其他盒子與其他盒子內(nèi)的文本都會(huì)無(wú)視它。(可以說(shuō)是完全無(wú)視)

浮動(dòng)的表現(xiàn)

? ? ? 定義:浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹埂S捎诟?dòng)框不在文檔的普通流中,所以文檔的普通流中的浮動(dòng)框之后的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。(注意這里是塊框而不是內(nèi)聯(lián)元素;浮動(dòng)框只對(duì)它后面的元素造成影響)

注意 當(dāng)初float被設(shè)計(jì)的時(shí)候就是用來(lái)完成文本環(huán)繞的效果,所以文本不會(huì)被擋住,這是float的特性,即float是一種不徹底的脫離文檔流方式。 無(wú)論多么復(fù)雜的布局,其基本出發(fā)點(diǎn)均是:“ 如何在一行顯示多個(gè)div元素 ”。

現(xiàn)象1:

? ? ? 假如某個(gè)div元素A是浮動(dòng)的,如果A元素上一個(gè)元素也是浮動(dòng)的,那么A元素會(huì)跟隨在上一個(gè)元素的后邊(如果一行放不下這兩個(gè)元素,那么A元素會(huì)被擠到下一行);如果A元素上一個(gè)元素是標(biāo)準(zhǔn)流中的元素,那么A的相對(duì)垂直位置不會(huì)改變,也就是說(shuō)A的頂部總是和上一個(gè)元素的底部對(duì)齊。此外,浮動(dòng)的框之后的block元素元素會(huì)認(rèn)為這個(gè)框不存在,但其中的文本依然會(huì)為這個(gè)元素讓出位置。?浮動(dòng)的框之后的inline元素,會(huì)為這個(gè)框空出位置,然后按順序排列。

現(xiàn)象2:

(1)左右結(jié)構(gòu)div盒子重疊現(xiàn)象,一般是由于相鄰兩個(gè)DIV一個(gè)使用浮動(dòng)一個(gè)沒(méi)有使用浮動(dòng)。如上面的例1:相鄰的兩個(gè)盒子box2向左浮動(dòng)、box3未浮動(dòng)。一個(gè)使用浮動(dòng)一個(gè)沒(méi)有導(dǎo)致DIV不是在同個(gè)“平面”上,但內(nèi)容不會(huì)照成覆蓋現(xiàn)象,只有DIV形成覆蓋現(xiàn)象。

解決方法:要么都不使用浮動(dòng);要么都使用float浮動(dòng);要么對(duì)沒(méi)有使用float浮動(dòng)的DIV設(shè)置margin樣式。

(2)上下結(jié)構(gòu)div盒子重疊現(xiàn)象

                    
                    
                      Title
                    
                    
                    
box1 向左浮動(dòng)
box2 向右浮動(dòng)
box3

例子如上:.container和box3的布局是上下結(jié)構(gòu),上圖發(fā)現(xiàn)box3跑到了上面,與.container產(chǎn)生了重疊,但文本內(nèi)容沒(méi)有發(fā)生覆蓋,只有div發(fā)生覆蓋現(xiàn)象。這個(gè)原因是因?yàn)榈谝粋€(gè)大盒子里的子元素使用了浮動(dòng),脫離了文檔流,導(dǎo)致.container沒(méi)有被撐開(kāi)。box3認(rèn)為.container沒(méi)有高度(未被撐開(kāi)),因此跑上去了。

解決方法:

1、要么給.container設(shè)置固定高度,一般情況下文字內(nèi)容不確定多少就不能設(shè)置固定高度,所以一般不能設(shè)置“.container”高度(當(dāng)然能確定內(nèi)容多高,這種情況下“.container是可以設(shè)置一個(gè)高度即可解決覆蓋問(wèn)題。

2、要么清除浮動(dòng)。

清除浮動(dòng):

在非IE瀏覽器(如Firefox)下,當(dāng)容器的高度為auto,且容器的內(nèi)容中有浮動(dòng)(float為left或right)的元素,在這種情況下,容器的高度不能自動(dòng)伸長(zhǎng)以適應(yīng)內(nèi)容的高度,使得內(nèi)容溢出到容器外面而影響(甚至破壞)布局的現(xiàn)象。這個(gè)現(xiàn)象叫浮動(dòng)溢出,為了防止這個(gè)現(xiàn)象的出現(xiàn)而進(jìn)行的CSS處理,就叫CSS清除浮動(dòng)。

                    
                      clear語(yǔ)法:
clear : none | left | right | both

取值:
none : 默認(rèn)值。允許兩邊都可以有浮動(dòng)對(duì)象
left : 不允許左邊有浮動(dòng)對(duì)象
right : 不允許右邊有浮動(dòng)對(duì)象
both : 不允許有浮動(dòng)對(duì)象

但是需要注意的是:clear屬性只會(huì)對(duì)自身起作用,而不會(huì)影響其他元素。如果一個(gè)元素的右側(cè)有一浮動(dòng)對(duì)象,而這個(gè)元素設(shè)置了不允許右邊有浮動(dòng)對(duì)象,即clear:right,則這個(gè)元素會(huì)自動(dòng)下移一格,達(dá)到本元素右邊沒(méi)有浮動(dòng)對(duì)象的目的。
                    
                  

方式1(推薦):

                    .clearfix:after {             <----在類名為“clearfix”的元素內(nèi)最后面加入內(nèi)容; 
content: ".";                 <----內(nèi)容為“.”就是一個(gè)英文的句號(hào)而已。也可以不寫(xiě)。 
display: block;               <----加入的這個(gè)元素轉(zhuǎn)換為塊級(jí)元素。 
clear: both;                  <----清除左右兩邊浮動(dòng)。 
visibility: hidden;           <----可見(jiàn)度設(shè)為隱藏。注意它和display:none;是有區(qū)別的。visibility:hidden;仍然占據(jù)空間,只是看不到而已; 
line-height: 0;               <----行高為0; 
height: 0;                    <----高度為0; 
font-size:0;                  <----字體大小為0; 
} 
.clearfix { *zoom:1;}         <----這是針對(duì)于IE6的,因?yàn)镮E6不支持:after偽類,這個(gè)神奇的zoom:1讓IE6的元素可以清除浮動(dòng)來(lái)包裹內(nèi)部元素。
                  

整段代碼就相當(dāng)于在浮動(dòng)元素后面跟了個(gè)寬高為0的空div,然后設(shè)定它c(diǎn)lear:both來(lái)達(dá)到清除浮動(dòng)的效果。?
之所以用它,是因?yàn)椋悴槐卦趆tml文件中寫(xiě)入大量無(wú)意義的空標(biāo)簽,又能清除浮動(dòng)。?

話說(shuō)回來(lái),你這段代碼真是個(gè)累贅啊,這樣寫(xiě)不利于維護(hù)。?
只要寫(xiě)一個(gè).clearfix就行了,然后在需要清浮動(dòng)的元素中 添加clearfix類名就好了。?
如:

                    

方式2:

                    overflow:hidden;
                  

overflow :hidden的含義是超出的部分要裁切隱藏,float的元素雖然不在普通流中,但是他是浮動(dòng)在普通流之上的,可以把普通流元素+浮動(dòng)元素想象成一個(gè)立方體。如果沒(méi)有明確設(shè)定包含容器高度的情況下,它要計(jì)算內(nèi)容的全部高度才能確定在什么位置hidden,這樣浮動(dòng)元素的高度就要被計(jì)算進(jìn)去。這樣包含容器就會(huì)被撐開(kāi),清除浮動(dòng)。

?六、position(定位)

1 static

static 默認(rèn)值,無(wú)定位,不能當(dāng)作絕對(duì)定位的參照物,并且設(shè)置標(biāo)簽對(duì)象的left、top等值是不起作用的的。

2 ?position: relative/absolute

? ?? relative ?相對(duì)定位。相對(duì)定位是相對(duì)于該元素在文檔流中的原始位置,即以自己原始位置為參照物。有趣的是,即使設(shè)定了元素的相對(duì)定位以及偏移值,元素還占有著原來(lái)的位置,即占據(jù)文檔流空間 。對(duì)象遵循正常文檔流, 但將依據(jù)top,right,bottom,left等屬性在正常文檔流中偏移位置。而其層疊通過(guò)z-index屬性定義。

注意:position:relative的一個(gè)主要用法:方便絕對(duì)定位元素找到參照物。

? ? absolute? 絕對(duì)定位。

? ? ? 定義:設(shè)置為絕對(duì)定位的元素框從文檔流完全刪除,并相對(duì)于最近的已定位祖先元素定位,如果元素沒(méi)有已定位的祖先元素,那么它的位置相對(duì)于最初的包含塊(即body元素)。元素原先在正常文檔流中所占的空間會(huì)關(guān)閉,就好像該元素原來(lái)不存在一樣。元素定位后生成一個(gè)塊級(jí)框,而不論原來(lái)它在正常流中生成何種類型的框。

重點(diǎn):如果父級(jí)設(shè)置了position屬性,例如position:relative;,那么子元素就會(huì)以父級(jí)的左上角為原始點(diǎn)進(jìn)行定位。這樣能很好的解決自適應(yīng)網(wǎng)站的標(biāo)簽偏離問(wèn)題,即父級(jí)為自適應(yīng)的,那我子元素就設(shè)置position:absolute;父元素設(shè)置position:relative;,然后Top、Right、Bottom、Left用百分比寬度表示。

? ? ? 另外,對(duì)象脫離正常文檔流,使用top,right,bottom,left等屬性進(jìn)行絕對(duì)定位。而其層疊通過(guò)z-index屬性定義。

總結(jié):參照物用相對(duì)定位,子元素用絕對(duì)定位,并且保證相對(duì)定位參照物不會(huì)偏移即可。

3 ?position:fixed

? ? ? ? fixed:對(duì)象脫離正常文檔流,使用top,right,bottom,left等屬性以窗口為參考點(diǎn)進(jìn)行定位,當(dāng)出現(xiàn)滾動(dòng)條時(shí),對(duì)象不會(huì)隨著滾動(dòng)。而其層疊通過(guò)z-index屬性 定義。 注意點(diǎn): 一個(gè)元素若設(shè)置了 position:absolute | fixed; 則該元素就不能設(shè)置float。這 是一個(gè)常識(shí)性的知識(shí)點(diǎn),因?yàn)檫@是兩個(gè)不同的流,一個(gè)是浮動(dòng)流,另一個(gè)是“定位流”。但是 relative 卻可以。因?yàn)樗舅嫉目臻g仍然占據(jù)文檔流。

? ? ? ?在理論上,被設(shè)置為fixed的元素會(huì)被定位于瀏覽器窗口的一個(gè)指定坐標(biāo),不論窗口是否滾動(dòng),它都會(huì)固定在這個(gè)位置。

4? 僅使用margin屬性布局絕對(duì)定位元素

此情況,margin-bottom 和margin-right的值不再對(duì)文檔流中的元素產(chǎn)生影響,因?yàn)樵撛匾呀?jīng)脫離了文檔流。另外,不管它的祖先元素有沒(méi)有定位,都是以文檔流中原來(lái)所在的位置上偏移參照物。??
  圖9中,使用margin屬性布局相對(duì)定位元素。
  層級(jí)關(guān)系為:

                                
                                
                                  Title
                                
                                
                                
>
>
返回頂部

Python之路【第十九篇】:前端CSS_第4張圖片

七、總結(jié)

7.1?inline-block 的間隙

                                
                                
                                  Title
                                
                                
                                
                                  simon
                                
                                
                                  zhurui
                                
                                
                                  zhurui11
                                
                              

inline-block默認(rèn)的空格符就是標(biāo)簽與標(biāo)簽之間的空隙造成的。

(1) 我們可以通過(guò)margin:-3px來(lái)解決,但是

1.我們布局肯定很多元素,不可能每個(gè)都添加margin負(fù)這樣維護(hù)成本太大了

2.我們線上代碼如果壓縮,那么我們就不存在哪個(gè)4px的問(wèn)題了,那么我們的margin負(fù)就回造成布局混亂!

(2)我們可以給幾個(gè)標(biāo)簽加一個(gè)父級(jí)div,然后:

                                div{word-spacing: -5px;}  
                              

7.2 快捷鍵

                                
                                  div   tab
a     tab
div.main>ul>li.c*4    tab
                                  
div.div*4 tab

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 九九热免费观看 | 亚洲午夜成激人情在线影院 | 91视频观看 | 久久草在线视频 | 午夜激情视频在线 | 亚洲免费一区 | 视频国产一区 | 青娱乐免费视频观看 | 久久精品天堂 | 国产精品99在线观看 | 成人午夜精品久久久久久久小说 | 免费国产一区二区 | 亚洲一区二区在线播放 | 日韩少妇成熟A片无码专区 黄在线免费观看 | 色婷婷一区二区三区四区 | 精品久久久久一区二区三区 | 哥斯拉大战金刚2在线观看免费完整版 | 亚洲精品欧美一区二区三区 | 免费观看呢日本天堂视频 | 91精品国产综合久久久久久 | 色洛色中文综合网站 | 久久久999精品视频 日本高清不卡在线 | 大陆黄色网 | 免费大片在线观看网站 | 国产成人免费视频网站高清观看视频 | 日本成人一区二区三区 | 97麻豆精品国产自产在线观看 | 精品视频一区二区三区在线观看 | 起视碰碰97摸摸碰碰视频 | 99久久久久国产精品免费 | 国产肥熟| 免费毛片在线播放 | 成在线人免费视频 | 亚洲第一区视频在线观看 | 亚洲99影视一区二区三区 | 久草视| 香蕉av777xxx色综合一区 | 91精品久久一区二区三区 | 亚洲国产中文字幕 | 91嫩草国产线免费观看 | 老子午夜影院 |