|
|
|
|
|
在前面文章介紹了我們可以通過(guò)使用color Alpha 透明度隱藏元素,本文將繼續(xù)介紹另一種CSS隱藏元素的方法:使用transform
。
實(shí)例
HTML
<ol class="hide" tabindex="0">
<li>one</li>
<li class="hide-item">two</li>
<li>three</li>
</ol>
<p>鼠標(biāo)移到任何一個(gè)盒子上隱藏盒子two,<br>使用 <b>transform: scale(0);</b>。</p>
CSS
/* 隱藏元素 */
.hide:hover .hide-item,
.hide:focus .hide-item {
transform: scale(0);
/*
alternatively:
transform: translate(-999px, 0);
*/
}
/* 其他樣式 */
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;
}
transform
提供出色的性能和硬件加速,因?yàn)樵乇挥行У匾苿?dòng)到單獨(dú)的層中,并且可以在 2D 或 3D 中進(jìn)行動(dòng)畫(huà)處理。原始布局空間保持原樣,但完全隱藏的元素不會(huì)觸發(fā)任何事件。
transform
屬性可用于平移(移動(dòng))、縮放、旋轉(zhuǎn)或傾斜元素,使用scale(0)
或 translate(-999px, 0px)
屏幕外將隱藏元素。
度量標(biāo)準(zhǔn) | 影響 |
---|---|
瀏覽器支持 | 良好 |
可訪問(wèn)性 | 內(nèi)容仍可閱讀 |
布局受影響? | 否 - 保留原始尺寸 |
渲染要求 | 組合 |
性能 | 最好,可以使用硬件加速 |
動(dòng)畫(huà)幀可能嗎? | 是 |
隱藏時(shí)可觸發(fā)事件嗎? | 不 |
相關(guān)文章
transform 屬性
CSS transform
屬性允許你旋轉(zhuǎn),縮放,傾斜或平移給定元素。這是通過(guò)修改 CSS 視覺(jué)格式化模型的坐標(biāo)空間來(lái)實(shí)現(xiàn)的。
警告: 只能轉(zhuǎn)換由盒模型定位的元素。根據(jù)經(jīng)驗(yàn),如果元素具有display: block
,則由盒模型定位元素。
/* Keyword values */
transform: none;
/* Function values */
transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
transform: translate(12px, 50%);
transform: translateX(2em);
transform: translateY(3in);
transform: scale(2, 0.5);
transform: scaleX(2);
transform: scaleY(0.5);
transform: rotate(0.5turn);
transform: skew(30deg, 20deg);
transform: skewX(30deg);
transform: skewY(1.07rad);
transform: matrix3d(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0);
transform: translate3d(12px, 50%, 3em);
transform: translateZ(2px);
transform: scale3d(2.5, 1.2, 0.3);
transform: scaleZ(0.3);
transform: rotate3d(1, 2.0, 3.0, 10deg);
transform: rotateX(10deg);
transform: rotateY(10deg);
transform: rotateZ(10deg);
transform: perspective(17px);
/* Multiple function values */
transform: translateX(10px) rotate(10deg) translateY(5px);
/* Global values */
transform: inherit;
transform: initial;
transform: unset;
transform
屬性可以指定為關(guān)鍵字值 none
或一個(gè)或多個(gè) <transform-function>
值。
<transform-function>
要應(yīng)用的一個(gè)或多個(gè) CSS 變換函數(shù)。變換函數(shù)按從左到右的順序相乘,這意味著復(fù)合變換按從右到左的順序有效地應(yīng)用。
none
不應(yīng)用任何變換。
HTML
<div>Transformed element</div>
CSS
div {
border: solid red;
transform: translate(30px, 20px) rotate(20deg);
width: 140px;
height: 60px;
}
結(jié)果
相關(guān)文章