總結持續更新
頁面匯入樣式時,使用link和@import的區別
1)從屬關係的區別:link屬於XHTML標籤,而@import是CSS提供的語法規則,link除了載入CSS,還可以定義RSS,定義rel連線屬性等,@import就只能載入CSS。
2)載入順序的區別:頁面載入時,link會同時被載入,而@import引用的CSS會等頁面被載入完後再載入。
3)相容性的區別:@import不相容ie5以下,link是XHTML標籤,沒有相容性問題。
4)DOM可控性區別:通過js操作DOM,可以插入link標籤來改變樣式;DOM方法是基於文件的,無法使用@import
在html設計製作中,css有四種引入方式。
方式一: 內聯樣式
內聯樣式,也叫行內樣式,指的是直接在 HTML 標籤中的 style 屬性中新增 CSS。
示例:
<div style="display: none;background:red"></div>
這通常是個很糟糕的書寫方式,它只能改變當前標籤的樣式,如果想要多個 <div>
擁有相同的樣式,你不得不重複地為每個 <div>
新增相同的樣式,如果想要修改一種樣式,又不得不修改所有的 style 中的程式碼。很顯然,內聯方式引入 CSS 程式碼會導致 HTML 程式碼變得冗長,且使得網頁難以維護。
方式二: 嵌入樣式
嵌入方式指的是在 HTML 頭部中的 <style>
標籤下書寫 CSS 程式碼。
示例:
<head>
<style>
.content {
background: red;
}
</style>
</head>
嵌入方式的 CSS 只對當前的網頁有效。因為 CSS 程式碼是在 HTML 檔案中,所以會使得程式碼比較集中,當我們寫模板網頁時這通常比較有利。因為檢視模板程式碼的人可以一目瞭然地檢視 HTML 結構和 CSS 樣式。因為嵌入的 CSS 只對當前頁面有效,所以當多個頁面需要引入相同的 CSS 程式碼時,這樣寫會導致程式碼冗餘,也不利於維護。
方式三:連結樣式
連結方式指的是使用 HTML 頭部的 標籤引入外部的 CSS 檔案。
示例:
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
這是最常見的也是最推薦的引入 CSS 的方式。使用這種方式,所有的 CSS 程式碼只存在於單獨的 CSS 檔案中,所以具有良好的可維護性。並且所有的 CSS 程式碼只存在於 CSS 檔案中,CSS 檔案會在第一次載入時引入,以後切換頁面時只需載入 HTML 檔案即可。
方式四:匯入樣式
匯入方式指的是使用 CSS 規則引入外部 CSS 檔案。
示例:
<style>
@import url(style.css);
</style>
或者寫在css樣式中
@charset "utf-8";
@import url(style.css);
*{ margin:0; padding:0;}
.notice-link a{ color:#999;}
聖盃佈局和雙飛翼佈局
作用:聖盃佈局和雙飛翼佈局解決的問題是一樣的,就是兩邊頂寬,中間自適應的三欄佈局,中間欄要在放在文件流前面以優先渲染。
區別:
聖盃佈局,為了中間div內容不被遮擋,將中間div設定了左右padding-left和padding-right後,將左右兩個div用相對佈局position: relative並分別配合right和left屬性,以便左右兩欄div移動後不遮擋中間div。
雙飛翼佈局,為了中間div內容不被遮擋,直接在中間div內部建立子div用於放置內容,在該子div裡用margin-left和margin-right為左右兩欄div留出位置。
用遞迴演算法實現,陣列長度為5且元素的隨機數在2-32間不重複的值
描述:
這是一道大題目,把考點拆成了4個小項;需要侯選人用遞迴演算法實現(限制15行程式碼以內實現;限制時間10分鐘內完成):
a) 生成一個長度為5的空陣列arr。
b) 生成一個(2-32)之間的隨機整數rand。
c) 把隨機數rand插入到陣列arr內,如果陣列arr內已存在與rand相同的數字,則重新生成隨機數rand並插入到arr內[需要使用遞迴實現,不能使用for/while等迴圈]
d) 最終輸出一個長度為5,且內容不重複的陣列arr。
var arr = new Array(5);
var num = randomNumber();
var i = 0;
randomArr(arr,num);
function randomArr(arr,num) {
if (arr.indexOf(num)< 0){
arr[i] = num;
i++;
} else {
num = randomNumber();
}
if (i>=arr.length){
console.log(arr);
return;
}else{
randomArr(arr,num)
}
}
function randomNumber() {
return Math.floor(Math.random()*31 + 2)
}
(包含H5)HTML的元素有哪些
行內元素:a、b、span、strong、i、em、button、input、label、br、textarea、select
塊元素:div、p、h1-h6、ol、ul、li、table、tbody、td、tr、thead、dl、dt、dd
H5新增元素:section、article、audio、video、hearder、footer、small
CSS3新增特性
邊框圓角:border-radius
盒子陰影:box-shadow
背景定位:background-origin
背景尺寸:background-size
漸變:
linear-gradient線性漸變
radial-gradient 徑向漸變
2d、3d變換:
transform、rotate()、scale()、skew()、translate()
css3動畫:@Keyframes
過渡動畫:transition
自定義動畫:animation
彈性佈局:flex
多媒體查詢:@media
寫一個方法去掉字串中的空格
方法一是replace()方法與正則表示式的相結合,replace(/\s/g,’’)中,/\s/g表示檢索全域性中的空格。
方法二是split(’ ‘)先將字串通過空格進行分割成為陣列,然後再用join(’’)將陣列通過空字元進行連線成字串。
實際程式碼:
<script>
var str=' abc dafs f343fs ';
// 方法一
console.log(str.replace(/\s/g,''));
// 方法二
// console.log(str.split(' ').join(''));
</script>