一、HTML和CSS
1. 你做的頁面在哪些流覽器測試過豺鼻?這些瀏覽器的內(nèi)核分別是什么?
IE: trident內(nèi)核
Firefox:gecko內(nèi)核
Safari:webkit內(nèi)核
Opera:以前是presto內(nèi)核骤铃,Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核
Chrome:Blink(基于webkit皆撩,Google與Opera Software共同開發(fā))
2. 每個HTML文件里開頭都有個很重要的東西屠橄,Doctype座硕,知道這是干什么的嗎趾浅?
<!DOCTYPE> 聲明位于文檔中的最前面的位置愕提,處于 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規(guī)范皿哨。(重點:告訴瀏覽器按照何種規(guī)范解析頁面)
3. Quirks模式是什么浅侨?它和Standards模式有什么區(qū)別
從IE6開始,引入了Standards模式证膨,標準模式中如输,瀏覽器嘗試給符合標準的文檔在規(guī)范上的正確處理達到在指定瀏覽器中的程度。
在IE6之前CSS還不夠成熟央勒,所以IE5等之前的瀏覽器對CSS的支持很差不见, IE6將對CSS提供更好的支持,然而這時的問題就來了崔步,因為有很多頁面是基于舊的布局方式寫的稳吮,而如果IE6 支持CSS則將令這些頁面顯示不正常,如何在即保證不破壞現(xiàn)有頁面井濒,又提供新的渲染機制呢灶似?
在寫程序時我們也會經(jīng)常遇到這樣的問題列林,如何保證原來的接口不變,又提供更強大的功能酪惭,尤其是新功能不兼容舊功能時希痴。遇到這種問題時的一個常見做法是增加參數(shù)和分支,即當某個參數(shù)為真時春感,我們就使用新功能砌创,而如果這個參數(shù) 不為真時,就使用舊功能鲫懒,這樣就能不破壞原有的程序嫩实,又提供新功能。IE6也是類似這樣做的刀疙,它將DTD當成了這個“參數(shù)”,因為以前的頁面大家都不會去寫DTD扫倡,所以IE6就假定 如果寫了DTD谦秧,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有撵溃,則采用兼容之前的布局方式疚鲤。這就是Quirks模式(怪癖模式,詭異模式缘挑,怪異模式)集歇。
區(qū)別:
總體會有布局、樣式解析和腳本執(zhí)行三個方面的區(qū)別语淘。
盒模型:在W3C標準中诲宇,如果設(shè)置一個元素的寬度和高度,指的是元素內(nèi)容的寬度和高度惶翻,而在Quirks 模式下姑蓝,IE的寬度和高度還包含了padding和border。
[圖片上傳失敗...(image-88f0e2-1558493875363)]
設(shè)置行內(nèi)元素的高寬:在Standards模式下吕粗,給<span>等行內(nèi)元素設(shè)置wdith和height都不會生效纺荧,而在quirks模式下,則會生效颅筋。
設(shè)置百分比的高度:在standards模式下宙暇,一個元素的高度是由其包含的內(nèi)容來決定的,如果父元素沒有設(shè)置百分比的高度议泵,子元素設(shè)置一個百分比的高度是無效的用margin:0 auto設(shè)置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中占贫,但在quirks模式下卻會失效。
(還有很多先口,答出什么不重要靶剑,關(guān)鍵是看他答出的這些是不是自己經(jīng)驗遇到的蜻拨,還是說都是看文章看的,甚至完全不知道桩引。)
4. div+css的布局較table布局有什么優(yōu)點缎讼?
改版的時候更方便 只要改css文件。
頁面加載速度更快坑匠、結(jié)構(gòu)化清晰血崭、頁面顯示簡潔。
表現(xiàn)與結(jié)構(gòu)相分離厘灼。
易于優(yōu)化(seo)搜索引擎更友好夹纫,排名更容易靠前。
5. img的alt與title有何異同设凹? strong與em的異同舰讹?
a:alt(alt text):為不能顯示圖像、窗體或applets的用戶代理(UA)闪朱,alt屬性用來指定替換文字月匣。替換文字的語言由lang屬性指定。(在IE瀏覽器下會在沒有title時把alt當成 tool tip顯示)
title(tool tip):該屬性為設(shè)置該屬性的元素提供建議性的信息奋姿。
strong:粗體強調(diào)標簽锄开,強調(diào),表示內(nèi)容的重要性
em:斜體強調(diào)標簽称诗,更強烈強調(diào)萍悴,表示內(nèi)容的強調(diào)點
6. 你能描述一下漸進增強和優(yōu)雅降級之間的不同嗎?
漸進增強 progressive enhancement:針對低版本瀏覽器進行構(gòu)建頁面,保證最基本的功能寓免,然后再針對高級瀏覽器進行效果癣诱、交互等改進和追加功能達到更好的用戶體驗。
優(yōu)雅降級 graceful degradation:一開始就構(gòu)建完整的功能袜香,然后再針對低版本瀏覽器進行兼容狡刘。
區(qū)別:優(yōu)雅降級是從復雜的現(xiàn)狀開始,并試圖減少用戶體驗的供給困鸥,而漸進增強則是從一個非承崾撸基礎(chǔ)的,能夠起作用的版本開始疾就,并不斷擴充澜术,以適應(yīng)未來環(huán)境的需要。降級(功能衰減)意味著往回看猬腰;而漸進增強則意味著朝前看鸟废,同時保證其根基處于安全地帶。
“優(yōu)雅降級”觀點
“優(yōu)雅降級”觀點認為應(yīng)該針對那些最高級姑荷、最完善的瀏覽器來設(shè)計網(wǎng)站盒延。而將那些被認為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后階段缩擂,并把測試對象限定為主流瀏覽器(如 IE、Mozilla 等)的前一個版本添寺。
在這種設(shè)計范例下胯盯,舊版的瀏覽器被認為僅能提供“簡陋卻無妨 (poor, but passable)” 的瀏覽體驗。你可以做一些小的調(diào)整來適應(yīng)某個特定的瀏覽器计露。但由于它們并非我們所關(guān)注的焦點博脑,因此除了修復較大的錯誤之外,其它的差異將被直接忽略票罐。
“漸進增強”觀點
“漸進增強”觀點則認為應(yīng)關(guān)注于內(nèi)容本身叉趣。
內(nèi)容是我們建立網(wǎng)站的誘因。有的網(wǎng)站展示它该押,有的則收集它疗杉,有的尋求,有的操作蚕礼,還有的網(wǎng)站甚至會包含以上的種種烟具,但相同點是它們?nèi)忌婕暗絻?nèi)容。這使得“漸進增強”成為一種更為合理的設(shè)計范例闻牡。這也是它立即被 Yahoo! 所采納并用以構(gòu)建其“分級式瀏覽器支持 (Graded Browser Support)”策略的原因所在净赴。
那么問題來了∩兀現(xiàn)在產(chǎn)品經(jīng)理看到IE6,7,8網(wǎng)頁效果相對高版本現(xiàn)代瀏覽器少了很多圓角罩润,陰影(CSS3),要求兼容(使用圖片背景翼馆,放棄CSS3)割以,你會如何說服他?
7. 為什么利用多個域名來存儲網(wǎng)站資源會更有效应媚?
CDN緩存更方便
突破瀏覽器并發(fā)限制
節(jié)約cookie帶寬
節(jié)約主域名的連接數(shù)严沥,優(yōu)化頁面響應(yīng)速度
防止不必要的安全問題
8. 請談一下你對網(wǎng)頁標準和標準制定機構(gòu)重要性的理解。
網(wǎng)頁標準和標準制定機構(gòu)都是為了能讓web發(fā)展的更‘健康’中姜,開發(fā)者遵循統(tǒng)一的標準消玄,降低開發(fā)難度,開發(fā)成本丢胚,SEO也會更好做翩瓜,也不會因為濫用代碼導致各種BUG、安全問題携龟,最終提高網(wǎng)站易用性兔跌。
9. 請描述一下cookies,sessionStorage和localStorage的區(qū)別峡蟋?
sessionStorage用于本地存儲一個會話(session)中的數(shù)據(jù)坟桅,這些數(shù)據(jù)只有在同一個會話中的頁面才能訪問并且當會話結(jié)束后數(shù)據(jù)也隨之銷毀华望。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲仅乓。而localStorage用于持久化的本地存儲赖舟,除非主動刪除數(shù)據(jù),否則數(shù)據(jù)是永遠不會過期的方灾。
web storage和cookie的區(qū)別
Web Storage的概念和cookie相似建蹄,區(qū)別是它是為了更大容量存儲設(shè)計的。Cookie的大小是受限的裕偿,并且每次你請求一個新的頁面的時候Cookie都會被發(fā)送過去洞慎,這樣無形中浪費了帶寬,另外cookie還需要指定作用域嘿棘,不可以跨域調(diào)用劲腿。
除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法鸟妙,不像cookie需要前端開發(fā)者自己封裝setCookie焦人,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務(wù)器進行交互重父,作為HTTP規(guī)范的一部分而存在 花椭,而Web Storage僅僅是為了在本地“存儲”數(shù)據(jù)而生。
10. 簡述一下src與href的區(qū)別房午。
src用于替換當前元素矿辽,href用于在當前文檔和引用資源之間確立聯(lián)系。
src是source的縮寫郭厌,指向外部資源的位置袋倔,指向的內(nèi)容將會嵌入到文檔中當前標簽所在位置;在請求src資源時會將其指向的資源下載并應(yīng)用到文檔內(nèi)折柠,例如js腳本宾娜,img圖片和frame等元素。
<script src =”js.js”></script>
當瀏覽器解析到該元素時扇售,會暫停其他資源的下載和處理前塔,直到將該資源加載、編譯承冰、執(zhí)行完畢华弓,圖片和框架等元素也如此,類似于將所指向資源嵌入當前標簽內(nèi)巷懈。這也是為什么將js腳本放在底部而不是頭部该抒。
href是Hypertext Reference的縮寫,指向網(wǎng)絡(luò)資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接凑保,如果我們在文檔中添加
<link href=”common.css” rel=”stylesheet”/>
那么瀏覽器會識別該文檔為css文件冈爹,就會并行下載資源并且不會停止對當前文檔的處理。這也是為什么建議使用link方式來加載css欧引,而不是使用@import方式频伤。
11. 知道的網(wǎng)頁制作會用到的圖片格式有哪些?
png-8芝此,png-24憋肖,jpeg,gif婚苹,svg岸更。
但是上面的那些都不是面試官想要的最后答案。面試官希望聽到是Webp膊升。(是否有關(guān)注新技術(shù)怎炊,新鮮事物)
科普一下Webp:WebP格式,谷歌(google)開發(fā)的一種旨在加快圖片加載速度的圖片格式廓译。圖片壓縮體積大約只有JPEG的2/3评肆,并能節(jié)省大量的服務(wù)器帶寬資源和數(shù)據(jù)空間。Facebook Ebay等知名網(wǎng)站已經(jīng)開始測試并使用WebP格式非区。
在質(zhì)量相同的情況下瓜挽,WebP格式圖像的體積要比JPEG格式圖像小40%
12. 知道什么是微格式嗎?談?wù)劺斫庹鞒瘛T谇岸藰?gòu)建中應(yīng)該考慮微格式嗎久橙?
微格式(Microformats)是一種讓機器可讀的語義化XHTML詞匯的集合,是結(jié)構(gòu)化數(shù)據(jù)的開放標準歹垫。是為特殊應(yīng)用而制定的特殊格式剥汤。
優(yōu)點:將智能數(shù)據(jù)添加到網(wǎng)頁上颠放,讓網(wǎng)站內(nèi)容在搜索引擎結(jié)果界面可以顯示額外的提示排惨。(應(yīng)用范例:豆瓣,有興趣自行g(shù)oogle)
13. 在css/js代碼上線之后開發(fā)人員經(jīng)常會優(yōu)化性能碰凶,從用戶刷新網(wǎng)頁開始暮芭,一次js請求一般情況下有哪些地方會有緩存處理?
答案:dns緩存欲低,cdn緩存辕宏,瀏覽器緩存,服務(wù)器緩存砾莱。
14. 一個頁面上有大量的圖片(大型電商網(wǎng)站)瑞筐,加載很慢,你有哪些方法優(yōu)化這些圖片的加載腊瑟,給用戶更好的體驗聚假。
圖片懶加載块蚌,在頁面上的未可視區(qū)域可以添加一個滾動條事件,判斷圖片位置與瀏覽器頂端的距離與頁面的距離膘格,如果前者小于后者峭范,優(yōu)先加載。
如果為幻燈片瘪贱、相冊等纱控,可以使用圖片預加載技術(shù),將當前展示圖片的前一張和后一張優(yōu)先下載菜秦。
如果圖片為css圖片甜害,可以使用CSSsprite,SVGsprite球昨,Iconfont唾那、Base64等技術(shù)。
如果圖片過大褪尝,可以使用特殊編碼的圖片闹获,加載時會先加載一張壓縮的特別厲害的縮略圖,以提高用戶體驗河哑。
如果圖片展示區(qū)域小于圖片的真實大小避诽,則因在服務(wù)器端根據(jù)業(yè)務(wù)需要先行進行圖片壓縮争剿,圖片壓縮后大小與展示一致嬉愧。
15. 你如何理解HTML結(jié)構(gòu)的語義化?
去掉或樣式丟失的時候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu):
html本身是沒有表現(xiàn)的咸这,我們看到例如<h1>是粗體佳吞,字體大小2em拱雏,加粗;<strong>是加粗的底扳,不要認為這是html的表現(xiàn)铸抑,這些其實html默認的css樣式在起作用,所以去掉或樣式丟失的時候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu)不是語義化的HTML結(jié)構(gòu)的優(yōu)點衷模,但是瀏覽器都有有默認樣式鹊汛,默認樣式的目的也是為了更好的表達html的語義,可以說瀏覽器的默認樣式和語義化的HTML結(jié)構(gòu)是不可分割的阱冶。
屏幕閱讀器(如果訪客有視障)會完全根據(jù)你的標記來“讀”你的網(wǎng)頁.
例如,如果你使用的含語義的標記,屏幕閱讀器就會“逐個拼出”你的單詞,而不是試著去對它完整發(fā)音.
PDA刁憋、手機等設(shè)備可能無法像普通電腦的瀏覽器一樣來渲染網(wǎng)頁(通常是因為這些設(shè)備對CSS的支持較弱)
使用語義標記可以確保這些設(shè)備以一種有意義的方式來渲染網(wǎng)頁.理想情況下,觀看設(shè)備的任務(wù)是符合設(shè)備本身的條件來渲染網(wǎng)頁.
語義標記為設(shè)備提供了所需的相關(guān)信息,就省去了你自己去考慮所有可能的顯示情況(包括現(xiàn)有的或者將來新的設(shè)備).例如,一部手機可以選擇使一段標記了標題的文字以粗體顯示.而掌上電腦可能會以比較大的字體來顯示.無論哪種方式一旦你對文本標記為標題,您就可以確信讀取設(shè)備將根據(jù)其自身的條件來合適地顯示頁面.
搜索引擎的爬蟲也依賴于標記來確定上下文和各個關(guān)鍵字的權(quán)重
過去你可能還沒有考慮搜索引擎的爬蟲也是網(wǎng)站的“訪客”,但現(xiàn)在它們他們實際上是極其寶貴的用戶.沒有他們的話,搜索引擎將無法索引你的網(wǎng)站,然后一般用戶將很難過來訪問.
你的頁面是否對爬蟲容易理解非常重要,因為爬蟲很大程度上會忽略用于表現(xiàn)的標記,而只注重語義標記.
因此,如果頁面文件的標題被標記,而不是,那么這個頁面在搜索結(jié)果的位置可能會比較靠后.除了提升易用性外,語義標記有利于正確使用CSS和JavaScript,因為其本身提供了許多“鉤鉤”來應(yīng)用頁面的樣式與行為.
SEO主要還是靠你網(wǎng)站的內(nèi)容和外部鏈接的。
便于團隊開發(fā)和維護
W3C給我們定了一個很好的標準木蹬,在團隊中大家都遵循這個標準至耻,可以減少很多差異化的東西,方便開發(fā)和維護,提高開發(fā)效率尘颓,甚至實現(xiàn)模塊化開發(fā)是尖。
16. 談?wù)勔郧岸私嵌瘸霭l(fā)做好SEO需要考慮什么?
了解搜索引擎如何抓取網(wǎng)頁和如何索引網(wǎng)頁
你需要知道一些搜索引擎的基本工作原理泥耀,各個搜索引擎之間的區(qū)別饺汹,搜索機器人(SE robot 或叫 web crawler)如何進行工作,搜索引擎如何對搜索結(jié)果進行排序等等痰催。
Meta標簽優(yōu)化
主要包括主題(Title)兜辞,網(wǎng)站描述(Description),和關(guān)鍵詞(Keywords)夸溶。還有一些其它的隱藏文字比如Author(作者)逸吵,Category(目錄),Language(編碼語種)等缝裁。
如何選取關(guān)鍵詞并在網(wǎng)頁中放置關(guān)鍵詞
搜索就得用關(guān)鍵詞扫皱。關(guān)鍵詞分析和選擇是SEO最重要的工作之一。首先要給網(wǎng)站確定主關(guān)鍵詞(一般在5個上下)捷绑,然后針對這些關(guān)鍵詞進行優(yōu)化韩脑,包括關(guān)鍵詞密度(Density),相關(guān)度(Relavancy)粹污,突出性(Prominency)等等段多。
了解主要的搜索引擎
雖然搜索引擎有很多,但是對網(wǎng)站流量起決定作用的就那么幾個壮吩。比如英文的主要有Google进苍,Yahoo,Bing等鸭叙;中文的有百度觉啊,搜狗,有道等沈贝。不同的搜索引擎對頁面的抓取和索引杠人、排序的規(guī)則都不一樣。還要了解各搜索門戶和搜索引擎之間的關(guān)系缀程,比如AOL網(wǎng)頁搜索用的是Google的搜索技術(shù)搜吧,MSN用的是Bing的技術(shù)市俊。
主要的互聯(lián)網(wǎng)目錄
Open Directory自身不是搜索引擎杨凑,而是一個大型的網(wǎng)站目錄,他和搜索引擎的主要區(qū)別是網(wǎng)站內(nèi)容的收集方式不同摆昧。目錄是人工編輯的撩满,主要收錄網(wǎng)站主頁;搜索引擎是自動收集的,除了主頁外還抓取大量的內(nèi)容頁面伺帘。
按點擊付費的搜索引擎
搜索引擎也需要生存昭躺,隨著互聯(lián)網(wǎng)商務(wù)的越來越成熟,收費的搜索引擎也開始大行其道伪嫁。最典型的有Overture和百度领炫,當然也包括Google的廣告項目Google Adwords。越來越多的人通過搜索引擎的點擊廣告來定位商業(yè)網(wǎng)站张咳,這里面也大有優(yōu)化和排名的學問帝洪,你得學會用最少的廣告投入獲得最多的點擊。
搜索引擎登錄
網(wǎng)站做完了以后脚猾,別躺在那里等著客人從天而降葱峡。要讓別人找到你,最簡單的辦法就是將網(wǎng)站提交(submit)到搜索引擎龙助。如果你的是商業(yè)網(wǎng)站砰奕,主要的搜索引擎和目錄都會要求你付費來獲得收錄(比如Yahoo要299美元),但是好消息是(至少到目前為止)最大的搜索引擎Google目前還是免費提鸟,而且它主宰著60%以上的搜索市場军援。
鏈接交換和鏈接廣泛度(Link Popularity)
網(wǎng)頁內(nèi)容都是以超文本(Hypertext)的方式來互相鏈接的,網(wǎng)站之間也是如此称勋。除了搜索引擎以外盖溺,人們也每天通過不同網(wǎng)站之間的鏈接來Surfing(“沖浪”)。其它網(wǎng)站到你的網(wǎng)站的鏈接越多铣缠,你也就會獲得更多的訪問量烘嘱。更重要的是,你的網(wǎng)站的外部鏈接數(shù)越多蝗蛙,會被搜索引擎認為它的重要性越大蝇庭,從而給你更高的排名。
合理的標簽使用
17. 有哪項方式可以對一個DOM設(shè)置它的CSS樣式捡硅?
外部樣式表哮内,引入一個外部css文件
內(nèi)部樣式表,將css代碼放在 <head> 標簽內(nèi)部
內(nèi)聯(lián)樣式壮韭,將css樣式直接定義在 HTML 元素內(nèi)部
18. CSS都有哪些選擇器北发?
派生選擇器(用HTML標簽申明)
id選擇器(用DOM的ID申明)
類選擇器(用一個樣式類名申明)
屬性選擇器(用DOM的屬性申明,屬于CSS2喷屋,IE6不支持琳拨,不常用,不知道就算了)
除了前3種基本選擇器屯曹,還有一些擴展選擇器狱庇,包括
后代選擇器(利用空格間隔惊畏,比如div .a{ })
群組選擇器(利用逗號間隔,比如p,div,#a{ })
那么問題來了密任,CSS選擇器的優(yōu)先級是怎么樣定義的颜启?
基本原則:
一般而言,選擇器越特殊浪讳,它的優(yōu)先級越高缰盏。也就是選擇器指向的越準確,它的優(yōu)先級就越高淹遵。
復雜的計算方法:
用1表示派生選擇器的優(yōu)先級
用10表示類選擇器的優(yōu)先級
用100標示ID選擇器的優(yōu)先級
div.test1 .span var 優(yōu)先級 1+10 +10 +1
span#xxx .songs li 優(yōu)先級1+100 + 10 + 1
xxx li 優(yōu)先級 100 +1
那么問題來了乳规,看下列代碼,<p>標簽內(nèi)的文字是什么顏色的合呐?
<style>
.classA{ color:blue;}
.classB{ color:red;}
</style>
<body>
<p class='classB classA'> 123 </p>
</body>
答案:red暮的。與樣式定義在文件中的先后順序有關(guān),即是后面的覆蓋前面的淌实,與在<p class=’classB classA’>中的先后關(guān)系無關(guān)冻辩。
19. CSS中可以通過哪些屬性定義,使得一個DOM元素不顯示在瀏覽器可視范圍內(nèi)拆祈?
最基本的:
設(shè)置display屬性為none恨闪,或者設(shè)置visibility屬性為hidden
技巧性:
設(shè)置寬高為0,設(shè)置透明度為0放坏,設(shè)置z-index位置在-1000em
20. 超鏈接訪問過后hover樣式就不出現(xiàn)的問題是什么咙咽?如何解決?
答案:被點擊訪問過的超鏈接樣式不在具有hover和active了,解決方法是改變CSS屬性的排列順序: L-V-H-A(link,visited,hover,active)
21. 什么是Css Hack淤年?ie6,7,8的hack分別是什么钧敞?
答案:針對不同的瀏覽器寫不同的CSS code的過程,就是CSS hack麸粮。
示例如下:
test{
width:300px;
height:300px;
background-color:blue; /*firefox*/
background-color:red\9; /*all ie*/
background-color:yellow; /*ie8*/
+background-color:pink; /*ie7*/
_background-color:orange; /*ie6*/ }
:root #test { background-color:purple\9; } /*ie9*/
@media all and (min-width:0px)
{ #test {background-color:black;} } /opera/
@media screen and (-webkit-min-device-pixel-ratio:0)
{ #test {background-color:gray;} } /chrome and safari/
22. 行內(nèi)元素和塊級元素的具體區(qū)別是什么溉苛?行內(nèi)元素的padding和margin可設(shè)置嗎?
塊級元素(block)特性:
總是獨占一行弄诲,表現(xiàn)為另起一行開始愚战,而且其后的元素也必須另起一行顯示;
寬度(width)、高度(height)齐遵、內(nèi)邊距(padding)和外邊距(margin)都可控制;
內(nèi)聯(lián)元素(inline)特性:
和相鄰的內(nèi)聯(lián)元素在同一行;
寬度(width)寂玲、高度(height)、內(nèi)邊距的top/bottom(padding-top/padding-bottom)和外邊距的top/bottom(margin-top/margin-bottom)都不可改變(也就是padding和margin的left和right是可以設(shè)置的)梗摇,就是里面文字或圖片的大小拓哟。
那么問題來了,瀏覽器還有默認的天生inline-block元素(擁有內(nèi)在尺寸留美,可設(shè)置高寬彰檬,但不會自動換行)伸刃,有哪些谎砾?
答案:<input> 逢倍、<img> 、<button> 景图、<texterea> 较雕、<label>。
23. 什么是外邊距重疊挚币?重疊的結(jié)果是什么亮蒋?
外邊距重疊就是margin-collapse。
在CSS當中妆毕,相鄰的兩個盒子(可能是兄弟關(guān)系也可能是祖先關(guān)系)的外邊距可以結(jié)合成一個單獨的外邊距慎玖。這種合并外邊距的方式被稱為折疊,并且因而所結(jié)合成的外邊距稱為折疊外邊距笛粘。
折疊結(jié)果遵循下列計算規(guī)則:
兩個相鄰的外邊距都是正數(shù)時趁怔,折疊結(jié)果是它們兩者之間較大的值。
兩個相鄰的外邊距都是負數(shù)時薪前,折疊結(jié)果是兩者絕對值的較大值润努。
兩個外邊距一正一負時,折疊結(jié)果是兩者的相加的和示括。
24. rgba()和opacity的透明效果有什么不同铺浇?
rgba()和opacity都能實現(xiàn)透明效果,但最大的不同是opacity作用于元素垛膝,以及元素內(nèi)的所有內(nèi)容的透明度鳍侣,
而rgba()只作用于元素的顏色或其背景色。(設(shè)置rgba透明的元素的子元素不會繼承透明效果:鹩怠)
25. css中可以讓文字在垂直和水平方向上重疊的兩個屬性是什么拱她?
垂直方向:line-height
水平方向:letter-spacing
那么問題來了,關(guān)于letter-spacing的妙用知道有哪些么扔罪?
答案:可以用于消除inline-block元素間的換行符空格間隙問題秉沼。
26. 如何垂直居中一個浮動元素?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
// 方法一:已知元素的高寬
div1{
background-color:#6699FF;
width:200px;
height:200px;
position: absolute; //父元素需要相對定位
top: 50%;
left: 50%;
margin-top:-100px ; //二分之一的height矿酵,width
margin-left: -100px;
}
//方法二:未知元素的高寬
div1{
width: 200px;
height: 200px;
background-color: #6699FF;
margin:auto;
position: absolute; //父元素需要相對定位
left: 0;
top: 0;
right: 0;
bottom: 0;
}
|
那么問題來了唬复,如何垂直居中一個<img>?(用更簡便的方法。)
|
1
2
3
4
5
6
|
container //<img>的容器設(shè)置如下
{
display:table-cell;
text-align:center;
vertical-align:middle;
}
|
27. px和em的區(qū)別全肮。
px和em都是長度單位敞咧,區(qū)別是,px的值是固定的辜腺,指定是多少就是多少休建,計算比較容易乍恐。em得值不是固定的,并且em會繼承父級元素的字體大小测砂。
瀏覽器的默認字體高都是16px茵烈。所以未經(jīng)調(diào)整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em砌些。
28. 描述一個”reset”的CSS文件并如何使用它呜投。知道normalize.css嗎?你了解他們的不同之處存璃?
重置樣式非常多仑荐,凡是一個前端開發(fā)人員肯定有一個常用的重置CSS文件并知道如何使用它們。他們是盲目的在做還是知道為什么這么做呢纵东?原因是不同的瀏覽器對一些元素有不同的默認樣式粘招,如果你不處理,在不同的瀏覽器下會存在必要的風險偎球,或者更有戲劇性的性發(fā)生洒扎。
你可能會用Normalize來代替你的重置樣式文件。它沒有重置所有的樣式風格甜橱,但僅提供了一套合理的默認樣式值逊笆。既能讓眾多瀏覽器達到一致和合理,但又不擾亂其他的東西(如粗體的標題)岂傲。
在這一方面难裆,無法做每一個復位重置。它也確實有些超過一個重置镊掖,它處理了你永遠都不用考慮的怪癖乃戈,像HTML的audio元素不一致或line-height不一致。
29. Sass亩进、LESS是什么症虑?大家為什么要使用他們?
他們是CSS預處理器归薛。他是CSS上的一種抽象層谍憔。他們是一種特殊的語法/語言編譯成CSS。
例如Less是一種動態(tài)樣式語言. 將CSS賦予了動態(tài)語言的特性主籍,如變量习贫,繼承,運算千元, 函數(shù). LESS 既可以在客戶端上運行 (支持IE 6+, Webkit, Firefox)苫昌,也可一在服務(wù)端運行 (借助 Node.js)。
為什么要使用它們幸海?
結(jié)構(gòu)清晰祟身,便于擴展奥务。
可以方便地屏蔽瀏覽器私有語法差異。這個不用多說袜硫,封裝對瀏覽器語法差異的重復處理氯葬,減少無意義的機械勞動。
可以輕松實現(xiàn)多重繼承父款。
完全兼容 CSS 代碼溢谤,可以方便地應(yīng)用到老項目中瞻凤。LESS 只是在 CSS 語法上做了擴展憨攒,所以老的 CSS 代碼也可以與 LESS 代碼一同編譯。
30. display:none與visibility:hidden的區(qū)別是什么阀参?
display : 隱藏對應(yīng)的元素但不擠占該元素原來的空間肝集。
visibility: 隱藏對應(yīng)的元素并且擠占該元素原來的空間。
即是蛛壳,使用CSS display:none屬性后杏瞻,HTML元素(對象)的寬度、高度等各種屬性值都將“丟失”;而使用visibility:hidden屬性后衙荐,HTML元素(對象)僅僅是在視覺上看不見(完全透明)捞挥,而它所占據(jù)的空間位置仍然存在。
31. CSS中l(wèi)ink和@import的區(qū)別是:
Link屬于html標簽忧吟,而@import是CSS中提供的
在頁面加載的時候砌函,link會同時被加載,而@import引用的CSS會在頁面加載完成后才會加載引用的CSS
@import只有在ie5以上才可以被識別溜族,而link是html標簽讹俊,不存在瀏覽器兼容性問題
Link引入樣式的權(quán)重大于@import的引用(@import是將引用的樣式導入到當前的頁面中)
32. 簡介盒子模型:
CSS的盒子模型有兩種:IE盒子模型、標準的W3C盒子模型模型
盒模型:內(nèi)容煌抒、內(nèi)邊距仍劈、外邊距(一般不計入盒子實際寬度)、邊框
[圖片上傳失敗...(image-b2123f-1558493875372)]
33. 為什么要初始化樣式寡壮?
由于瀏覽器兼容的問題贩疙,不同的瀏覽器對標簽的默認樣式值不同,若不初始化會造成不同瀏覽器之間的顯示差異
但是初始化CSS會對搜索引擎優(yōu)化造成小影響
34. BFC是什么?
BFC(塊級格式化上下文)况既,一個創(chuàng)建了新的BFC的盒子是獨立布局的这溅,盒子內(nèi)元素的布局不會影響盒子外面的元素。在同一個BFC中的兩個相鄰的盒子在垂直方向發(fā)生margin重疊的問題
BFC是指瀏覽器中創(chuàng)建了一個獨立的渲染區(qū)域坏挠,該區(qū)域內(nèi)所有元素的布局不會影響到區(qū)域外元素的布局芍躏,這個渲染區(qū)域只對塊級元素起作用
35. html語義化是什么?
當頁面樣式加載失敗的時候能夠讓頁面呈現(xiàn)出清晰的結(jié)構(gòu)
有利于seo優(yōu)化降狠,利于被搜索引擎收錄(更便于搜索引擎的爬蟲程序來識別)
便于項目的開發(fā)及維護对竣,使html代碼更具有可讀性庇楞,便于其他設(shè)備解析。
36. Doctype的作用否纬?嚴格模式與混雜模式的區(qū)別吕晌?
<!DOCTYPE>用于告知瀏覽器該以何種模式來渲染文檔
嚴格模式下:頁面排版及JS解析是以該瀏覽器支持的最高標準來執(zhí)行
混雜模式:不嚴格按照標準執(zhí)行,主要用來兼容舊的瀏覽器临燃,向后兼容
37. IE的雙邊距BUG:塊級元素float后設(shè)置橫向margin睛驳,ie6顯示的margin比設(shè)置的較大。
解決:加入_display:inline
38. HTML與XHTML——二者有什么區(qū)別膜廊?
1. 所有的標記都必須要有一個相應(yīng)的結(jié)束標記
2. 所有標簽的元素和屬性的名字都必須使用小寫
3. 所有的 XML 標記都必須合理嵌套
4. 所有的屬性必須用引號 "" 括起來
5. 把所有 < 和 & 特殊符號用編碼表示
6. 給所有屬性賦一個值
7. 不要在注釋內(nèi)容中使用 "--"
8. 圖片必須有說明文字
39. html常見兼容性問題乏沸?
1.雙邊距BUG float引起的 使用display
2.3像素問題 使用float引起的 使用dislpay:inline -3px
3.超鏈接hover 點擊后失效 使用正確的書寫順序 link visited hover active
4.Ie z-index問題 給父級添加position:relative
5.Png 透明 使用js代碼 改
6.Min-height 最小高度 !Important 解決’
7.select 在ie6下遮蓋 使用iframe嵌套
8.為什么沒有辦法定義1px左右的寬度容器(IE6默認的行高造成的爪瓜,使用over:hidden,zoom:0.08 line-height:1px)
9.IE5-8不支持opacity蹬跃,解決辦法:
.opacity {
opacity: 0.4
filter: alpha(opacity=60); /* for IE5-7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; /* for IE 8*/
}
- IE6不支持PNG透明背景,解決辦法: IE6下使用gif圖片
40. 對WEB標準以及W3C的理解與認識
答:標簽閉合铆铆、標簽小寫蝶缀、不亂嵌套、提高搜索機器人搜索幾率薄货、使用外 鏈css和js腳本翁都、結(jié)構(gòu)行為表現(xiàn)的分離、文件下載與頁面速度更快谅猾、內(nèi)容能被更多的用戶所訪問柄慰、內(nèi)容能被更廣泛的設(shè)備所訪問、更少的代碼和組件赊瞬,容易維 護先煎、改版方便,不需要變動頁面內(nèi)容巧涧、提供打印版本而不需要復制內(nèi)容薯蝎、提高網(wǎng)站易用性。
41. 行內(nèi)元素有哪些?塊級元素有哪些?CSS的盒模型?
答:塊級元素:div p h1 h2 h3 h4 form ul 行內(nèi)元素: a b br i span input select Css盒模型:內(nèi)容谤绳,border ,margin占锯,padding
42. 前端頁面有哪三層構(gòu)成,分別是什么?作用是什么?
答:結(jié)構(gòu)層 Html 表示層 CSS 行為層 js缩筛。
43. Doctype作用? 嚴格模式與混雜模式-如何觸發(fā)這兩種模式消略,區(qū)分它們有何意義?
(1)、<!DOCTYPE> 聲明位于文檔中的最前面瞎抛,處于 <html> 標簽之前艺演。告知瀏覽器的解析器,用什么文檔類型 規(guī)范來解析這個文檔。
(2)胎撤、嚴格模式的排版和 JS 運作模式是 以該瀏覽器支持的最高標準運行晓殊。
(3)、在混雜模式中伤提,頁面以寬松的向后兼容的方式顯示巫俺。模擬老式瀏覽器的行為以防止站點無法工作。
(4)肿男、DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現(xiàn)介汹。
44. 行內(nèi)元素有哪些?塊級元素有哪些舶沛? 空(void)元素有那些嘹承?
(1)CSS規(guī)范規(guī)定,每個元素都有display屬性冠王,確定該元素的類型赶撰,每個元素都有默認的display值舌镶,比如div默認display屬性值為“block”柱彻,成為“塊級”元素;span默認display屬性值為“inline”餐胀,是“行內(nèi)”元素哟楷。
(2)行內(nèi)元素有:a b span img input select strong(強調(diào)的語氣) 塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
(3)知名的空元素:
<img><input><link><meta>鮮為人知的是: <area><base><col><command>
<embed><keygen><param><source><track><wbr>
45. CSS的盒子模型?
(1)兩種否灾, IE 盒子模型卖擅、標準 W3C 盒子模型;IE 的content部分包含了 border 和 pading;
(2)盒模型: 內(nèi)容(content)墨技、填充(padding)惩阶、邊界(margin)、 邊框(border).
46. CSS 選擇符有哪些扣汪?哪些屬性可以繼承断楷?優(yōu)先級算法如何計算? CSS3新增偽類有那些崭别?
- 1.id選擇器( # myid)
2.類選擇器(.myclassname)
3.標簽選擇器(div, h1, p)
4.相鄰選擇器(h1 + p)
5.子選擇器(ul < li)
6.后代選擇器(li a)
7.通配符選擇器( * )
8.屬性選擇器(a[rel = "external"])
9.偽類選擇器(a: hover, li: nth - child)
可繼承: font-size font-family color, UL LI DL DD DT;
不可繼承 :border padding margin width height ;
優(yōu)先級就近原則冬筒,樣式定義最近者為準;
載入樣式以最后載入的定位為準;
優(yōu)先級為:
!important > id > class > tag
important 比 內(nèi)聯(lián)優(yōu)先級高
CSS3新增偽類舉例:
p:first-of-type 選擇屬于其父元素的首個 <p> 元素的每個 <p> 元素。
p:last-of-type 選擇屬于其父元素的最后 <p> 元素的每個 <p> 元素茅主。
p:only-of-type 選擇屬于其父元素唯一的 <p> 元素的每個 <p> 元素舞痰。
p:only-child 選擇屬于其父元素的唯一子元素的每個 <p> 元素。
p:nth-child(2) 選擇屬于其父元素的第二個子元素的每個 <p> 元素诀姚。
:enabled响牛、:disabled 控制表單控件的禁用狀態(tài)。
:checked,單選框或復選框被選中呀打。
47. 如何居中div,如何居中一個浮動元素?
給div設(shè)置一個寬度论衍,然后添加margin:0 auto屬性
div{
width:200px;
margin:0 auto;
}
居中一個浮動元素
確定容器的寬高 寬500 高 300 的層
設(shè)置層的外邊距
.div {
Width:500px ; height:300px;//高度可以不設(shè)
Margin: -150px 0 0 -250px;
position:relative;相對定位
background-color:pink;//方便看效果
left:50%;
top:50%;
}
48. 瀏覽器的內(nèi)核分別是什么?經(jīng)常遇到的瀏覽器的兼容性有哪些?原因聚磺,解決方法是什么坯台,常用hack的技巧 ?
IE瀏覽器的內(nèi)核Trident瘫寝、 Mozilla的Gecko蜒蕾、google的WebKit、Opera內(nèi)核Presto焕阿;
png24為的圖片在iE6瀏覽器上出現(xiàn)背景咪啡,解決方案是做成PNG8.
瀏覽器默認的margin和padding不同。解決方案是加一個全局的*{margin:0;padding:0;}來統(tǒng)一暮屡。
IE6雙邊距bug:塊屬性標簽float后撤摸,又有橫行的margin情況下,在ie6顯示margin比設(shè)置的大褒纲。
浮動ie產(chǎn)生的雙倍距離 #box{ float:left; width:10px; margin:0 0 0 100px;}
這種情況之下IE會產(chǎn)生20px的距離准夷,解決方案是在float的標簽樣式控制中加入 ——display:inline;將其轉(zhuǎn)化為行內(nèi)屬性。(這個符號只有ie6會識別)
漸進識別的方式莺掠,從總體中逐漸排除局部衫嵌。
首先,巧妙的使用“\9”這一標記彻秆,將IE游覽器從所有情況中分離出來楔绞。
接著,再次使用“+”將IE8和IE7唇兑、IE6分離開來酒朵,這樣IE8已經(jīng)獨立識別。
css
.bb{
background-color:#f1ee18;/所有識別/
.background-color:#00deff\9; /IE6扎附、7蔫耽、8識別/
+background-color:#a200ff;/IE6、7識別/
_background-color:#1e0bd1;/IE6識別/
}
- IE下,可以使用獲取常規(guī)屬性的方法來獲取自定義屬性,
也可以使用getAttribute()獲取自定義屬性;
Firefox下,只能使用getAttribute()獲取自定義屬性.
解決方法:統(tǒng)一通過getAttribute()獲取自定義屬性.
- IE下,even對象有x,y屬性,但是沒有pageX,pageY屬性;
Firefox下,event對象有pageX,pageY屬性,但是沒有x,y屬性.
(條件注釋)缺點是在IE瀏覽器下可能會增加額外的HTTP請求數(shù)帕棉。
Chrome 中文界面下默認會將小于 12px 的文本強制按照 12px 顯示, 可通過加入 CSS 屬性 -webkit-text-size-adjust: none; 解決.
超鏈接訪問過后hover樣式就不出現(xiàn)了 被點擊訪問過的超鏈接樣式不在具有hover和active了解決方法是改變CSS屬性的排列順序:
L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}
49. 列出display的值针肥,說明他們的作用。position的值香伴, relative和absolute定位原點是慰枕?
- block 象塊類型元素一樣顯示。
none 缺省值即纲。向行內(nèi)元素類型一樣顯示具帮。
inline-block 象行內(nèi)元素一樣顯示,但其內(nèi)容象塊類型元素一樣顯示。
list-item 象塊類型元素一樣顯示蜂厅,并添加樣式列表標記匪凡。
- position的值
*absolute
生成絕對定位的元素,相對于 static 定位以外的第一個父元素進行定位掘猿。
*fixed (老IE不支持)
生成絕對定位的元素柿究,相對于瀏覽器窗口進行定位帽驯。
- relative
生成相對定位的元素,相對于其正常位置進行定位。
- static 默認值险毁。沒有定位撤师,元素出現(xiàn)在正常的流中
*(忽略 top, bottom, left, right z-index 聲明)榕堰。
- inherit 規(guī)定從父元素繼承 position 屬性的值谦趣。
50. absolute的containing block計算方式跟正常流有什么不同?
<pre style="margin-bottom:6.0pt;line-height:14.4pt;mso-pagination:widow-orphan;
background:#F3FFEC"> lock-level boxes 一個 block-level element ('display' 屬性值為 'block', 'list-item' 或是 ‘table’) 會生成一個 block-level box飞主,這樣的盒子會參與到 block-formatting context (一種布局的方式) 中狮惜。 block formatting context 在這種布局方式下,盒子們自所在的 containing block 頂部起一個接一個垂直排列碌识,水平方向上撐滿整個寬度 (除非內(nèi)部的盒子自己內(nèi)部建立了新的 BFC)碾篡。 containing block 一般來說,盒子本身就為其子孫建立了 containing block丸冕,用來計算內(nèi)部盒子的位置耽梅、大小,而對內(nèi)部的盒子胖烛,具體采用哪個 containing block 來計算,需要分情況來討論: 若此元素為 inline 元素诅迷,則 containing block 為能夠包含這個元素生成的第一個和最后一個 inline box 的 padding box (除 margin, border 外的區(qū)域) 的最小矩形佩番; 否則則由這個祖先元素的 padding box 構(gòu)成。 根元素所在的 containing block 被稱為 initial containing block罢杉,在我們常用的瀏覽器環(huán)境下趟畏,指的是原點與 canvas 重合,大小和 viewport 相同的矩形滩租; 對于 position 為 static 或 relative 的元素赋秀,其 containing block 為祖先元素中最近的 block container box 的 content box (除 margin, border, padding 外的區(qū)域); 對于 position:fixed 的元素律想,其 containing block 由 viewport 建立猎莲; 對于 position:absolute 的元素,則是先找到其祖先元素中最近的 position 屬性非 static 的元素技即,然后判斷: 如果都找不到著洼,則為 initial containing block。</pre>
51. 對WEB標準以及W3C的理解與認識
標簽閉合、標簽小寫身笤、不亂嵌套豹悬、提高搜索機器人搜索幾率、使用外 鏈css和js腳本液荸、結(jié)構(gòu)行為表現(xiàn)的分離瞻佛、文件下載與頁面速度更快、內(nèi)容能被更多的用戶所訪問娇钱、內(nèi)容能被更廣泛的設(shè)備所訪問涤久、更少的代碼和組件,容易維 護忍弛、改版方便响迂,不需要變動頁面內(nèi)容、提供打印版本而不需要復制內(nèi)容细疚、提高網(wǎng)站易用性蔗彤;
52. css的基本語句構(gòu)成是?
選擇器{屬性1:值1;屬性2:值2;……}
53. 瀏覽器標準模式和怪異模式之間的區(qū)別是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可顯示為什么模式
54. CSS中可以通過哪些屬性定義,使得一個DOM元素不顯示在瀏覽器可視范圍內(nèi)疯兼?
最基本的:
設(shè)置display屬性為none然遏,或者設(shè)置visibility屬性為hidden
技巧性:
設(shè)置寬高為0,設(shè)置透明度為0吧彪,設(shè)置z-index位置在-1000
55. 行內(nèi)元素和塊級元素的具體區(qū)別是什么待侵?行內(nèi)元素的padding和margin可設(shè)置嗎?
塊級元素(block)特性:
總是獨占一行姨裸,表現(xiàn)為另起一行開始秧倾,而且其后的元素也必須另起一行顯示;
寬度(width)、高度(height)傀缩、內(nèi)邊距(padding)和外邊距(margin)都可控制;
內(nèi)聯(lián)元素(inline)特性:
和相鄰的內(nèi)聯(lián)元素在同一行;
寬度(width)那先、高度(height)、內(nèi)邊距的top/bottom(padding-top/padding-bottom)和外邊距的top/bottom(margin-top/margin-bottom)都不可改變(也就是padding和margin的left和right是可以設(shè)置的)赡艰,就是里面文字或圖片的大小售淡。
那么問題來了,瀏覽器還有默認的天生inline-block元素(擁有內(nèi)在尺寸慷垮,可設(shè)置高寬揖闸,但不會自動換行),有哪些料身?
答案:<input> 汤纸、<img> 、<button> 惯驼、<textarea> 蹲嚣、<label>
56. 什么是外邊距重疊递瑰?重疊的結(jié)果是什么?
答案:
外邊距重疊就是margin-collapse隙畜。
在CSS當中抖部,相鄰的兩個盒子(可能是兄弟關(guān)系也可能是祖先關(guān)系)的外邊距可以結(jié)合成一個單獨的外邊距。這種合并外邊距的方式被稱為折疊议惰,并且因而所結(jié)合成的外邊距稱為折疊外邊距慎颗。
折疊結(jié)果遵循下列計算規(guī)則:
兩個相鄰的外邊距都是正數(shù)時,折疊結(jié)果是它們兩者之間較大的值言询。
兩個相鄰的外邊距都是負數(shù)時俯萎,折疊結(jié)果是兩者絕對值的較大值。
兩個外邊距一正一負時运杭,折疊結(jié)果是兩者的相加的和夫啊。
58****、描述一個"reset"的CSS文件并如何使用它辆憔。知道normalize.css
嗎撇眯?你了解他們的不同之處?
重置樣式非常多虱咧,凡是一個前端開發(fā)人員肯定有一個常用的重置CSS文件并知道如何使用它們熊榛。他們是盲目的在做還是知道為什么這么做呢?原因是不同的瀏覽器對一些元素有不同的默認樣式腕巡,如果你不處理玄坦,在不同的瀏覽器下會存在必要的風險,或者更有戲劇性的性發(fā)生绘沉。
你可能會用Normalize來代替你的重置樣式文件煎楣。它沒有重置所有的樣式風格,但僅提供了一套合理的默認樣式值梆砸。既能讓眾多瀏覽器達到一致和合理转质,但又不擾亂其他的東西(如粗體的標題)。
在這一方面帖世,無法做每一個復位重置。它也確實有些超過一個重置沸枯,它處理了你永遠都不用考慮的怪癖日矫,像HTML的audio
元素不一致或line-height
不一致。
57. 說display屬性有哪些绑榴?可以做什么哪轿?
display:block行內(nèi)元素轉(zhuǎn)換為塊級元素
display:inline塊級元素轉(zhuǎn)換為行內(nèi)元素
display:inline-block轉(zhuǎn)為內(nèi)聯(lián)元素
58. 哪些css屬性可以繼承?
可繼承: font-size font-family color, ul li dl dd dt;
不可繼承 :border padding margin width height ;
59. css優(yōu)先級算法如何計算翔怎?
!important > id > class > 標簽
!important 比 內(nèi)聯(lián)優(yōu)先級高
*優(yōu)先級就近原則窃诉,樣式定義最近者為準;
*以最后載入的樣式為準;
60. b標簽和strong標簽,i標簽和em標簽的區(qū)別杨耙?
后者有語義,前者則無飘痛。
61. 有那些行內(nèi)元素珊膜、有哪些塊級元素、盒模型宣脉?
1.內(nèi)聯(lián)元素(inline element)
a – 錨點
abbr – 縮寫
acronym – 首字
b – 粗體(不推薦)
big – 大字體
br – 換行
em – 強調(diào)
font – 字體設(shè)定(不推薦)
i – 斜體
img – 圖片
input – 輸入框
label – 表格標簽
s – 中劃線(不推薦)
select – 項目選擇
small – 小字體文本
span – 常用內(nèi)聯(lián)容器车柠,定義文本內(nèi)區(qū)塊
strike – 中劃線
strong – 粗體強調(diào)
sub – 下標
sup – 上標
textarea – 多行文本輸入框
tt – 電傳文本
u – 下劃線
var – 定義變量
2、塊級元素
address – 地址
blockquote – 塊引用
center – 舉中對齊塊
dir – 目錄列表
div – 常用塊級容易塑猖,也是css layout的主要標簽
dl – 定義列表
fieldset – form控制組
form – 交互表單
h1 – 大標題
h2 – 副標題
h3 – 3級標題
h4 – 4級標題
h5 – 5級標題
h6 – 6級標題
hr – 水平分隔線
isindex – input prompt
menu – 菜單列表
noframes – frames可選內(nèi)容竹祷,(對于不支持frame的瀏覽器顯示此區(qū)塊內(nèi)容)
noscript – )可選腳本內(nèi)容(對于不支持script的瀏覽器顯示此內(nèi)容)
ol – 排序表單
p – 段落
pre – 格式化文本
table – 表格
ul – 非排序列表
3.CSS盒子模型包含四個部分組成:
內(nèi)容、填充(padding)羊苟、邊框(border)塑陵、外邊界(margin)。
62. 有哪些選擇符蜡励,優(yōu)先級的計算公式是什么令花?行內(nèi)樣式和!important哪個優(yōu)先級高巍虫?
ID > .class > 標簽選擇符 !important優(yōu)先級高
63. 我想讓行內(nèi)元素跟上面的元素距離10px彭则,加margin-top和padding-top可以嗎?
margin-top,padding-top無效
64. CSS的盒模型由什么組成占遥?
內(nèi)容俯抖,border ,margin,padding
65. 說說display屬性有哪些瓦胎?可以做什么芬萍?
display:block行內(nèi)元素轉(zhuǎn)換為塊級元素
display:inline塊級元素轉(zhuǎn)換為行內(nèi)元素
display:inline-block轉(zhuǎn)為內(nèi)聯(lián)元素
66. 哪些css屬性可以繼承?
可繼承: font-size font-family color, ul li dl dd dt;
不可繼承 :border padding margin width height ;
67. css優(yōu)先級算法如何計算搔啊?
!important > id > class > 標簽
!important 比 內(nèi)聯(lián)優(yōu)先級高
優(yōu)先級就近原則柬祠,樣式定義最近者為準;
以最后載入的樣式為準;