-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css] 第3天 在页面上隐藏元素的方法有哪些? #8
Comments
|
|
display: none; |
占位:
不占位:
仅对块内文本元素:
|
利用 dispaly
利用 position (absolute 的情况下)
|
配合绝对定位
放在最底层
|
opacity:0; //视觉上的隐藏 display:none;//对页面布局起作用,不会响应任何用户交互 visibility:hidden; //被隐藏的元素不占据任何空间 //屏幕上不可见 |
大家都没有说优缺点啊。从性能的角度来说,disaplay: none; 页面不会渲染,可以减少首屏渲染的时间,但是会引起回流和重绘。 |
这里学到的几个:
|
// div 不占任何位置
// div 还在占位
|
|
|
补充一个: |
暂时就想到这么多 |
|
background: transparent; |
<div class="box"></div> 一、全局属性 hidden
<div class="box" hidden></div> 二、
|
在满足 |
|
位移:position,margin,transform,text-indent,都设置-9999px; |
1.display: none 其他大佬的: |
display:none 页面不渲染 |
function delLast(str, target){
var map = str.split(target);
var newstr = '';
console.log(map);
for(var i = 0;i < map.length;i++){
if(i === map.length - 1 || i === map.length - 2){
newstr = newstr + map[i];
}else{
newstr = newstr + map[i] + target;
}
}
return newstr;
}
delLast('abcc abcdabceabc','abc'); |
visibility: hidden; |
1.display:none 隐藏元素,页面不会渲染 |
嘿嘿,这个也来答答。 position: absolute;
z-index: -1;
visibility: hidden; 这样就能隐藏而不占位,也会保留表单功能。 |
display:none; |
display : none |
display : none visibility : hidden; width:0; margin-left: -100%; opacity: 0; font-size:0; |
display:none |
1.设置opacity透明度为0 |
opacity: 0; |
占位: text-indent: -9999px; |
display: none; |
display: none; 和 visibility: hidden; opacity: 0; 的区别 三者都实现隐藏功能但前者没有渲染该元素 后两者者渲染了 |
display:none将元素设置为display:none后,元素在页面上将彻底消失 元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘 • 读屏软件不会阅读元素中的内容 注意:通过 DOM 依然可以访问到这个元素,因此你可以通过 DOM 来操作它。 visibility: hidden元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排 • 读屏软件不会阅读元素中的内容 适用场景:不希望页面布局会发生变化 opacity: 0设置元素透明度,设置成0相当于隐藏元素 • 读屏软件会阅读元素中的内容 position将元素移出可视区域,这个办法既不会影响布局,又能让元素保持可以操作 .hide1{
/* 将元素的position属性设置为absolute,并且top和left设置为极大负值(将元素移出视窗外面) */
position:absolute;
left:-99999px;
top:-90999px; /* 不占据空间,无法点击 */
}
.hide2{
/* 将元素的position属性设置为relative,并且top和left设置为极大负值(将元素移出视窗外面) */
position:relative;
left:-99999px;
top:-90999px; /* 占据空间,无法点击 */
} • 读屏软件会阅读元素中的内容 适用场景:有一个元素你想要与它交互,但是你又不想让它影响你的网页布局 clip/clip-path
已废弃: .hide1{
position:absolute;/*fixed*/
clip:rect(top,right,bottom,left);/* 占据空间,无法点击 */
}
.hide2 {
clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
} z-index设置z-index值使其它元素遮盖该元素 .hide1{
position:absolute;
z-index:-1000;/* 不占据空间,无法点击 */
} transform
.hide1{
transform: scale(0,0)/* 占据空间,无法点击 */
} |
dispaly: none; 元素消失于文档流 |
dispaly:none; |
display:none;和visibility:hidden; |
1.设置opacity透明度为0 |
总结: |
影响布局
不影响布局
|
1.display:none; |
|
占位
不占位
|
|
我来个骚的: |
overflow:hidden |
|
display:none;opacity: 0; |
display: none; |
display:none |
[css] 第3天 在页面上隐藏元素的方法有哪些?并简述出第一种方法的应用场景和优劣势。
The text was updated successfully, but these errors were encountered: