筆試題整理(一)

搜狗:

1忿峻、觸發(fā)BFC的方法:
1)float的值不為none辕羽。
2)overflow的值不為visible。
3)position的值不為static或releative中的任何一個绰寞。
4)display的值為table-cell、table-caption和inline-block之一觉壶。
2件缸、css選擇器
p:first-child:p標(biāo)簽的父元素的首個子p元素。
p~ul:選擇前面有 <p> 元素的每個 <ul> 元素旷坦。
div+p:選擇
緊接
在 <div> 元素之后的<p> 元素佑稠。
p:first-of-type:選擇屬于其父元素的首個 <p> 元素的每個 <p> 元素舌胶。
3、padding-top:50%的含義
定義基于父元素寬度百分比上內(nèi)邊距辆它。
4履恩、常見的塊級元素:p標(biāo)簽
常見的行內(nèi)元素:span標(biāo)簽
5、ul子元素不允許放置除除li外的任何元素
6飒筑、CSS3 box-sizing屬性
content-box:默認(rèn)屬性绽昏,寬度和高度不包括 內(nèi)邊距和邊框全谤。
border-box:寬度和高度包括內(nèi)邊距和邊框。
inherit:從父元素繼承box-sizing屬性补憾。
7卷员、promise用法
8、let命令和const命令
let命令
1)let用法類似var威酒,用于聲明變量葵孤。但是所聲明的變量只在let命令所在的代碼塊內(nèi)有效。
2)不存在變量提升箫津,所以變量一定要在聲明后使用宰啦,否則報錯。
3)暫時性死區(qū)田炭。只要塊級作用域內(nèi)存在let命令漓柑,它所聲明的變量就“綁定”在這個區(qū)域辆布,不再受外部的影響。比如 :

var a = 1;
if(true){
a = 2; //報錯
?let a;
}?

?上面的代碼中存在全局變量a景用,但是塊級作用域中l(wèi)et又聲明了一個局部變量a惭蹂,導(dǎo)致后者綁定這個塊級作用域剿干,所以在let聲明變量前穆刻,對a賦值會報錯。
4)不允許重復(fù)聲明榜轿。let不允許在相同的作用域內(nèi)聲明同一變量朵锣。

function?( ){
let a = 1;
var a =2;
}   //報錯?

const命令?
1)const用來聲明常量诚些。一旦聲明其值不能改變皇型。這就意味著const一旦聲明常量弃鸦,就必須初始化幢痘,不能留到以后賦值。
2)與let命令相同购岗,只在聲明所在的塊級作用域內(nèi)有效门粪。
3)const命令聲明的變量也不提升庄拇,同樣存在暫時性死區(qū),只能在聲明后使用溶弟。同樣不可重復(fù)聲明變量辜御。
4)對于復(fù)合類型的變量屈张,變量名不指向數(shù)據(jù),而是指向數(shù)據(jù)所在的地址碳抄。const命令只是指向的地址不變场绿,并不保證改地址的數(shù)據(jù)不變焰盗,所以將一個地址聲明為變量需要非常小心。

const foo = {}爷光;
foo.prop = 123;
foo= { }; ?// 報錯

上面的代碼澎粟,常量foo存儲的是一個地址,指向一個對象引有。不可變的只是這個地址倦逐,即不能把foo指向另一個地址,但對象本身是可變的曾我,所以依然可以為其添加屬性抒巢。如果想使對象不可變秉犹,可以將對象凍結(jié),使用object.freeze方法型诚。
5)跨模塊常量的寫法鸳劳。

//constants.js模塊
export const A = 1;
export const B = 2;
export const C = 3;

//text1.js模塊
import? * as constants from './constants';
console.log(constants.A ); // 1?
console.log(constants.B ); // 2

//text2.js模塊
import? {A, B} from './constants';
console.log(constants.A ); // 1?
console.log(constants.B ); // 2

