任务三——左右定宽,中间一栏根据父元素宽度填充满

    还有一个要求是“中间一栏长度改变时,父元素的高度始终为子元素中最高的高度”,这个之后总结,先分析布局。

    看到这个任务,首先想到的就是双飞翼布局,之后有看其他人的代码,总结了一下:

    一、position方式:

      左、中、右顺序可以任意调整。左右设置绝对定位脱离文档流,再通过left、right、top 等属性进行定位,中间嵌套一个div,设置左右外

    边距分别为左右部分的宽度,使得中间部分的内容不会被左右遮盖。

<style>
        *{
            margin:0;
            padding:0;
        }
        .left,.right{
            position:absolute;        /*左右绝对定位、定高宽*/
            height:200px;
            width:200px;
        }
        .left{
            background-color: red;
            left:0;
        }
        .center{
            min-height:200px;
            background-color: yellow;
        }
        .content{
            margin:0 200px;           /*避免中间内容被遮盖*/
        }
        .right{
            right:0;
            top:0;
            background-color: blue;
        }
</style>
<body>
    <div class="left"></div>
    <div class="center">
       <div class="content"></div>
    </div>
    <div class="right"></div>
</body>

    二、float方式:

      左、右分别浮动到左右,中间部分设置相应的左右外边距;

      建议按照左、右、中顺序,因为只有左右设置的是浮动,如果把中放在右前面,就会先渲染中间部分,由于中间盒子div会占满一行,就会

    导致浮动元素的位置不够,右边的盒子就会被挤到下一行;也可以按照左、中、右的顺序,可以把左中外面再套一层div,设置float:left;

    width:100%;margin-right:-200px;(右边盒子的宽度),这样右边的盒子不会被挤下去,而且可以先渲染中间的内容,具体情

    况再选择吧。

<style>
        *{
            margin:0;
            padding:0;
        }
        .left,.right{
            height:200px;
            width:200px;
        }
        .left{
            background-color: red;
            float:left;
        }
        .center{
            min-height:200px;
            margin:0 200px;
            background-color: yellow;
        }
        .right{
            float:right;
            background-color: blue;
        }
</style>
<body>
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
</body>

    三、负外边距方式:

      (1)双飞翼布局:

        按照中、左、右的顺序,三部分都左浮动,中间的宽度为100%,左右分别设置相应的负外边距(左:margin-left:-100%

      右:margin-left:-200px;),中间嵌套一个div,设置左右外边距避免内容被遮盖。

      (2)圣杯布局:

        和双飞翼在布局上大致相同,都是左浮动、中间宽度为100%,左右设置相应负外边距,但由于中间的内容会被左、右两部分覆盖,

      所以两种布局的不同点在于解决这个问题的方法不同。

        圣杯布局先为中间部分设置内边距,左、右内边距分别为左右盒子的宽度,把内容拉回到中间最终需要自适应的部分,由于设置的

      是内边距,左右两部分也会跟着过来,再通过相对定位使左边盒子相对向左偏移,使右边盒子相对向右偏移,这样左右两部分就不会遮

      挡住中间的内容了。

      (3)其他布局:

        上面两种都是按照中、左、右的顺序,其实左、中、右或者左、右、中顺序都可以,只要中间宽度为100%,再设置浮动以及相应

      的负外边距。

        注意:中间部分内容遮盖问题以及左右盒子有可能会被中间遮盖,只要设置被遮住部分的position:relative和z-index:999,让它

      保持在最前即可。

      如何选择布局方式?主要内容放在前面先渲染。

时间: 2024-12-08 03:23:28

任务三——左右定宽,中间一栏根据父元素宽度填充满的相关文章

css高度已知,左右定宽,中间自适应三栏布局

css高度已知,左右定宽,中间自适应三栏布局: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X

CSS实现经典三栏布局(两侧定宽,中间自适应)

近期开始独立攻克百度前端技术学院的各项任务,之前做了两个比较复杂的页面,深深感觉基础不好,好多css的语句都是为了实现效果而去写的,出现了好多问题,而自己的解决方案也不够优,于是决定从基础开始学起,循序渐进. 第一个任务是实现一个三栏布局,外部的两栏固定宽度,中间自适应,以下是效果图: 我使用了两种方法实现以上效果:float和position 以下是float方法的CSS代码: 1 .team-inf{ 2 float: left; 3 width: 200px; 4 } 5 .logo-gr

CSS基础布局--居中对齐,左侧定宽右侧自适应

CSS页面布局是web前端开发的最基本的技能,本文将介绍一些常见的布局方法,涉及到盒子布局,column布局,flex布局等内容.本文中,你可以看到一些水平垂直居中的方法,左侧固定宽度,右侧自适应的一些方法.如果你有更多关于布局方面的技巧,欢迎留言交流. 一.神奇的居中 经常看到有一些面试题问如何实现水平垂直居中,还要求用多种方法.唉唉唉!下面介绍一下我所知道的实现居中的方法. (1)父元素relative;子元素absolute,top:50%;left:50%;margin-left:-自己

多列布局之一列、多列定宽及一列自适应布局

命题: <div class="parent"> <div class="left"> <p>left</p> </div> <div class="right"> <p>right</p> <p>right</p> </div> </div> 问题一:一列定宽及一列自适应 方案1: .left{ flo

NEC学习 ---- 布局 -两列, 左侧定宽,右侧自适应

CSS代码:以下两处代码是NEC中CSS初始化样式和功能性样式.今后的NEC研究中,默认这两处是引用的. /* 这是CSS reset 代码 --- 初始化样式 */ /* reset */ html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,caption,th,td,form,fieldset,legend,input,button,textarea,menu{margin:0;

布局-三列布局(定宽+自适应+定宽)

两侧定宽中间自适应 方案一:float+margin+(fix) 结构: 1 <div class="parent"> 2 <div class="left"><p>left</p></div> 3 <div class="center-fix"> 4 <div class="center"> 5 <p>center</p&g

uniVocity-parsers:一款强大的CSV/TSV/定宽文本文件解析库(Java)

uniVocity-parsers 是一个开源的Java项目. 针对CSV/TSV/定宽文本文件的解析,它以简洁的API开发接口提供了丰富而强大的功能.后面会做进一步介绍. 和其他解析库有所不同,uniVocity-parsers以高性能.可扩展为出发点,设计了一套自有架构.基于这套架构,开发者可以构建出新的文件解析器. 1. 概述 作为一名Java开发者,我目前正在参与开发一个Web项目,该项目帮助通信运营商评估当前的网络,并给出解决方案. 在该项目中,CSV文件扮演着至关重要的角色,它是运营

两列布局中单列定宽单列自适应布局的5种思路

× 目录 [1]float [2]inline-block [3]table[4]absolute[5]flex 前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute和flex这五种思路来详细说明如何巧妙地实现布局 思路一: float 说起两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动.如果各浮动元素的高度不同时,可能会出犬牙交错

中间定宽,两边自适应布局的三种实现方法

中间定宽,两边自适应布局的三种实现方法 1. 浮动加定位 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>中间定宽,两边自适应</title> <style type="text/css"> html,body,div{ height: 100%; } .parent{ p