两列布局——左侧宽度固定,右侧宽度自适应的实现方法

今天药忘吃喽~ 2024-04-19 13:30 159阅读 0赞

左侧宽度固定,右侧宽度自适应的实现方法

方法一:左浮动+margin-left

让两个元素在同一行显示首先想到的就是浮动,首先可以让左侧元素浮动,使其脱离文档流,右边的元素加上margin-left,其值等于左边元素的宽度,这时右侧元素紧挨左侧元素,实现左侧宽度固定,右侧宽度自适应效果。

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .left {
  14. width: 300px;
  15. height: 100px;
  16. background-color: pink;
  17. float: left;
  18. }
  19. .right {
  20. height: 200px;
  21. background-color: skyblue;
  22. margin-left: 300px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="left">左边固定</div>
  28. <div class="right">右边自适应</div>
  29. </body>
  30. </html>

实现效果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pZXZlcg_size_16_color_FFFFFF_t_70

方法三:两个float方案

单个元素浮动可以实现,让两个容器同时浮动当然也可以实现,但是右边元素在浮动的时候宽度是依据内容决定的,因此我们需要为右边的元素设置一个宽度,可以用calc函数进行解决。

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .left {
  14. width: 300px;
  15. height: 100px;
  16. background-color: pink;
  17. float: left;
  18. }
  19. .right {
  20. height: 200px;
  21. background-color: skyblue;
  22. float: left;
  23. width: calc(100% - 300px);
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div class="container">
  29. <div class="left">左边固定</div>
  30. <div class="right">右边自适应</div>
  31. </div>
  32. </body>
  33. </html>

效果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pZXZlcg_size_16_color_FFFFFF_t_70 1

方法三:absolute+margin-left

此方法相同于方法一,都是让左边的盒子脱离标准流,右边盒子添加margin-left(其值等于左边盒子的宽度)。

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .left {
  14. width: 300px;
  15. height: 100px;
  16. background-color: pink;
  17. position: absolute;
  18. }
  19. .right {
  20. height: 200px;
  21. background-color: skyblue;
  22. margin-left: 300px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="container">
  28. <div class="left">左边固定</div>
  29. <div class="right">右边自适应</div>
  30. </div>
  31. </body>
  32. </html>

效果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pZXZlcg_size_16_color_FFFFFF_t_70 2

#

参考链接:

左侧固定,右侧自适应的布局方案

发表评论

表情:
评论列表 (有 0 条评论,159人围观)

还没有评论,来说两句吧...

相关阅读