參考文獻(xiàn):ES6學(xué)習(xí)筆記--let和const命令
7赏廓、reflow和repaint
reflow:對于DOM結(jié)構(gòu)中的各個元素都有自己的盒子(模型)幔摸,這些都需要瀏覽器根據(jù)各種樣式(瀏覽器的、開發(fā)人員定義的等)來計算并根據(jù)計算結(jié)果將元素放到它該出現(xiàn)的位置驱负。
repaint:當(dāng)各種盒子的位置尿贫、大小以及其他屬性庆亡,例如顏色捞稿、字體大小等都確定下來后,瀏覽器于是便把這些元素都按照各自的特性繪制了一遍彰亥,于是頁面的內(nèi)容出現(xiàn)了任斋。
引起Repain和Reflow的一些操作:
1)增加、刪除瘟檩、修改 DOM 結(jié)點
2)移動 DOM 的位置澈蟆,或動畫
3)修改 CSS 樣式
(例如:display:none 會觸發(fā) reflow趴俘,而 visibility:hidden 只會觸發(fā) repaint,因為沒有發(fā)現(xiàn)位置變化)
4) Resize 窗口(移動端沒有這個問題)太惠,或滾動窗口
5)修改網(wǎng)頁的默認(rèn)字體
Reflow 的成本比 Repaint 的成本高得多的多垛叨。DOM Tree 里的每個結(jié)點都會有 reflow 方法柜某,一個結(jié)點的 reflow 很有可能導(dǎo)致子結(jié)點喂击,甚至父點以及同級結(jié)點的 reflow。
優(yōu)化方法
1)不要一條一條地修改 DOM 的樣式佩谷〖嗍龋可以預(yù)先定義好 css 的 class裁奇,然后修改 DOM 的 className。
2)把 DOM 離線后修改溃肪。
3)不要把 DOM 節(jié)點的屬性值放在一個循環(huán)里當(dāng)成循環(huán)里的變量惫撰。不然這會導(dǎo)致大量地讀寫這個結(jié)點的屬性。
4)盡可能的修改層級比較低的 DOM節(jié)點扼雏。當(dāng)然夯膀,改變層級比較底的 DOM節(jié)點有可能會造成大面積的 reflow棍郎,但是也可能影響范圍很小涂佃。
5)為動畫的 HTML 元件使用 fixed 或 absoult 的 position,那么修改他們的 CSS 是會大大減小 reflow 汽抚。
6)盡量不使用 table 布局伯病。因為可能很小的一個小改動會造成整個 table 的重新布局午笛。

參考文獻(xiàn):[ JS 進(jìn)階 ] Repaint 、Reflow 的基本認(rèn)識和優(yōu)化 (2)
8告组、下圖實現(xiàn)方法

.div{   
    width:10px;
    height:0px;
    border:10px solid red;
    border-right:10px solid yellow;
    }

<div class="div"></div>

9木缝、移除display:inline-block水平空隙的方法
問題描述:
1)真正意義上的inline-block水平呈現(xiàn)的元素間我碟,換行顯示或空格分隔的情況下會有間距姚建;
2)使用CSS更改非inline-block水平元素為inline-block水平,也會有該問題

.space a {
    display: inline-block;
    padding: .5em 1em;
    background-color: #cad5eb;
}

<div class="space">
    <a href="##">惆悵</a>
    <a href="##">淡定</a>
    <a href="##">熱血</a>
</div>

問題原因:
標(biāo)簽段之間存在空格或換行
解決:

1)移除標(biāo)簽段之間的空格

方式1:

<div class="space">
    <a href="##">
    惆悵</a><a href="##">
    淡定</a><a href="##">
    熱血</a>
</div>

方式2:

<div class="space">
    <a href="##">惆悵</a
    ><a href="##">淡定</a
    ><a href="##">熱血</a>
</div>

方式3:借助HTML注釋。

<div class="space">
    <a href="##">惆悵</a><!--
    --><a href="##">淡定</a><!--
    --><a href="##">熱血</a>
</div>
2)使用margin負(fù)值
.space a {
    display: inline-block;
    margin-right: -3px;
}
3)讓閉合標(biāo)簽吃膠囊
<div class="space">
    <a href="##">惆悵
    <a href="##">淡定
    <a href="##">熱血</a>
</div>
4)使用font-size:0
.space {
    font-size: 0;
 -webkit-text-size-adjust:none;//Chrome兼容性處理,Chrome默認(rèn)有最小字體大小限制缎罢。
}
.space a {
    font-size: 12px;
}
5)使用letter-spacing(Opera下存在兼容性問題:最小間距1像素)
.space {
    letter-spacing: -3px;
}
.space a {
    letter-spacing: 0;
}
6)使用word-spacing
.space {
   display: inline-table;//解決chrome兼容性問題
    word-spacing: -6px;
}
.space a {
    word-spacing: 0;
}

參考文獻(xiàn):去除inline-block元素間間距的N種方法
10策精、左圖右文排版

<div>
<div id="left">圖片</div>
<div id="right">文字</div>
</div>

要求:左邊固定寬咽袜,右邊自適應(yīng)。
參考文獻(xiàn):
CSS面試題(一)
11谜嫉、單行沐兰、多行文本溢出省略號
單行文本溢出省略號

