做D3相關的開發需要以下幾個概念:
1. HTML
超文本標記語言用來構建web瀏覽器的內容,一個簡單的HTML頁面像這樣
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Page Title</h1>
<p>This is a really interesting paragraph.</p>
</body>
</html>
2. DOM
DOM(Document Object Model)是指HTML的層級結構,每一個括號標籤是一個“元素”,我們用人際關係中的詞來指代元素的相對關係:“父母”、“孩子”、“兄弟”、
“祖先”、“後代”。在上面的HTML代碼中,body是h1和p的父元素,其中h1和p互爲兄弟。頁面所有的元素都是html元素的後代。web瀏覽器的DOM解析是爲了理解
網頁的內容。
3. CSS
層疊樣式表是用來風格化HTML頁面的視覺呈現。一個簡單的CSS樣式表看起來像這樣:
body {
background-color: white;
color : black;
}
CSS樣式由選擇器和規則組成。選擇器識別被應用樣式的特定元素:
h1 /* Selects level 1 headings */
p /* Selects paragraphs */
.caption /* Selects elements with class "caption" */
#subnav /* Selects element with ID "subnav" */
規則的屬性逐漸積累形成了樣式:
color: pink;
background-color: yellow;
margin: 10px;
padding: 25px;
我們用花括號連接選擇器和規則:
p {
font-size: 12px;
line-height: 14px;
color: black;
}
D3用CSS樣式選擇器識別要操作的元素,所以學會使用它很重要。CSS規則可以直接包含在文檔的<head>內,像這樣:
<head>
<style type="text/css">
p {
font-family: sans-serif;
color: lime;
}
</style>
</head>
或者保存在以“css”爲後綴的外部文件中,然後在<head>中引用:
<head>
<link rel="stylesheet" href="style.css">
</head>
3. JavaScript
JavaScript是一種動態腳本語言,可以在已經加載後指示瀏覽器頁面做修改,腳本可以直接包含在HTML中,在兩個script標籤之間:
<body>
<script type="text/javascript">
alert("Hello, world!");
</script>
</body>
或者保存在外部文件中,然後在HTML中引用,一般在<head>中:
<head>
<title>Page Title</title>
<script type="text/javascript" src="myscript.js"></script>
</head>
4. SVG
D3在呈現可縮放矢量圖形的視覺效果表現非常好。SVG是一種基於文本的圖象格式,這意味着你可以通過寫一些簡單的標記代碼去指定一個SVG圖
的樣子,這有點類似於HTML的標籤。實際上,SVG代碼可以直接包括在任何HTML文檔。Web瀏覽器已經支持SVG格式很多年,Internet Explorer除外。
<svg width="50" height="50">
<circle cx="25" cy="25" r="22"
fill="blue" stroke="gray" stroke-width="2"/>
</svg>
在D3中你可能不需要使用SVG,但是你很快就會發現,SVG提供了一些了視覺機會,這是你在普通的HTML元素中不可能遇見的。