其他分享
首页 > 其他分享> > 【CSS基础】记录一些个人遇到的关于排布的问题

【CSS基础】记录一些个人遇到的关于排布的问题

作者:互联网

文章目录

前言

本人css小菜鸟一枚~,对于css学习的个人理解分为四个阶段:

  1. 学会使用并实现设计要求的布局;
  2. 将代码规范化,简洁化,条理化;
  3. 实现更高级别,追求美感的效果;
  4. 高级动画库,UI库的制作;

目前小菜鸟属于第一阶段中哈哈。

不说了,开始记录个人遇到的一些排布问题。


横向排布会有空白文本节点占位5px的问题

  1. 使用浮动;
  2. 父级设置font-size: 0;
  3. 使用position定位;
  4. 相关子级margin为-5px;
  5. 父级设置letter-spacing: -5px;
  6. 标签不要换行;

纵向上没有这个问题。


纵向排布margin塌陷

上下盒子外边距以最大值排布,值一样的话,只也只取一边值;

  1. 只设置一个margin,推荐使用;
  2. 给父级启用BFC;

注意了:加边框是解决不了这个问题的。


子级margin-top溢出父级外

  1. 需要父级有顶边框才能生效,可以来个透明的边框 border:1px solid transparent; 推荐使用;
  2. 可以用绝对定位解决;
  3. 父级启用BFC;
  4. 父级用padding;

会影响排布的继承属性

我懒就不记录了,直接看其他博主的文章


三个隐藏的布局区别


不同大小的子元素在父元素内统一布局

不同大小的行内化子元素排布默认以底排布,解决办法有:

  1. 使用浮动;
  2. position定位;
  3. 使用vertical-align;

浮动带来的特性

  1. 给一个元素浮动,如果后面是行内化元素,则浮动仍会占据空间,后面的元素还是乖乖的跟在后面。如果后面是块级元素,则浮动元素直接脱离普通流;
  2. 会使行内元素的宽高可设置;
  3. 会使块级元素的宽不是默认100%,由内容撑大;

设置position:absolute带来的特性

  1. 会使行内元素的宽高可设置;
  2. 会使块级元素的宽不是默认100%,由内容撑大;
  3. 宽高变化不会影响周围的布局,比如需要一些遮盖别的元素的动画,就需要用这个来定位;

盒子在不同分辨率的屏幕中居中

水平竖直居中:

  1. 用绝对定位左上各50%,margin左上各负自身宽高的一半;
  2. 用绝对定位左上各50%,transform: translate(-50%,-50%);
  3. 绝对定位上下左右为0,margin: auto;
  4. 用flex布局,把主轴和侧轴的值都为center;

水平居中:
5. 转成块级,左右margin分别设置为auto;
6. margin-left:auto; margin-right: auto;

竖直居中:
7. 把父级内的子元素都转成行内元素,给每个子元素加vertical-align:middle,不同大小的都会居中;
8. 把父级内的子元素的line-height设置的和最大的子元素的高一样的;


元素左右布局

  1. 左右浮动
  2. 第一个左浮动,另一个文字右对齐
  3. flex布局

如果图片大小固定了,和其他盒子有孔隙

给自己加一个父级盒子,把自己的class类名也加到父级盒子上;


标准盒模型排布问题

尽量上下用margin,左右用padding,设置宽高的时候注意设置的是content部分;

未来不定期补充~

标签:浮动,布局,父级,记录,元素,排布,margin,CSS
来源: https://blog.csdn.net/pagnzong/article/details/114435971