我有几个聊天框和其他div元素需要位于屏幕底部,与右边对齐。
问题#1:元素的高度不同,较小的元素与最高元素的顶部垂直对齐。小提琴:http://jsfiddle.net/sd69jdxp/
#container { position: fixed; bottom:0; left:0; right:0; }
.chat { border: 1px solid #999; float: right; position: relative; margin: 0 5px; }
问题#2:使用
的方法display:inline-block; vertical-align:bottom;
将div与页面底部对齐,第一个(最小的)聊天框上的链接(锚点)不可点击,因为父容器与链接重叠。并且不可能为聊天容器设置较低的z-index而不是后面的内容,因为聊天框是聊天容器的子项,并且它们必须具有比页面内容更高的z-index。如何解决这个问题? 小提琴显示此问题:http://jsfiddle.net/xw689yv8/
摘要 如何强制所有div与屏幕右下角对齐,而不会让聊天容器(聊天框的父div)与聊天框后面页面中的内容重叠,从而使其无法点击?
答案 0 :(得分:6)
在容器上使用pointer-events: none
;现在可以点击它下面的元素。
使用display: inline-block
和vertical-align: bottom
安排固定容器内的聊天框。
聊天框获取pointer-events: auto
,以便点击他们及其子女。
对于IE10及更低版本,请查看this answer to an older question以转移点击事件。
全屏查看并选择隐藏在不可见容器下方的文字输入。
.under {
position: absolute;
bottom: 200px;
right: 200px;
}
#container {
position: fixed;
bottom: 0;
right: 0;
pointer-events: none;
}
.chat {
border: 1px solid #999;
display: inline-block;
vertical-align: bottom;
position: relative;
margin: 0 5px;
pointer-events: auto;
}
.title {
padding: 0.5em;
background-color: blue;
color: white;
}
.text {
padding: 10px;
}

<div class="under">
<input type="text" value="select me!" />
</div>
<div id="container">
<div class="chat">
<div class="title">This is the chat title</div>
<div class="text">
<p>Text 1</p>
<p>Text 2</p>
<p>Text 3</p>
</div>
<div class="chatbox">
<input type="text" />
</div>
</div>
<div class="chat">
<div class="title">This is the chat title</div>
<div class="text" style="height:250px">
<p>Text 1</p>
<p>Text 2</p>
<p>Text 3</p>
</div>
<div class="chatbox">
<input type="text" />
</div>
</div>
</div>
&#13;
答案 1 :(得分:0)
我不确定你要如何对齐它们,所以我把它们放在一起。
#container { position: fixed; bottom:0; left:0; right:0; }
.chat { border: 1px solid #999; right:0; position: absolute; bottom: 0; margin: 0 5px; display:inline-block; float:right;}
.title { padding: 0.5em; background-color: blue; color: white; }
.text { padding: 10px; }