Html佈局左右寬度固定中間自適應解決方案

someone 發表於2018-12-03
文章主要介紹了詳解左右寬度固定中間自適應html佈局解決方案的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

a.使用浮動佈局

html結構如下

  1. <div class="box">
  2. <div class="left">left</div>
  3. <div class="right">right</div>
  4. <div class="center">center</div>
  5. </div>
  6. //此處注意要先渲染左、右浮動的元素才到中間的元素。元素浮動後剩餘兄弟塊級元素會佔滿父元素的寬度
  7. <style>
  8. .box{
  9. height:200px;
  10. }
  11. .left{
  12. float:left;
  13. width:300px;
  14. }
  15. .right{
  16. float:right;
  17. width:300px;
  18. }
  19. </style>

b.使用固定定位

html結構如下

  1. <div class="box">
  2. <div class="left">left</div>
  3. <div class="right">right</div>
  4. <div class="center">center</div>
  5. </div>
  6. //和浮動佈局同理,先渲染左右元素,使其定位在父元素的左右兩端,剩餘的中間元素佔滿父元素剩餘寬度。
  7. <style>
  8. .box{
  9. position: relative;
  10. }
  11. .left{
  12. position: absolute;
  13. width: 100px;
  14. left: 0;
  15. }
  16. .right{
  17. width:100px;
  18. position: absolute;
  19. right: 0;
  20. }
  21. .center{
  22. margin: 0 100px;
  23. background: red;
  24. }
  25. </style>

c.表格佈局

將父元素display:table,子元素display:table-cell,會將它變為行內塊。

這種佈局方式的優點是相容性好。

  1. <div class="box">
  2. <div class="left">
  3. left
  4. </div>
  5. <div class="center">
  6. center
  7. </div>
  8. <div class="right">
  9. right
  10. </div>
  11. </div>
  12. <style>
  13. .box{
  14. display: table;
  15. width: 100%;
  16. }
  17. .left{
  18. display: table-cell;
  19. width: 100px;
  20. left: 0;
  21. }
  22. .right{
  23. width:100px;
  24. display: table-cell;
  25. }
  26. .center{
  27. width: 100%;
  28. background: red;
  29. }
  30. </style>

d.彈性佈局

父元素display:flex子元素會全部並列在一排。

子元素中flex:n的寬度會將父元素的寬度/n

如flex:1,寬度就等於父元素高度。

彈性佈局的缺點是相容性不高,目前IE瀏覽器無法使用彈性佈局

  1. <div class="box">
  2. <div class="left">
  3. left
  4. </div>
  5. <div class="center">
  6. center
  7. </div>
  8. <div class="right">
  9. right
  10. </div>
  11. </div>
  12. <style>
  13. .box{
  14. display: flex;
  15. width: 100%;
  16. }
  17. .left{
  18. width: 100px;
  19. left: 0;
  20. }
  21. .right{
  22. width:100px;
  23. }
  24. .center{
  25. flex:1;
  26. }
  27. </style>

e.網格佈局

父元素display:grid;

grid-templatecolumns:100px auto 100px;

依次為第一個子元素寬100px 第二個自適應 第三個100px;

網格佈局的優點是極為簡便,直接透過父元素樣式決定,缺點是相容性不高。

  1. <div class="box">
  2. <div class="left">
  3. left
  4. </div>
  5. <div class="center">
  6. center
  7. </div>
  8. <div class="right">
  9. right
  10. </div>
  11. </div>
  12. <style>
  13. .box{
  14. display: grid;
  15. grid-template-columns: 100px auto 100px;
  16. width: 100%;
  17. }
  18. </style>

以上就是本文Html佈局左右寬度固定中間自適應解決方案的全部內容,希望對大家的學習有所幫助。

相關文章