你可以使用 CSS 伪选择器来更改特定的 HTML 元素。
在本课程中,你将使用伪选择器创建资产负债表。你将学习如何在将鼠标悬停在元素上时更改其样式,并触发网页上的其他事件。
来自于freecodecamp
效果
Balance Sheet
AcmeWidgetCorp
Balance Sheet
2019
2020
2021
Assets
|
2019 |
2020 |
2021 |
Cash This is the cash we currently have on hand. |
$25 |
$30 |
$28 |
Checking Our primary transactional account. |
$54 |
$56 |
$53 |
Savings Funds set aside for emergencies. |
$500 |
$650 |
$728 |
Total Assets |
$579 |
$736 |
$809 |
Liabilities
|
2019 |
2020 |
2021 |
Loans The outstanding balance on our startup loan. |
$500 |
$250 |
$0 |
Expenses Annual anticipated expenses, such as payroll. |
$200 |
$300 |
$400 |
Credit The outstanding balance on our credit card. |
$50 |
$50 |
$75 |
Total Liabilities |
$750 |
$600 |
$475 |
Net Worth
|
2019 |
2020 |
2021 |
Total Net Worth |
$-171 |
$136 |
$334 |
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Balance Sheet</title> <link rel="stylesheet" href="./styles.css"> </head> <body> <main> <section> <h1> <span class="flex"> <span>AcmeWidgetCorp</span> <span>Balance Sheet</span> </span> </h1> <div id="years" aria-hidden="true"> <span class="year">2019</span> <span class="year">2020</span> <span class="year">2021</span> </div> <div class="table-wrap"> <table> <caption>Assets</caption> <thead> <tr> <td></td> <th><span class="sr-only year">2019</span></th> <th><span class="sr-only year">2020</span></th> <th class="current"><span class="sr-only year">2021</span></th> </tr> </thead> <tbody> <tr class="data"> <th>Cash <span class="description">This is the cash we currently have on hand.</span></th> <td>$25</td> <td>$30</td> <td class="current">$28</td> </tr> <tr class="data"> <th>Checking <span class="description">Our primary transactional account.</span></th> <td>$54</td> <td>$56</td> <td class="current">$53</td> </tr> <tr class="data"> <th>Savings <span class="description">Funds set aside for emergencies.</span></th> <td>$500</td> <td>$650</td> <td class="current">$728</td> </tr> <tr class="total"> <th>Total <span class="sr-only">Assets</span></th> <td>$579</td> <td>$736</td> <td class="current">$809</td> </tr> </tbody> </table> <table> <caption>Liabilities</caption> <thead> <tr> <td></td> <th><span class="sr-only">2019</span></th> <th><span class="sr-only">2020</span></th> <th><span class="sr-only">2021</span></th> </tr> </thead> <tbody> <tr class="data"> <th>Loans <span class="description">The outstanding balance on our startup loan.</span></th> <td>$500</td> <td>$250</td> <td class="current">$0</td> </tr> <tr class="data"> <th>Expenses <span class="description">Annual anticipated expenses, such as payroll.</span></th> <td>$200</td> <td>$300</td> <td class="current">$400</td> </tr> <tr class="data"> <th>Credit <span class="description">The outstanding balance on our credit card.</span></th> <td>$50</td> <td>$50</td> <td class="current">$75</td> </tr> <tr class="total"> <th>Total <span class="sr-only">Liabilities</span></th> <td>$750</td> <td>$600</td> <td class="current">$475</td> </tr> </tbody> </table> <table> <caption>Net Worth</caption> <thead> <tr> <td></td> <th><span class="sr-only">2019</span></th> <th><span class="sr-only">2020</span></th> <th><span class="sr-only">2021</span></th> </tr> </thead> <tbody> <tr class="total"> <th>Total <span class="sr-only">Net Worth</span></th> <td>$-171</td> <td>$136</td> <td class="current">$334</td> </tr> </tbody> </table> </div> </section> </main> </body> </html>
|
styles.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| span[class~="sr-only"] { border: 0 !important; clip: rect(1px, 1px, 1px, 1px) !important; clip-path: inset(50%) !important; height: 1px !important; width: 1px !important; position: absolute !important; overflow: hidden !important; white-space: nowrap !important; padding: 0 !important; margin: -1px !important; }
html { box-sizing: border-box; }
body { font-family: sans-serif; color: #0a0a23; }
h1 { max-width: 37.25rem; margin: 0 auto; padding: 1.5rem 1.25rem; }
h1 .flex { display: flex; flex-direction: column-reverse; gap: 1rem; }
h1 .flex span:first-of-type { font-size: 0.7em; }
h1 .flex span:last-of-type { font-size: 1.2em; }
section { max-width: 40rem; margin: 0 auto; border: 2px solid #d0d0d5; }
#years { display: flex; justify-content: flex-end; position: sticky; z-index: 999; top: 0; background: #0a0a23; color: #fff; padding: 0.5rem calc(1.25rem + 2px) 0.5rem 0; margin: 0 -2px; }
#years span[class] { font-weight: bold; width: 4.5rem; text-align: right; }
.table-wrap { padding: 0 0.75rem 1.5rem 0.75rem; }
table { border-collapse: collapse; border: 0; width: 100%; position: relative; margin-top: 3rem; }
table caption { color: #356eaf; font-size: 1.3em; font-weight: normal; position: absolute; top: -2.25rem; left: 0.5rem; }
tbody td { width: 100vw; min-width: 4rem; max-width: 4rem; }
tbody th { width: calc(100% - 12rem); }
tr[class="total"] { border-bottom: 4px double #0a0a23; font-weight: bold; }
tr[class="total"] th { text-align: left; padding: 0.5rem 0 0.25rem 0.5rem; }
tr.total td { text-align: right; padding: 0 0.25rem; }
tr.total td:nth-of-type(3) { padding-right: 0.5rem; }
tr.total:hover { background-color: #99c9ff; }
td.current { font-style: italic; }
tr.data { background-image: linear-gradient(to bottom, #dfdfe2 1.845rem, white 1.845rem); }
tr.data th { text-align: left; padding-top: 0.3rem; padding-left: 0.5rem; }
tr.data th .description { display: block; font-weight: normal; font-style: italic; padding: 1rem 0 0.75rem; margin-right: -13.5rem; }
tr.data td { vertical-align: top; padding: 0.3rem 0.25rem 0; text-align: right; }
tr.data td:last-of-type{ padding-right:0.5rem; }
|