邊框九宮格
1. 前言
由于實(shí)現(xiàn)九宮格最方便的方式就是網(wǎng)格布局,所以邊框九宮格咱們來(lái)拿網(wǎng)格實(shí)現(xiàn)法舉例,邊框九宮格的關(guān)鍵點(diǎn)其實(shí)并不在于用哪種方式實(shí)現(xiàn)九宮格,所以很容易融會(huì)貫通。
2. 笨方法
相信大家都有過(guò)這樣的經(jīng)歷(假裝你們有過(guò)):有一道數(shù)學(xué)題你并不會(huì),但是你卻想到了一個(gè)耿直的辦法來(lái)解開(kāi)這道數(shù)學(xué)題,答案都是正確的,只不過(guò)過(guò)程曲折了些:
比如問(wèn)你6 x 9 = ? 突然你就忘記了九九乘法表,但是你知道6 x 9 = 9 + 9 + 9 + 9 + 9 + 9。
于是乎你就算唄,最后終于算出來(lái)了,頂多麻煩了點(diǎn),但依然得出了正確答案不是嗎?(即使會(huì)被數(shù)學(xué)老師diss一番)
邊框九宮格也是同理,咱們不懂怎么讓兩個(gè)邊框并在一起的時(shí)候怎么變細(xì),但是咱們可以用笨方法:
讓兩個(gè)相鄰的盒子的其中一個(gè)的相鄰邊不顯示邊框不就完了!

這樣的邊框合在一起就不會(huì)出現(xiàn)兩個(gè)邊框貼在一起啦!
思路有了,那咱們?cè)賮?lái)個(gè)動(dòng)態(tài)程序看一眼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 在這里用link標(biāo)簽引入中文漸變色 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/chinese-gradient">
<style>
/* 清除默認(rèn)樣式 */
* { padding: 0; margin: 0; }
/* 全屏顯示 */
html, body, ul { height: 100% }
/* 父元素 */
ul {
/* 清除默認(rèn)樣式 */
list-style: none;
/* 顯示為網(wǎng)格布局 */
display: grid;
/* 均分成三行三列 */
grid: repeat(3, 1fr) / repeat(3, 1fr);
/* 給個(gè)合適的間距 */
gap: 20px;
/* 調(diào)用動(dòng)畫 */
animation: clear-gap 5s ease-out infinite alternate
}
/* 子元素 */
li {
/* 兩像素的邊框 */
border: 2px solid black
}
/* 定義動(dòng)畫 */
@keyframes clear-gap { to { gap: 0 } }
/* 第一個(gè)子元素 */
li:first-child {
border-right: none;
border-bottom: none;
}
/* 第二個(gè)子元素 */
li:nth-child(2) {
border-bottom: none;
}
/* 第三個(gè)子元素 */
li:nth-child(3) {
border-left: none;
border-bottom: none;
}
/* 第四個(gè)子元素 */
li:nth-child(4) {
border-right: none;
}
/* 第六個(gè)子元素 */
li:nth-child(6) {
border-left: none;
}
/* 第七個(gè)子元素 */
li:nth-child(7) {
border-top: none;
border-right: none;
}
/* 第八個(gè)子元素 */
li:nth-child(8) {
border-top: none;
}
/* 第九個(gè)子元素 */
li:last-child {
border-top: none;
border-left: none;
}
</style>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
運(yùn)行結(jié)果:
3. 小結(jié)
這么做完全可以實(shí)現(xiàn),絕對(duì)沒(méi)毛病,但一般來(lái)說(shuō)大家用笨方法解出來(lái)的數(shù)學(xué)題,即使答案正確,老師也不會(huì)給滿分,因?yàn)?6 x 9 = ? 就是想考察你的乘法水平,但你卻用了加法,雖然答案一樣但卻饒了許多彎路。如果去參加面試的時(shí)候這么實(shí)現(xiàn)出來(lái),面試官也不會(huì)給你滿分,那么下一小節(jié)我們來(lái)看看有沒(méi)有不那么麻煩的方法。
手撕紅黑樹 ·
2025 imooc.com All Rights Reserved |