Flexbox就像聊天框css

时间:2016-12-09 16:17:33

标签: html css html5 flexbox

我需要制作一个盒子。我希望实现 flexbox 来制作聊天框。

但有些事情并没有给我我所需要的东西。



.box{
width:350px;
  margin:10px auto;
  height:250px;
  border:1px solid #000;
  display:flex;
  flex-flow:column;
}
.header{
 border:1px solid blue;
 width:100%;
  flex: 0 1 auto;
}
.body{
 width:100%;
  flex: 1 1 auto;
  border:1px solid red;
  
  display:flex;
  flex-flow:column;
}
.scrollable{
flex: 1 1 auto;
  
  height:100px;
  overflow:auto;
}
.writebox{
flex: 1 1 auto;
  position:relative;
}
.writebox textarea{
height:100%;
  width:100%;
}

<div class="box">
  <div class="header">SOME CONTENT . Its fixed always</div>
  <div class="body">
    <div class="scrollable">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam luctus sapien lacus, vestibulum eleifend metus placerat at. Proin nec velit id orci lobortis feugiat. Phasellus cursus felis et imperdiet congue. In tincidunt vel urna eget venenatis. Ut libero velit, auctor non ipsum quis, interdum bibendum metus. Donec ut tempor nulla, sagittis volutpat magna. Donec ut ex fermentum, cursus lectus fringilla, vehicula quam. Morbi leo massa, rutrum non tortor eu, tristique mollis erat. Donec suscipit libero sit amet eleifend interdum. Quisque ut malesuada quam. Morbi interdum libero sed enim sodales rutrum.

Integer non metus vel tellus elementum auctor eu at lacus. Cras dapibus metus id purus porta, vitae fermentum mi imperdiet. Integer eget augue neque. Aenean varius lorem lectus, vitae lacinia nisl scelerisque et. Proin sed nibh aliquet, luctus elit sed, suscipit ligula. Morbi porttitor ligula eu risus varius, id hendrerit massa pharetra. Nullam nisl elit, sagittis nec libero non, tristique fermentum mauris. Phasellus posuere sem eu eros aliquam laoreet. Integer dui tellus, laoreet mollis nibh a, pretium finibus magna. Praesent quis convallis eros. Quisque pulvinar in sapien non dignissim. Praesent eu est nisl. Mauris sit amet nibh non nulla convallis sodales. Vestibulum porttitor dui vel nisl ultricies, non sollicitudin tortor imperdiet. Pellentesque vel nunc a est hendrerit accumsan non quis neque. Nam sagittis interdum elementum.</div>
    <div class="writebox"><textarea></textarea></div>
  </div>
</div>
&#13;
&#13;
&#13;

以下是它的样子:http://i.imgur.com/xCT7mCA.png

在我的原始代码中,textarea的高度可变高达x(我使用自动增长插件我没有将其包含在代码段中)

1 个答案:

答案 0 :(得分:1)

仅在flex: 1上使用.scrollable并将.writable设为灵活容器,例如:

.scrollable {
  flex: 1;
}

.writeable {
  display: flex;
}

看看下面的代码段(我已经为textarea集成了自动增长插件):

autosize($('textarea'));
.box{
width:350px;
  margin:10px auto;
  height:250px;
  border:1px solid #000;
  display:flex;
  flex-flow:column;
}
.header{
 border:1px solid blue;
 width:100%;
  flex: 0 1 auto;
}
.body{
 width:100%;
  flex: 1 1 auto;
  border:1px solid red;
  
  display:flex;
  flex-flow:column;
}
.scrollable{
  flex: 1;
  height:100px;
  overflow:auto;
}
.writebox{
  position:relative;
  display: flex;
}
.writebox textarea{
  height:100%;
  width:100%;
}
<div class="box">
  <div class="header">SOME CONTENT . Its fixed always</div>
  <div class="body">
    <div class="scrollable">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam luctus sapien lacus, vestibulum eleifend metus placerat at. Proin nec velit id orci lobortis feugiat. Phasellus cursus felis et imperdiet congue. In tincidunt vel urna eget venenatis. Ut libero velit, auctor non ipsum quis, interdum bibendum metus. Donec ut tempor nulla, sagittis volutpat magna. Donec ut ex fermentum, cursus lectus fringilla, vehicula quam. Morbi leo massa, rutrum non tortor eu, tristique mollis erat. Donec suscipit libero sit amet eleifend interdum. Quisque ut malesuada quam. Morbi interdum libero sed enim sodales rutrum.

Integer non metus vel tellus elementum auctor eu at lacus. Cras dapibus metus id purus porta, vitae fermentum mi imperdiet. Integer eget augue neque. Aenean varius lorem lectus, vitae lacinia nisl scelerisque et. Proin sed nibh aliquet, luctus elit sed, suscipit ligula. Morbi porttitor ligula eu risus varius, id hendrerit massa pharetra. Nullam nisl elit, sagittis nec libero non, tristique fermentum mauris. Phasellus posuere sem eu eros aliquam laoreet. Integer dui tellus, laoreet mollis nibh a, pretium finibus magna. Praesent quis convallis eros. Quisque pulvinar in sapien non dignissim. Praesent eu est nisl. Mauris sit amet nibh non nulla convallis sodales. Vestibulum porttitor dui vel nisl ultricies, non sollicitudin tortor imperdiet. Pellentesque vel nunc a est hendrerit accumsan non quis neque. Nam sagittis interdum elementum.</div>
    <div class="writebox"><textarea></textarea></div>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://www.jacklmoore.com/js/autosize.min.js"></script>

希望这有帮助!