关于居中、子元素撑开父元素

灰太狼 2021-07-25 01:26 642阅读 0赞

1、实现父div宽高由内部元素撑开:

  1. div添加属性:overflow:hidden;
  2. 子元素定位时,无法撑开父元素,因为此时子元素已脱离文本流

2、解决子元素定位,父元素高度撑不开的问题

  1. 将父元素也设置成position:absolute;,假如子元素为position:absolute;

3、水平居中方法(单个居中同理):

  1. 方式一:定位+transform
  2. position:absolute;
  3. left:50%;
  4. top:50%;
  5. transform:translate(-50%,-50%); 移动元素自身高宽的一半,因为定位时元素有自身高宽
  6. 方式二:通过定位设置left:50%,再margin-left:-宽度的一半
  7. width:248px;
  8. position: absolute;
  9. left:50%;
  10. margin-left:-124px;
  11. 方式三:
  12. text-align:center;适用于子元素行内元素,或者转换为display:inline-block的元素
  13. 方式四:使用伪类,当使用line-height有误差时(即设置了font-size)
  14. .jf-badge-news::after {
  15. content: " ";
  16. display: inline-block;
  17. width: 0;
  18. height: 100%;
  19. vertical-align: middle;
  20. /* margin-top: 1px; */
  21. }

4、垂直居中

  1. 方式一:垂直居中vertica-align:middle,适用于子元素为行内元素,在父元素加上font-size:0pxline-height:..;实现精准居中,否则会有偏差
  2. 非图片在父元素上设置vertical-align:center;
  3. 图片在自身上设置vertical-align:center;
  4. 方式二:利用行内元素基准线
  5. 将要居中的图片后添加文字,父元素设置行高和父元素高相同,再设置font-size0px,即可实现图片的垂直居中
  6. 方式三:
  7. 使用margin计算盒子的上下边距,使其垂直居中
  8. 方式四:
  9. 将盒子转换成displaytable-cell,再vertical-alignmiddle;使盒子垂直居中

5、垂直水平居中

  1. 方式一:弹性盒子
  2. 方式二:定位+margin/transform移动自身高宽50%
  3. 方式三:vertical-aligh+table-cell+margin
  4. .f{ div
  5. width: 400px;
  6. height: 400px;
  7. background-color: red;
  8. display: table-cell;
  9. vertical-align: middle;
  10. text-align: middle;
  11. }
  12. .c{ div
  13. width: 100px;
  14. height: 100px;
  15. background-color: orange;
  16. margin:auto;
  17. }
  18. 方式四:定位+margin
  19. .f{
  20. width: 400px;
  21. height: 400px;
  22. background-color: red;
  23. position: relative;
  24. }
  25. .c{
  26. position: absolute;
  27. left: 0;
  28. right: 0;
  29. top: 0;
  30. bottom: 0;
  31. width: 100px;
  32. height: 100px;
  33. background-color: orange;
  34. margin:auto;
  35. }

发表评论

表情:
评论列表 (有 0 条评论,642人围观)

还没有评论,来说两句吧...

相关阅读