三栏布局-中栏流动布局的方式

方法1

首先使用一个wrap包住左侧栏和中间栏,再用一个大的wrap包住左中右三个栏。

如下面代码所示

<div class="fuwrap">
    <div class="ziwrap">
        <div class="left">
            这是左边栏
        </div>
        <div class="middle">
           这是中间栏
        </div>
    </div>
    <div class="right">
        这是右边栏
    </div>
</div>

那么具体布局代码如下

        .fuwrap  {
            float: left;
            width: 100%;
        }
        
        .ziwrap{
            float: left;
            width: 100%;
            margin-right: -250px;
            height: 100px;
        }
        .left{
            float: left;
            width: 150px;
            background-color: red;
            height: 98px;
        }
        .middle{
            width: auto;
            background-color: green;
            height: 98px;
            margin-right: 250px;
            margin-left: 150px;
            word-wrap:break-word
        }
        .middle *{
            margin-left: 20px;
        }
        .right{
            float: left;
            width: 250px;
            background-color: peachpuff;
            height: 98px;
        }

这个方法的主要思想是布局中栏的时候,要把width设置为auto,保证中栏的宽度自适应。将中栏的左边margin设置为左边栏的宽度,留出左边栏的位置,同时将margin-right设置为ziwrap的margin-right的相反值,这样既能在ziwrap布局后留出右边栏的位置,还能保证中间栏的内容不被右边栏所遮挡住。

效果如下

jpg

方法2

使用绝对定位

将三个栏用一个fuwrap包围住,然后将左栏定位到左上角,右边栏定位到右上角,不设置中间栏的宽度,设置其左右margin分别为左右栏的宽度,就可以了。

<div class="fuwrap">

    <div class="left">
        这是左边栏
    </div>

    <div class="middle">
        这是中间栏
    </div>

    <div class="right">
        这是右边栏
    </div>
</div>

布局代码为


       .fuwrap {
            position: relative;
            width: 100%;
        }
        .left{
            width: 150px;
            background-color: red;
            height: 98px;
            top: 0px;
            left: 0px;
            position:absolute;
        }
        .middle{
            background-color: green;
            height: 98px;
            word-wrap:break-word;
            margin-left: 150px;
            margin-right: 250px;
        }
        .middle *{
            margin-left: 20px;
        }
        .right{
            width: 250px;
            background-color: peachpuff;
            height: 98px;
            top: 0px;
            right: 0px;
            position:absolute;
        }

效果图同方法1

方法3

这种方式是使用css3 display:table-cell


<div class="fuwrap">

    <div class="left">
        这是左边栏
    </div>

    <div class="middle">
        这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏这是中间栏
    </div>

    <div class="right">
        这是右边栏
    </div>
</div>

布局代码


.fuwrap{
            width: 100%;
        }
        .left{
            width: 150px;
            background-color: red;
            height: 98px;
            display:table-cell
        }
        .middle{
            background-color: green;
            height: 98px;
            word-wrap:break-word;
            display:table-cell;

        }

        .right{
            width: 250px;
            background-color: peachpuff;
            height: 98px;
            display:table-cell
        }

这种方式虽说也能实现中栏流动布局,但是中间栏中必须有内容撑开中间栏。

效果图:
jpg

如果没有足够的内容撑开,就会出现下面的情况

jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 项目中,可以使用 Vue Router 进行路由管理。要挂载路由,需要进行以下步骤: 1. 安装 Vue Router 可以使用 npm 或者 yarn 进行安装,例如: ```bash npm install vue-router ``` 2. 创建路由实例 在项目的 src 目录下创建一个 router 目录,并在该目录下创建一个 index.js 文件,用于创建路由实例。示例代码如下: ```js import Vue from 'vue' import VueRouter from 'vue-router' import LeftColumn from '@/components/LeftColumn.vue' import MiddleColumn from '@/components/MiddleColumn.vue' import RightColumn from '@/components/RightColumn.vue' Vue.use(VueRouter) const routes = [ { path: '/left', component: LeftColumn }, { path: '/middle', component: MiddleColumn }, { path: '/right', component: RightColumn } ] const router = new VueRouter({ routes }) export default router ``` 在上面的代码中,首先引入了 Vue、Vue Router 和三个组件(LeftColumn、MiddleColumn 和 RightColumn)。然后使用 Vue.use(VueRouter) 安装 Vue Router 插件,创建了一个 routes 数组,其中每个元素表示一个路由,包括 path 和 component 两个属性,分别表示路由路径和对应的组件。最后创建了一个 router 实例,将 routes 作为参数传入。 3. 挂载路由实例 在项目的入口文件(例如 main.js)中,将创建好的路由实例挂载到 Vue 实例上。示例代码如下: ```js import Vue from 'vue' import App from './App.vue' import router from './router' new Vue({ router, render: h => h(App) }).$mount('#app') ``` 在上面的代码中,首先引入了 Vue、App 组件和 router 实例。然后创建了一个 Vue 实例,将 router 实例作为 router 属性传入,最后将 App 组件渲染到 #app 元素上。 4. 使用路由链接 在组件中使用路由链接进行页面跳转。示例代码如下: ```html <template> <div> <router-link to="/left">左栏</router-link> <router-link to="/middle">中栏</router-link> <router-link to="/right">右栏</router-link> </div> </template> ``` 在上面的代码中,使用 router-link 组件创建了三个链接,分别对应三个路由路径。当用户点击链接时,路由会根据路径跳转到对应的组件。 以上就是挂载路由的基本步骤,可以根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值