2016-08-21 28 views
2

这里是我的代码:为什么当我将溢出属性设置为隐藏时,伪元素会消失?

.user_inbox{ 
 
    position:absolute; 
 
    background-color: #fff; 
 
    border-radius:2px; 
 
    -o-border-radius:2px; 
 
    -moz-border-radius:2px; 
 
    -webkit-border-radius:2px; 
 
    -ms-border-radius:2px; 
 
    box-shadow: 0px 0px 6px #ccc; 
 
    -o-box-shadow: 0px 0px 6px #ccc; 
 
    -moz-box-shadow: 0px 0px 6px #ccc; 
 
    -webkit-box-shadow: 0px 0px 6px #ccc; 
 
    -ms-box-shadow: 0px 0px 6px #ccc; 
 
    width: 310px; 
 
    direction:ltr; 
 
    left:53px; 
 
    top:63px; 
 
    border:1px solid #CCC; 
 
    z-index:5000; 
 
    height:100%; 
 
    max-height:55%; 
 
    min-height:180px; \t 
 
    right: 53px; 
 
    top: 65px; 
 
    /* overflow:hidden; */ 
 
} 
 
.user_inbox:after{ 
 
    background-color: #fff; 
 
    box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, .4); 
 
    -o-box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, .4); 
 
    -moz-box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, .4); 
 
    -webkit-box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, .4); 
 
    -ms-box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, .4); 
 
    content: "\00a0"; 
 
    display: block; 
 
    height: 12px; 
 
    width: 12px; 
 
    margin-left:18px; 
 
    position:absolute; 
 
    top:-5px; 
 
    transform:rotate(135deg); 
 
    -moz-transform:rotate(135deg); 
 
    -ms-transform:rotate(135deg); 
 
    -webkit-transform:rotate(135deg); 
 
    -o-transform:rotate(135deg); 
 
    background-color: #F7F7F7; 
 
    right: 18px; 
 
} 
 

 
.title{ 
 
    background-color: #F7F7F7; 
 
    display:block; 
 
    width; 100%; 
 
    height: 20px; 
 
    text-align: center; 
 
    padding: 5px; 
 
}
<div class="user_inbox"> 
 
    <span class="title">there is a title</span> 
 
</div>

现在,请删除评论这是围绕这条线:overflow:hidden;(我的意思是请该行取消注释) ..然后突然说上调箭头将消失。

好吧,我需要向上箭头和这个属性overflow:hidden;。我该如何处理?

+2

你**不能**想到孩子或伪元素生存溢出隐藏。很明显,你需要另一层Element。 *每日提示:*创建隐藏溢出的内部子元素。 –

+0

@ RokoC.Buljan指出的问题是,跨度本身上有'overflow:hidden'。但伪元素显示在span元素的边界框外侧。而那个盒子以外的东西都会被切掉。这就是'overflow:hidden'的含义。你能告诉我们为什么你需要'溢出:隐藏'吗?也许我们可以找出另一种做法。 – Whothehellisthat

+0

@ RokoC.Buljan好的,谢谢..只有一件事,我可以在元素的底部设置“overflow:hidden' ** only **吗? – stack

回答

2

overflow:hidden是游戏结束的子元素试图弹出它的父溢出边界。
相反创建一个内部容器,将溢出(隐藏)

.overflow{ 
 
    position: relative; 
 
    overflow:hidden; 
 
    height: inherit; 
 
    width: inherit; 
 
    background: #cf5; 
 
} 
 

 
.user_inbox{ 
 
    position:absolute; 
 
    background-color: #fff; 
 
    border-radius:2px; 
 
    box-shadow: 0px 0px 6px #ccc; 
 
    width: 310px; 
 
    direction:ltr; 
 
    left:53px; 
 
    top:63px; 
 
    border:1px solid #CCC; 
 
    z-index:5000; 
 
    height:100%; 
 
    max-height:55%; 
 
    min-height:180px; \t 
 
    right: 53px; 
 
    top: 65px; 
 
} 
 
.user_inbox:after{ 
 
    background-color: #fff; 
 
    box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, 0.4); 
 
    content: "\00a0"; 
 
    display: block; 
 
    height: 12px; 
 
    width: 12px; 
 
    margin-left:18px; 
 
    position:absolute; 
 
    top:-5px; 
 
    transform:rotate(135deg); 
 
    -moz-transform:rotate(135deg); 
 
    -ms-transform:rotate(135deg); 
 
    -webkit-transform:rotate(135deg); 
 
    -o-transform:rotate(135deg); 
 
    background-color: #F7F7F7; 
 
    right: 18px; 
 
} 
 

 
.title{ 
 
    background-color: #F7F7F7; 
 
    display:block; 
 
    width; 100%; 
 
    height: 20px; 
 
    text-align: center; 
 
    padding: 5px; 
 
}
<div class="user_inbox"> 
 
    <div class="overflow"> 
 
    <span class="title">there is a title</span> 
 
    </div> 
 
</div>

或 “底部”(在标题下方);

.overflow{ 
 
    position: relative; 
 
    overflow:hidden; 
 
    width: inherit; 
 
    background: #cf5; 
 
    max-height:55%; 
 
    min-height:180px; \t 
 
} 
 

 
.user_inbox{ 
 
    position:absolute; 
 
    background-color: #fff; 
 
    border-radius:2px; 
 
    box-shadow: 0px 0px 6px #ccc; 
 
    width: 310px; 
 
    direction:ltr; 
 
    left:53px; 
 
    top:63px; 
 
    border:1px solid #CCC; 
 
    z-index:5000; 
 
    /*height:100%; 
 
    max-height:55%; 
 
    min-height:180px; \t */ 
 
    right: 53px; 
 
    top: 65px; 
 
} 
 
.user_inbox:after{ 
 
    background-color: #fff; 
 
    box-shadow: -2px 2px 2px 0 rgba(178, 178, 178, 0.4); 
 
    content: "\00a0"; 
 
    display: block; 
 
    height: 12px; 
 
    width: 12px; 
 
    margin-left:18px; 
 
    position:absolute; 
 
    top:-5px; 
 
    transform:rotate(135deg); 
 
    -moz-transform:rotate(135deg); 
 
    -ms-transform:rotate(135deg); 
 
    -webkit-transform:rotate(135deg); 
 
    -o-transform:rotate(135deg); 
 
    background-color: #F7F7F7; 
 
    right: 18px; 
 
} 
 

 
.title{ 
 
    background-color: #F7F7F7; 
 
    display:block; 
 
    width; 100%; 
 
    height: 20px; 
 
    text-align: center; 
 
    padding: 5px; 
 
}
<div class="user_inbox"> 
 
    <span class="title">there is a title</span> 
 
    <div class="overflow"></div> 
 
</div>

+0

谢谢.. upvote ..顺便说一句'#cf5'背景颜色很好:-) – stack

+0

@stack'#cf5'是一个瞳孔燃烧器,正是需要的:D;)不客气! –

+0

同意颜色:-)只有一件事,我可以将'div.user_inbox'元素封装到另一个元素中,而不是像'div.overflow'那样添加一个新元素吗?因为我有很多基于'.user_inbox> ...'名称的CSS属性..我可以不**改变他们所有的.. – stack

相关问题