JSFiddle - React, Tailwind, and code Playground

HTML

<!-- JavaScript 系列三:練習1 ── alert 示警元件 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./index.css">
    <title>Document</title>
</head>
<body>
    <div id="container">
        <div class="alert alert-primary">
            歡迎您點擊「抖內」按鈕,以實際行動支持我們。
            <button class="btn-close" onclick="closeAlert()">×</button>
          </div>
          <div class="alert alert-success">
            您已成功下訂單!以下為您的訂單詳細資訊。
            <button class="btn-close" onclick="closeAlert()">×</button>
          </div>
          <div class="alert alert-danger">
            抱歉,系統發生錯誤,請稍後重新嘗試。
            <button class="btn-close" onclick="closeAlert()">×</button>
          </div>
          <div class="alert alert-warning">
            請注意,以下內容包含「劇透」爆雷資訊。
            <button class="btn-close" onclick="closeAlert()">×</button>
          </div>
    </div>
      <script src="./index.js"></script>
</body>
</html>

CSS

*{
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}
#container{
    width: 500px;
    margin: 30px auto;
}
.alert{
    display: flex;
    justify-content: space-between;
    padding: 10px;
    font-size: 18px;
    margin-bottom: 15px;
    transition: all 0.5s;
}

.alert:hover{
    transform: scale(1.1);
}

.alert-primary{
    border-top: 7px solid darkblue;
    background-color: rgba(0, 0, 139, 0.2);
}

.alert-success{
    border-top: 7px solid darkgreen;
    background-color: rgba(0, 100, 0, 0.3);
}

.alert-danger{
    border-top: 7px solid darkred;
    background-color: rgba(139, 0, 0, 0.3);
}

.alert-warning{
    border-top: 7px solid darkorange;
    background-color: rgba(255, 140, 0, 0.3);
}

.btn-close{
    font-size: 24px;
    border:0px;
    background-color: transparent;
    cursor: pointer;
}

JavaScript

function closeAlert(){
    let divBlock = event.target.closest('div');
    divBlock.remove();
}