html5 – css3“新”样式flexbox无法在chrome中拉伸textarea

前端之家收集整理的这篇文章主要介绍了html5 – css3“新”样式flexbox无法在chrome中拉伸textarea前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法让 css3灵活的盒子布局模型在chrome最新版本中工作,例如:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <style type="text/css">
  5. body {
  6. background: #FFF;
  7. }
  8.  
  9. div.content {
  10. position: fixed;
  11. width: 50%;
  12. height: 80%;
  13. top: 10%;
  14. left: 25%;
  15. padding: 10px;
  16. background-color: #FFFFFF;
  17. Box-shadow: 0px 0px 25px 5px #333333;
  18. border-radius: 10px;
  19.  
  20. display: -webkit-flex;
  21. -webkit-flex-flow: column;
  22. -webkit-align-items: stretch;
  23. }
  24.  
  25. div.content > * {
  26. -webkit-flex: 1 1 auto;
  27. padding: 10px;
  28. margin: 10px;
  29. background-color: #FFFFFF;
  30. border: 2px solid gray;
  31. height:0;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="content">
  37. <div>
  38. <label>label content</label>
  39. </div>
  40.  
  41. <textarea>Text area test</textarea>
  42.  
  43. <div></div>
  44.  
  45. <input type="text" value="input field" />
  46. </div>
  47. </body>
  48. </html>

(jsfiddle)

在上面的例子中,所有元素在主轴上正确弯曲,div和span也在横轴上正确伸展,但是输入和文本区域在横轴上没有正确伸展.根据specification,他们应该.

我不是在寻找一种解决方法,而是想知道我做错了什么或者我在规范中遗漏的东西会阻止它工作.

解决方法

Textareas和输入标签不会自动继承flexBox的max-width属性,因为它们不是Box模型的一部分.为了使它们充当div,你需要将它们包装在一个div中并给它们100%的宽度.这适用于当前版本的Chrome和Canary.

http://jsfiddle.net/nKzhk/29/

  1. textarea {
  2. width: 100%;
  3. }
  4.  
  5. <div class="content">
  6. <div>
  7. <label>label content</label>
  8. </div>
  9.  
  10. <div><textarea>Text area test</textarea></div>
  11.  
  12. <div></div>
  13.  
  14. <div><input type="text" value="input field" /></div>
  15. </div>

猜你在找的HTML5相关文章