css 選擇器中,元素選擇器和類選擇器的區別是什麼?
元素選擇器是最常見的 css 選擇器,即,文件的元素就是最基本的選擇器。選擇器通常是某個 html 元素,比如 、、、等,甚至可以是 元素本身。
類選擇器用於將樣式規則與附帶 class 屬性的元素匹配,其中該 class 屬性的值為類選擇器中指定的值。使用類選擇器時,首先需要定義樣式類,其語法為:
.classname
所有能夠附帶 class 屬性的元素都可以使用此樣式宣告。只需要將 class 屬性的值設定為「classname」,則可以將類選擇器的樣式與元素關聯。
在實際使用時,如果需要為某種元素定義樣式,則往往使用元素選擇器;如果要應用樣式而不考慮具體設計的元素,最常用的方法就是使用類選擇器。
簡要描述 css 中的定位機制。
css 中,除了預設的流定位方式以外,還有如下幾種定位機制:浮動定位、相對定位、絕對定位和固定定位。
浮動定位是指將元素排除在普通流之外,並且將它放置在包含框的左邊或者右邊,但是依舊位於包含框之內。
一、首先,按照普通流和非普通流來分類:
②非普通流:顧名思義就是脫離普通流的,在普通流上面是不佔據位置的。css有position的樣式,position包括:static,relative,absolute,fixed四種值。其中static是屬於普通流;relative也是屬於特殊的普通流,詳細下面有介紹;absolute和fixed以及float就是屬於非普通流的,載入的時候,也會順序載入,但是會脫離普通流的位置。
二、分別介紹static,relative,absolute,fixed和float(通過top,left,right,bottom來設定相對定位)
①static:就是預設的普通流,不手動設定position樣式的話,預設就是static;
②relative:叫相對定位,指的是相對他自己原來的位置的相對位置,並且原來的位置還是佔著的(所以說屬於特殊的普通流),其他的元素不會填上去,但是設定好相對位置之後,他新的位置是不會擠壓其他元素的,就像把該元素從原來的位置上摳出來,放在單獨一層來布局。
③absolute:叫絕對定位,指的是①相對其父元素位置的絕對定位,但是他屬於非普通流,②原來的位置是不會佔著的,是單獨的一層,脫離了普通流。除了以上兩點,其他的和relative差不多。
⑤float:叫浮動,是css單獨的樣式,有top,right,bottom,left四種常用值,以上四個是屬於position的一種;float也是屬於普通流,單會改變普通流。他只能和普通流在同一層,但是可以改變元素的位置,同樣是佔著位置的(和relative有點像),不會單獨一層(而relative,absolute,fixed會單獨一層,可以設定z-index屬性來改變其前後位置)。使用float之後,元素則會脫離普通流,該元素則在普通流上不再占用位置,普通流的元素則會填補上去,這樣如果不去設定的話則會出現重疊覆蓋的情況;如果想使用了float的元素也佔著普通流上的位置,該如何辦呢?這時候,可以把應用了float樣式的元素緊接著的元素應用clear樣式,clear樣式包括:both,right,left三個值。both表示right和left的float都清除掉,另外兩個同理。這樣子則可以清除在此之前的非普通流,讓他們也佔著普通流上的位置,但是這只是佔著位置,其實該元素是不存在於該位置的,該位置不存在任何元素(詳細自己google理解),但是這樣子的話,緊接著的那個元素想設定margin等,是會出現問題的,因為應用了float樣式的元素霸佔的那個位置其實是什麼東西也沒有的,不存在邊界,所以應用margin則不會以那個元素(應用了float的那個)為邊界的,會跳過那個邊界來計算,當然你也可以把margin設大點(也就是加上float元素的長度或者寬度)也可以達到效果。其實,可以在float後面的元素之前,單獨加個 清楚元素來專門用於清除浮動即可,接下來的元素應用margin則可以正常起效(補充:其實一般來說,可以在樣式表裡面單獨設定 .clear 這樣的樣式來專門用於清除浮動,避免重複,**會規優雅規範很多)。
display 屬性 和 visibility 屬性的區別?
可以使用 display 屬性定義建立布局時元素生成的顯示框型別。
1.如果將 display 屬性設定為 block,可以讓行內元素(比如 元素)表現得像塊級元素一樣;
2.如果將 display 屬性設定為 inline,可以讓塊級元素(比如 元素)表現得像內聯元素一樣;
3.可以通過把 display 屬性設定為 none,讓生成的元素根本沒有框。這樣的話,該框及其所有內容就不再顯示,不占用文件中的空間。
在 div 設計中,使用 display:none 屬性後,html 元素(物件)的寬度、高度等各種屬性值都將「丟失」;而使用 visibility:hidden 屬性後,html 元素(物件)僅僅是在視覺上看不見(完全透明),而它所佔據的空間位置仍然存在,也即是說它仍具有高度、寬度等屬性值。
前端面試題 css
1.實現不使用border畫出1px高的線,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果 2.介紹一下標準的css盒子模型,低版本的ie盒子模型有什麼不同 3.box sizing屬性 用來控制元素的盒子模型的解析模式。預設為content box 4.css選擇器有哪些?哪些屬性可以繼承?...
前端面試題 css
1.什麼是盒模型?盒模型主要分為w3c盒模型和ie盒模型,盒模型主要包括content,padding,border,margin。其中w3c盒模型的width content,ie盒模型的width content padding border。2.flex flex為彈性布局,webkit核心的...
前端面試題 css
請將html模組中字型內容是 紅色 的字型顏色設定為 rgb 255,0,0 綠色 設定為 rgb 0,128,0 黑色 設定為 rgb 0,0,0 且字型大小都為20px。紅色 綠色黑色 請將html模組中ul列表的第2個li標籤和第4個li標籤的背景顏色設定成 rgb 255,0,0 請給htm...