美文网首页
使用padding的左定宽、右自适应布局

使用padding的左定宽、右自适应布局

作者: 淡淡紫色 | 来源:发表于2018-10-12 14:25 被阅读0次

①情景:

有一父容器div,其高和宽不定,称之为P;

该父容器有两个子div,左右布局,左定宽,满高,右自适应剩余区域;

其中,定宽称之为A,变宽称之为B;

A和B是等高的;

P必然能容纳A和B

可能的附加条件:

【1】A和B的宽高度可能不会撑满P,即上下左右都可能留有空隙,但这些空隙的宽或者高是已知的;

【2】A和B之间可能有一定间隙;

备注:

【1】左自适应右定宽方法同理;

【2】上下布局同理;

②方法:

原理:利用P的padding属性和A的margin属性来布局;

【1】由于P宽高不定,因此可以忽视对P的宽高设置;

【2】假设A的宽度为100px;A距离左侧10px,距离B有10px。因此,B的左侧实际有120px宽度;先设置P的css属性如下设置:

.P {
       padding-left: 120px;
       width: 略;
       height: 略;
}

【3】设置A的CSS属性,如果要加border属性,那么需要注意A和B的box-sizing要设置为border-box

.A{
       margin-left: -110px;
       width: 100px;
       box-sizing: borer-box;
       float:left;
}

Note:

《1》如果有border属性,那么content区域要对应减少border的宽度(并且如果两侧都有,那么是双倍的宽度);

《2》必须添加float属性,以使其脱离文档流;假如抛弃float属性,而采用display:inline-block属性的话,会导致右侧的B会靠近A,而不是在我们预想的区域之中。

【4】设置B的CSS属性,没有什么特殊的,只需要设置宽高为100%即可;

.B{
       width: 100%;
       height: 100%;
       box-sizing: border-box;
}

③如此,便能实现左定宽,右变宽的布局了;并且由于没有使用CSS3属性,并且margin的范围没有超出P的盒模型,因此相对兼容性也很好。

④可能存在的问题:

【1】由于使用了float属性,也许在某些版本的浏览器中可能出现问题(真有这种可能?);

解决办法:

取消A的float属性,用以下CSS替代:

display: inline-block;         ——A和B都设置
vertical-align: top;            ——A和B都设置
margin-right: 若干px;     ——A设置,注意:这行的值可能并非10px,也许只有5px

【2】A的内部文字,在右侧可能溢出的问题:

解决办法:对A设置padding-right属性

相关文章

  • CSS布局

    一列布局 一列水平居中 一列垂直居中 两列布局 左定宽右自适应 左自适应右定宽 三列布局 左右定宽中间自适应 左右...

  • 2018-03-19 css 实现左列定宽,右列自适应宽度,等高

    上次面试提到了一个css布局:实现左列定宽,右列自适应宽度,等高布局上次没有答出来,只实现了左列定宽,右列自适应宽...

  • 使用padding的左定宽、右自适应布局

    ①情景: 有一父容器div,其高和宽不定,称之为P; 该父容器有两个子div,左右布局,左定宽,满高,右自适应剩余...

  • 常见定宽不定宽布局

    左列定宽,右列自适应 该布局方式非常常见,适用于定宽的一侧常为导航,自适应的一侧为内容的布局 1、利用float+...

  • css小技巧

    一、左右布局 可以用float标签实现,左侧定宽,右侧自适应。 二、左中右布局 可以用浮动float布局实现。 三...

  • css常见布局面试题集

    1.左列定宽,右列自适应 浮动: 绝对定位 flex 2.两侧定宽,中栏自适应 flex 3.右侧定宽,左侧自适应...

  • CSS基础布局

    左右布局(高度自适应) 1.左边定宽,右边自适应,或者右边定宽,左边自适应,(高度自适应) 使用 float 完成...

  • 左定宽右自适应

    flex布局 BFC模式 padding-left margin-left table布局 calc() 左右定宽...

  • 2019-05-09 CSS布局相关

    一,两列布局 1,自适应的两列布局: 两列布局可以使用浮动来完成,左列设置左浮动,右列设置右浮动,这样就不需...

  • 右列定宽,左列自适应

    右列定宽,左列自适应 实用float+margin实现 .parent{background:red;height...

网友评论

      本文标题:使用padding的左定宽、右自适应布局

      本文链接:https://www.haomeiwen.com/subject/rmqgaftx.html