css布局1:左右宽度固定中间自适应html布局解决方案(同一侧宽度固定,另一侧自适应)

https://www.jb51.net/web/639884.html

本文介绍了详解左右宽度固定中间自适应html布局解决方案,分享给大家,具体如下:

a.使用浮动布局

html结构如下(为什么中间的网格宽度显示的和实际的不一样?怎么造成的;解决方法就是让中间的非浮动元素可以看到两边的浮动元素,例如为.center加overflow:hidden)

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<div class="box">

    <div class="left">left</div>

    <div class="right">right</div>

    <div class="center">center</div>

</div>  

//此处注意要先渲染左、右浮动的元素才到中间的元素。元素浮动后剩余兄弟块级元素会占满父元素的宽度

<style>

   .box{

        height:200px;

        width:800px;

    }   

    .left{

        float:left;

        width:300px;

    }

    .right{

        float:right;

        width:300px;

    }

</style>

b.使用固定定位

html结构如下

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<div class="box">

    <div class="left">left</div>

    <div class="right">right</div>

     <div class="center">center</div>

</div>

//和浮动布局同理,先渲染左右元素,使其定位在父元素的左右两端,剩余的中间元素占满父元素剩余宽度。

<style>

    .box{

        position: relative;

      }

      .left{

        position: absolute;

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

        position: absolute;

        right: 0;

      }

      .center{

        margin: 0 100px;

        background: red;

      }

</style>

c.表格布局

将父元素display:table,子元素display:table-cell,会将它变为行内块。

这种布局方式的优点是兼容性好。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

    .box{

        display: table;

        width: 100%;

      }

      .left{

        display: table-cell;

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

        display: table-cell;

      }

      .center{

        width: 100%;

        background: red;

      }

</style>

d.弹性布局

父元素display:flex子元素会全部并列在一排。

子元素中flex:n的宽度会将父元素的宽度/n

如flex:1,宽度就等于父元素高度。

弹性布局的缺点是兼容性不高,目前IE浏览器无法使用弹性布局

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

    .box{

        display: flex;

        width: 100%;

      }

      .left{

      

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

      }

      .center{

        flex:1;

      }

</style>

e.网格布局

父元素display:grid;

grid-templatecolumns:100px auto 100px;

依次为第一个子元素宽100px 第二个自适应 第三个100px;

网格布局的优点是极为简便,直接通过父元素样式决定,缺点是兼容性不高。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

  .box{

        display: grid;

        grid-template-columns: 100px auto 100px;

        width: 100%;

      }

</style>

原文地址:https://www.cnblogs.com/cui-ting/p/11072137.html

时间: 2024-09-30 06:54:53

css布局1:左右宽度固定中间自适应html布局解决方案(同一侧宽度固定,另一侧自适应)的相关文章

DIV+CSS布局-固定页面开度布局

DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能,最直接解释方法就是能实现表格布局的多列功能. Margin: Margin属性用于设置两个元素之间的距离. Padding: Padding属性用于设置一个元素的边框与其内容的距离. Clear: 使用Float属性设置一行有多个DIV后(多列),最好在下一行开始之

(转)一小时搞定DIV+CSS布局-固定页面开度布局

本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_2013929173533658 关于DIV+CSS布局中用到的CSS必备知识请看:http://www.kwstu.com/ArticleView/divcss_201442291125960 DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性

一小时搞定DIV+CSS布局-固定页面开度布局

DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能,最直接解释方法就是能实现表格布局的多列功能. Margin: Margin属性用于设置两个元素之间的距离. Padding: Padding属性用于设置一个元素的边框与其内容的距离. Clear: 使用Float属性设置一行有多个DIV后(多列),最好在下一行开始之

【CSS】一侧定宽,另一侧自适应的布局该如何去做

一侧定宽,一侧自适应的页面布局在现在用的很多,有哪些实现方式呢? 1,通过浮动和margin取正值来实现: 定宽的元素为#sidebar 自适应的元素为#content css代码如下: 给定宽的元素设置浮动 #sidebar{ float:left; width:200px;  height:600px; background-color:red; } 自适应的元素呢?来给他设置margin-left吧,取值比上面那个元素的宽度大一些就好 #content{ width:100%; //如果是

简单而兼容性好的Web自适应高度布局,纯CSS

纯CSS实现的自适应高度布局,中间内容不符自动滚动条.兼容IE9以上.chrome.FF.关键属性是box-sizing: border-box. 不废话,直接上代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> *{padding:0;margin:

html+css实现左侧定宽,右侧自适应的布局

实现一侧定宽,一侧自适应的布局的方法a .b a.利用左侧元素浮动,或者绝对定位的方式使其脱离常规文档流 1.方法一:利用float和margin来实现 css <style> .father{border:1px solid #444;overflow:hidden;} .father img{width:60px;height:64px;float:left} .father p{margin-left:70px;padding-right:20px;} </style> ht

web app 自适应 弹性布局之rem

关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/define-font-size-with-css3-rem 现在移动端 web app 的自适应布局的方案有 5种. 零. Flexbox 使用css3 flexbox 进行布局,对于富媒体和复杂排版的支持非常强大,未普及兼容性非常差,几乎没有在任何项目中得到应用. 一. 弹性布局 使用 em 或 rem

页面布局的几种方式(静态化布局,流式布局,自适应布局,响应式布局,弹性布局)

一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端. https://developers.google.com/search/mobile-sites/mobile-seo/respon

自适应XAML布局经验总结 (四)区域布局设计模式

本系列对实际项目中的XAML布局场景进行总结,给出了较优化的自适应布局解决方案,希望对大家有所帮助. 下面介绍区域布局设计模式. 7. 头尾模式 页面有时分为顶部栏,中间内容和底部栏三部分.这时可以使用Grid布局,分为3行,设置为Auto,*和Auto,分别放置顶部栏,中间内容和底部栏.顶部栏和底部栏由其中内容决定高度,中间内容充满剩余空间. <Window x:Class="BlendDemo.DP7" xmlns="http://schemas.microsoft