|
|
|
|
|
在前面文章我們介紹了可以通過使用position隱藏元素,本文將繼續(xù)介紹另一種CSS隱藏元素的方法:使用::after
偽元素。
實例
HTML
<ol class="hide" tabindex="0">
<li>one</li>
<li class="hide-item">two</li>
<li>three</li>
</ol>
<p>鼠標移到任何一個盒子上隱藏盒子two,<br>使用 <b>::after</b> 偽元素覆蓋。</p>
CSS
/* hide element */
.hide-item {
position: relative;
}
.hide-item::after {
position: absolute;
content: '';
top: 0;
bottom: 100%;
left: 0;
right: 0;
background-color: #fff;
}
.hide:hover .hide-item::after,
.hide:focus .hide-item::after {
bottom: 0;
}
/* other styles */
body {
font-family: sans-serif;
font-size: 100%;
color: #222;
background-color: #fff;
}
p {
text-align: center;
}
.hide {
display: flex;
justify-content: center;
list-style-type: none;
padding: 0;
margin: 0;
}
.hide > * {
flex: 0 0 25%;
font-size: 2em;
text-align: center;
padding: 1em 0;
margin: 0.2em;
background-color: #ccc;
border-radius: 0.5em;
user-select: none;
}
.hide-item {
background-color: #f66;
cursor: pointer;
}
代碼解釋
通過將另一個元素放置在與背景顏色相同的頂部,可以在視覺上隱藏一個元素。在這個例子中,一個::after
偽元素被覆蓋了,盡管可以使用任何子元素。
雖然在技術(shù)上可行,但此方法需要比其他方法更多的代碼。
度量標準 | 影響 |
---|---|
瀏覽器支持 | 非常好 |
可訪問性 | 內(nèi)容仍在閱讀 |
布局受影響? | 不,如果絕對定位 |
渲染要求 | 畫 |
表現(xiàn) | 謹慎的話是合理的 |
動畫幀可能嗎? | 是的 |
隱藏時可觸發(fā)事件嗎? | 是的,當(dāng)覆蓋了偽元素或子元素時 |
相關(guān)文章
::after 偽元素
CSS偽元素 ::after
用來創(chuàng)建一個偽元素,作為已選中元素的最后一個子元素。通常會配合content
屬性來為該元素添加裝飾內(nèi)容。這個虛擬元素默認是行內(nèi)元素。
/* 在鏈接后面加一個箭頭 */
a::after {
content: "→";
}
element:after { style properties } /* CSS2 語法 */
element::after { style properties } /* CSS3 語法 */
::after
表示法是在CSS 3 中引入的,::
符號是用來區(qū)分[偽類]和偽元素的。支持 CSS3 的瀏覽器同時也都支持 CSS2 中引入的表示法:after
。
備注: IE8 僅支持:after
。
讓我們創(chuàng)建兩個類:一個無趣的和一個有趣的。我們可以在每個段尾添加偽元素來標記他們。
<p class="boring-text">這是些無聊的文字</p>
<p>這是不無聊也不有趣的文字</p>
<p class="exciting-text">在 MDN 上做貢獻簡單又輕松。
按右上角的編輯按鈕添加新示例或改進舊示例!</p>
.exciting-text::after {
content: "<- 讓人興興興奮!";
color: green;
}
.boring-text::after {
content: "<- 無聊!";
color: red;
}
輸出
相關(guān)文章