.div{   
border:1px solid black;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
<div class="div">如果實現(xiàn)單行文本的溢出顯示省略號同學(xué)們應(yīng)該都知道用text-overflow:ellipsis屬性來住闯,當(dāng)然還需要加寬度width屬來兼容部分瀏覽澳淑。</div>

text-overflow:當(dāng)文本溢出包含元素時發(fā)生的事情杠巡。
text-overflow:ellipsis.顯示省略號來代表被修改的文本。
white-space:這個屬性聲明建立布局過程中如何處理元素中的空白符绑改。
white-space:nowrap:文本不會換行厘线,文本會在在同一行上繼續(xù)出革,直到遇到
標(biāo)簽為止。
多行文本溢出省略號

.div{   
border:1px solid black;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
<div class="div">-webkit-line-clamp用來限制在一個塊元素顯示的文本的行數(shù)成箫。 為了實現(xiàn)該效果旨枯,它需要組合其他的WebKit屬性攀隔。常見結(jié)合屬性:
display: -webkit-box; 必須結(jié)合的屬性 ,將對象作為彈性伸縮盒子模型顯示 明刷。
-webkit-box-orient 必須結(jié)合的屬性 满粗,設(shè)置或檢索伸縮盒對象的子元素的排列方式 映皆。</div>
Paste_Image.png

-webkit-line-clamp用來限制在一個塊元素顯示的文本的行數(shù)劫扒。 為了實現(xiàn)該效果沟饥,它需要組合其他的WebKit屬性。常見結(jié)合屬性:
display: -webkit-box; 必須結(jié)合的屬性 广料,將對象作為彈性伸縮盒子模型顯示 幼驶。
-webkit-box-orient 必須結(jié)合的屬性 盅藻,設(shè)置或檢索伸縮盒對象的子元素的排列方式 。
12勃蜘、html如下面所示假残,編寫CSS實現(xiàn)下面效果。

<div class="ul-container">
<ul>
<li>你好</li>
<li>同學(xué)</li>
<li>搜狐</li>
<li>公司</li>
<li>歡迎</li>
<li>你的</li>
<li>到來</li>
</ul>
</div>

每排有3個,第3個和最后一排沒有右邊的間隔線莹汤。

.ul-container{  
width:304px;/*這里寬度=3個li標(biāo)簽的寬度+2個間隔線的寬度*/
}
/*div最后要清除浮動否則父元素包不住ul和li*/
.ul-container:after{
    content:'';
    display:block;clear:both;
    }
/*清除ul和li的原始格式*/
ul,li{
    list-style-type:none;
    margin:0px;
    padding:0px;
    }
li{
    float:left;
    border-right:2px solid gray;
    width:100px;
    height:40px;
    line-height:40px;
    text-align:center;
margin-bottom:10px;
    }
li:nth-of-type(3n+3){
    border-right:0px;
    }
li:nth-last-of-type(1){
    border-right:0px;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嗽仪,隨后出現(xiàn)的幾起案子荒勇,更是在濱河造成了極大的恐慌,老刑警劉巖闻坚,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沽翔,死亡現(xiàn)場離奇詭異,居然都是意外死亡窿凤,警方通過查閱死者的電腦和手機(jī)仅偎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雳殊,“玉大人橘沥,你說我怎么就攤上這事夯秃∽兀” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵仓洼,是天一觀的道長介陶。 經(jīng)常有香客問我,道長色建,這世上最難降的妖魔是什么哺呜? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮箕戳,結(jié)果婚禮上某残,老公的妹妹穿的比我還像新娘。我一直安慰自己陵吸,他們只是感情好驾锰,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著走越,像睡著了一般椭豫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天赏酥,我揣著相機(jī)與錄音喳整,去河邊找鬼。 笑死裸扶,一個胖子當(dāng)著我的面吹牛框都,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呵晨,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼魏保,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了摸屠?” 一聲冷哼從身側(cè)響起谓罗,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎季二,沒想到半個月后檩咱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡胯舷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年刻蚯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桑嘶。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡炊汹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逃顶,到底是詐尸還是另有隱情兵扬,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布口蝠,位于F島的核電站器钟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妙蔗。R本人自食惡果不足惜傲霸,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眉反。 院中可真熱鬧昙啄,春花似錦、人聲如沸寸五。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梳杏。三九已至韧拒,卻和暖如春淹接,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叛溢。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工塑悼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人楷掉。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓厢蒜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烹植。 傳聞我的和親對象是個殘疾皇子斑鸦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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

  • 以下是某家金融證券類公司的Android筆試題,及自己整理的答案草雕,如有錯誤請諸位看官指正巷屿,小生在此先行謝過。 基礎(chǔ)...
    然小七閱讀 12,880評論 3 28
  • 1促绵、#import 跟#include攒庵、@class有什么區(qū)別嘴纺?#import<> 跟 #import""又什么區(qū)...
    Jalynn葸閱讀 381評論 0 4
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,363評論 24 450
  • 前端面試題的簡單整理败晴,都只是大概回答,具體某些問題的具體理解后續(xù)會補上栽渴。 前端頁面有哪三層構(gòu)成尖坤,分別是什么?作用是...
    李歡li閱讀 483評論 0 2
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,751評論 1 92