本篇接下來要使用css與javascrpt來快速更改各種樣式。
要更改樣式最基本的有三種方式:
- 直接寫在元素的標籤內設定樣式
- 在<style></style>內寫入設定樣式
- 使用javascript更改樣式。
首先是第一種範例:
程式碼:
<div style="width:150px; height:50px; background-color: DarkViolet;
text-align: center; line-height: 50px">方塊2</div>
<div style="width:300px; height:100px;
background-color: DeepSkyBlue">方塊3</div>
<div style="background-color: HoneyDew; text-align: center; line-height: 50px">方塊4</div>
效果:
方塊2
方塊3
方塊4
使用方法為在<div>裡面多寫一段 Style="….這中間放的內容就可以更改樣式…." style 前面要記得空一格,每個不同的標籤後面要加上「;」隔開,為方便讀去會再多一個空格,標籤的各個用途如下:
| 標籤 | 使用用途: |
| width:50px; | 寬度設為50px |
| height:100px; | 高度設為100px |
| background-color:skyblue; | 背景設為天空藍 |
| text-align: center; | 文字置中 |
| line-height: 100px; | 文字高度設為100px |
| margin: 10px; | 設定周圍間距10px |
| border-radius: 30px; | 設定圓角30px |
| display : ‘inline-block’; | 設為行內元素,像是上面提到的div強制會放在同一行內喔! |
除了div元素之外,其他像是前一篇有提到的p、pre等之後會有更多的元素都可以用這種方式改變樣式。
另外特別說明,style="……",在雙引號的內容中,通通屬於css語法,可以看到這邊已經出現了html語法與css語法交互使用的情況了。
剛剛的方式一次就只能改變一個div,如果今天有好多個區塊都要設定顏色,就要使用到網頁架構中的<style><\style>標籤
接下來是第二種CSS選取器:
先上範例再來說明:
程式碼:
<style>
div{
width: 40px;
height: 40px;
background-color: SkyBlue;
text-align: center;
line-height: 40px;
margin: 10px;
text-inline: center;
border-radius: 30px;
}
</style>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
</body>
效果:
1
2
3
4
5
6
7
8
9
10
以上就是用style標籤快速設定樣式的基本操作,不過這樣的設定方法還是有些問題的,實務上一定會有很多不同的區塊要設定不同的顏色。
目前的作法只能把所有叫div的通通變成天藍色,接下來就要回到HTML的語法
我們要給每個元素都有個ID,好操控他們,寫法如下。
<div id = 'div1'>這是ID為div1的div</div>
<p id = 'p1'>這是ID為p的p</p>
<p id = 'div2'>這是ID偽裝為div2的p</p>
<div id = 'div3'>這是正常的div3</div>
/* ^= 代表後面的字串開頭符合的所有條件*/
div[id^=div]
/* 代表符合id前面的幾個字為DIV的元素通通都會改,像上面有個偽裝的就會被改*/
{...
}
#div3
/*直接指定ID設定*/
{....
}
[id^=div]
/*也可以指定符合條件的ID設定*/
{
}
| 優先度 | style格式 | 指定的方式 |
| 1. | <div style="width:300px; height:100px> | 直接在body裡面的div元素裡面宣告的最大 |
| 2. | #div3 | #加上ID名稱為最高優先度 |
| 3. | div[id ^="…."] | 指定元素符合條件次之(這邊是指定id,也可以指定其他的) |
| 4. | [id = ] | 未指定元素,符合id的通通改變 |
詳細可參考https://www.w3schools.com/css/css_selectors.asp
最後是第三種:
可以直接用javescript快速創建元素並且設定標籤屬性,當有大量資料需要使用時,會搭配迴圈使用
<body>
<script>
var ref = document.createElement('div');
ref.id = 'box01';
ref.style.width = '100px';
ref.style.height = '100px';
ref.style.textAlign = 'center';
ref.style.lineHeight = '100px';
ref.style.margin = '5px';
ref.style.borderRadius = '5px';
ref.style.display = 'inline-block';
ref.style.backgroundColor = 'SkyBlue';
ref.style.color = 'gold';
ref.innerHTML = '方塊1';
document.body.append(ref);
</script>
</body>
以上是三種設定元素樣式的方法。