使用 CSS 让元素不可见的方法不少,剪裁、定位到屏幕外、明度变化等都是能够的。虽然它们都是肉眼不可见,但背后却在多个维度上都有差异。css
使用 script 标签隐。例如:html
<script type="text/html"> <img src="1.jpg"> </script>
此时,图片 1.jpg 是不会有请求的。<script>
标签是不支持嵌套的,所以,若是但愿在 <script>
标签中再放置其余不渲染的模板内容,能够试试使用 <textarea>
元素。例如:dom
<script type="text/html"> <img src="1.jpg"> <textarea style="display: none;"> <img src="2.jpg"> </textarea> </script>
一样 2.jpg 也是不会有请求的。
另外,<script>
标签隐藏内容获取使用 script.innerHTML
,<textarea>
使用 textarea.value
。code
使用 display: none
隐藏。例如:htm
.dn { display: none; }
transition
淡入淡出效果使用 position: absolute
和 visibility: hidden;
隐藏。例如:图片
.hidden { position: absolute; visibility: hidden; }
使用 visibility: hidden;
隐藏。例如:ip
.hn { visibility: hidden; }
使用 clip
裁剪 或者 relative
隐藏。例如:ci
.clip { position: absolute; clip: rect(0, 0, 0, 0) } .out { position: relative; left: -999em; }
使用 relative
和 z-index
隐藏。例如,若是条件容许,也就是和层叠上下文之间存在设置了背景色的父元素,则也能够使用更友好的 z-index
负值隐藏。例如:资源
.lower { position: relative; z-index: -1; }
使用透明度隐藏。例如:开发
.lower { position: relative; opacity: 0; filter: Alpha(opacity=0); }
使用透明度隐藏。例如:
.lower { opacity: 0; filter: Alpha(opacity=0); }
你们能够经过实际的隐藏场景选择合适的隐藏方法。
实际开发场景变幻无穷,可能还有更多的隐藏方法,也欢迎你们积极留言探讨。
摘自:《CSS世界》第10章 元素的显示与隐藏