flex和传统方式实现左右两栏式

  发布时间:2023-09-26 15:32:53   作者:前端不加班   我要评论
本文主要介绍了flex和传统方式实现左右两栏式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.混合浮动+普通流

混合浮动+普通流
父级:宽度固定
left:宽度固定。浮动起来
right:宽度和父级一样,设定margin-right:left的宽度px,宽度随父级变化而变化(固定+自适应)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .wrap{
            margin:0 auto;
            width:80%;
        }
        #left{
            width:200px;
            height:500px;
            background: #ccffff;
            float: left;
        }
        #right{
            height: 500px;
            background: #ffcccc;
            margin-left:200px;
        }
    </style>
    <!--
        混合浮动+普通流
    -->
</head>
<body>
<div class="wrap">
    <aside id="left"></aside>
    <section id="right"></section>
</div>
</body>
</html>

效果

2.flex方式

父级:display:flex
left:flex : 0 0 200px(固定200px,不放大也不缩小)
right:flex:1(会随父级变化)
(固定+自适应)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 参考阮一峰里面的百分比布局,要实现和上面一样的效果(一侧固定,一侧随父级进行变化) -->
    <!-- flex: 1 =? 1 1 0%
    flex: auto => 1 1 auto
    flex: none => 0 0 auto;
    flex-basis优先级 自身设定 > 0%(flex:1按字体的高度) > auto(采用height) -->
    <style>
      .wrap {
        margin: 0 auto;
        width: 80%;
        display: flex;
      }
      #left {
        flex: 0 0 200px; /* 左侧固定200px */
        height: 500px;
        background: red;
      }
      #right {
        /* 此处解释下
        flex: 1 1 0%
        0%表示此处宽度是按照自身内容宽度来,此处自身内容宽度为0,但是分配剩余的空间,所以可以自适应变化
         */
        flex: 1; /* 随父级变化 */
        height: 500px;
        background: burlywood;
      }
    </style>
</head>
<body>
<div class="wrap">
  <aside id="left"></aside>
  <section id="right">5555</section>
</div>
</body>
</html>

下来我们讨论一下其他的

上面flex的代码,当我们把他的主轴方向变了之后

会发现right的高度是由内容撑开的 (因为把字体去掉发现这块消失)

注意:
也就是说,当主轴方向是row的情况下,左边设置宽度,右边flex:1。右边宽度为总的宽度-左边宽度

当主轴方向为 column时,上面设置高度,宽度和父级一直,下边flex:1。下面设置高度无效,由内容决定.

3.纯浮动

父级:定宽,清浮动(overflow:hidden)
left,right:定宽,定高,float:left
两边都固定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      .wrap {
        margin: 0 auto;
        width: 900px;
        /* 清浮动 */
        overflow: hidden; 
      }
      #left {
        width: 200px;
        height: 500px;
        background: red;
        float: left;
      }
      #right {
        width: 700px;
        height: 500px;
        background: burlywood;
        float: left;
      }
    </style>
    <!--
        纯浮动
    -->
</head>
<body>
<div class="wrap">
  <aside id="left"></aside>
  <section id="right"></section>
</div>
</body>
</html>

4.定位法

父级:定宽,position:relative

left: 定宽高: position: absolute top: 0 left: 0

right: 定宽高: position: absolute top: 0 right 0

两边都固定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      .wrap {
        margin: 0 auto;
        width: 900px;
        position: relative;
      }
      #left {
        width: 200px;
        height: 500px;
        background: red;
        position: absolute;
        top: 0;
        left: 0;
      }
      #right {
        width: 700px;
        height: 500px;
        background: burlywood;
        position: absolute;
        top: 0;
        right: 0; 
      }
    </style>
    <!--
        定位
    -->
</head>
<body>
<div class="wrap">
  <aside id="left"></aside>
  <section id="right"></section>
</div>
</body>
</html>

到此这篇关于flex和传统方式实现左右两栏式的文章就介绍到这了,更多相关flex和传统方式左右两栏式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • flex和传统方式实现左右两栏式

    本文主要介绍了flex和传统方式实现左右两栏式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-26
  • CSS设置自动滚动定位的间距的方法

    这篇文章主要给大家介绍CSS设置自动滚动定位的间距的方法,文中有详细的代码示例和图文介绍,对大家的学习或工作有一定的价值,需要的朋友可以参考下
    2023-09-22
  • css实现flex布局自动换行

    在flex 布局中实现换行效果,我们可以使用 flex-wrap 属性来允许项目自动换行,本文就来介绍一下css实现flex布局自动换行,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-21
  • CSS实现背景图片透明文字不透明效果的两种方法

    网页设计中经常要在背景图上放一些文字介绍,这就需要背景图片能有透明效果以便突出显示文字信息,本文就详细的介绍CSS实现背景图片透明文字不透明效果,感兴趣的可以了解
    2023-09-18
  • overflow:auto的用法和实现弹性盒横向滚动效果

    overflow:auto含义是如果高度撑开了原有设定的高度,那么可以添加这个属性,让它出现滚动条滚动显示,这篇文章主要介绍了overflow:auto的用法和实现弹性盒横向滚动,需要的
    2023-09-15
  • CSS使两个不同的div居中对齐的三种解决方案

    CSS div居中对齐是必需要掌握的知识,也是面试必考知识,本文就来介绍一下CSS使两个不同的div居中对齐的三种解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-14
  • 使用CSS实现简单的边框流光效果

    今天给大家分享一个使用CSS实现简单的边框流光效果,就像和夜晚街上的广告牌很像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
    2023-09-14
  • CSS页面中点击超链接如何跳转新的页面

    这篇文章主要介绍了CSS页面中点击超链接如何跳转新的页面,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-13
  • 浅谈display:inline-block元素之间空隙的产生原因和解决办法

    display:inline-block是一种布局方法,它相比于与浮动、定位最大的不同就是其没有父元素的匿名包裹特性,本文主要介绍了display:inline-block元素之间空隙的产生原因和解决
    2023-09-12
  • diaplay:table布局神器的绝妙应用场景

    display:table布局可以实现一些其他布局比较难实现的场景,本文就主要介绍了diaplay:table布局神器的绝妙应用场景,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-12

最新评论