• 图片和文字同行垂直居中、对齐问题


    1、图片和文字内容(不设置对齐方式)

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. margin: 50px auto;
    5. background: coral;
    6. }
    7. .wrap2 img {
    8. width: 100px;
    9. }
    10. style>
    11. <div class="wrap2">
    12. <img src="./cat.jpg" alt="" />
    13. <span>xibingspan>
    14. div>

    该情况下,内容和图片呈基线对齐——字母x的下边  

    文本内容增多后: 

     2、图片和文字内容(设置垂直居中对齐)父级高度不固定

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. margin: 50px auto;
    5. background: coral;
    6. }
    7. .wrap2 img {
    8. width: 100px;
    9. /*只给图片设置*/
    10. vertical-align: middle;
    11. }
    12. style>
    13. <div class="wrap2">
    14. <img src="./cat.jpg" alt="" />
    15. <span>xibingspan>
    16. div>

     文本内容增多后:


    让多行文本内容都呈现垂直居中,可以给文本设置【宽度+vertical-align:middle

    其中宽度+图片宽度<父级宽度即可(给span设置宽度避免不了给它设置转行内块

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. margin: 50px auto;
    5. background: coral;
    6. }
    7. .wrap2 img {
    8. width: 100px;
    9. vertical-align: middle;
    10. }
    11. .wrap2 span{
    12. display: inline-block;
    13. width: 380px;
    14. vertical-align: middle;
    15. border: 1px dashed #fff;
    16. }
    17. style>
    18. <div class="wrap2">
    19. <img src="./cat.jpg" alt="" />
    20. <span>xibing xibing xibing xibing xibing xibing xibing xibing xibingspan>
    21. div>

     这里还有个有趣的地方,现在咱们的词之间有距离,如果各个贴合就不会换行

     为了避免这种情况,我们可以加上【超出换行overflow-wrap: anywhere;

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. margin: 50px auto;
    5. background: coral;
    6. }
    7. .wrap2 img {
    8. width: 100px;
    9. vertical-align: middle;
    10. }
    11. .wrap2 span{
    12. display: inline-block;
    13. width: 380px;
    14. vertical-align: middle;
    15. border: 1px dashed #fff;
    16. overflow-wrap: anywhere;
    17. }
    18. style>
    19. <div class="wrap2">
    20. <img src="./cat.jpg" alt="" />
    21. <span>xibingxibingxibingxibingxibingxibingxibingxibingxibingspan>
    22. div>

    3、图片和文字内容(设置垂直居中对齐)父级高度固定

    可以设置父级:行高等于高来实现内部子元素垂直居中对齐

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. height:200px;
    5. /*行高等于高---让内部元素垂直居中*/
    6. line-height:200px;
    7. margin: 50px auto;
    8. background: coral;
    9. }
    10. .wrap2 img {
    11. width: 100px;
    12. vertical-align: middle;
    13. }
    14. .wrap2 span{
    15. display: inline-block;
    16. width: 380px;
    17. vertical-align: middle;
    18. border: 1px dashed #fff;
    19. overflow-wrap: anywhere;
    20. }
    21. style>
    22. <div class="wrap2">
    23. <img src="./cat.jpg" alt="" />
    24. <span>xibingspan>
    25. div>

    如果是单行文本,不会换行,则按照父级的行高会垂直方向居中对齐
    But,如果是多行文本,还想要垂直居中对齐,就得给再设置一下自己文本的行高,以覆盖继承的父级行高,实现自己管理管理自己行高

    1. .wrap2 span{
    2. display: inline-block;
    3. border: 1px dashed #fff;
    4. width: 380px;
    5. /*设置行高,以控制自己内部文本内容的行高*/
    6. line-height: 42px;
    7. overflow-wrap: anywhere;
    8. vertical-align: middle;
    9. }

     4、图片/文字和父级底部间隔问题

    看了几篇文章,解决方案是处理vertical-align或line-height

    处理vertical-align:

            内联元素的vertical-align默认是baseline,基线对齐;让vertical-align:baseline失效即可!

            方法1:将内联元素转换为块元素,vertical-align对块级元素不生效(display: block;)

            方法2:不使用默认的基线对齐方式(vertical-align: bottom/middle/top;)

     对于文字底部的距离可以处理line-height:

    将父级的line-height调小即可解决该问题

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. /*给父级把行高调小*/
    5. line-height:12px;
    6. margin: 50px auto;
    7. background: coral;
    8. }
    9. .wrap2 img {
    10. width: 100px;
    11. vertical-align: bottom;
    12. }
    13. .wrap2 span{
    14. display: inline-block;
    15. width: 380px;
    16. border: 1px dashed #fff;
    17. }
    18. style>
    19. <div class="wrap2">
    20. <img src="./cat.jpg" alt="" />
    21. <span>xibingxibingxibingxibingspan>
    22. div>

    我们还会注意到一个空隙——图片和文字之间的空隙:

    解决办法:

            方法一:让实际代码中的img标签和span标签紧贴;

    1. <div class="wrap2">
    2. <img src="./cat.jpg" alt="" /><span>xibingxibingxibingxibingspan>
    3. div>

            方法二:父级font-size:0

    1. <style>
    2. .wrap2 {
    3. width: 500px;
    4. /*给父级把行高调小*/
    5. line-height:12px;
    6. margin: 50px auto;
    7. background: coral;
    8. /*设置font-size:0来让空字符隐藏不占位*/
    9. font-size:0px;
    10. }
    11. .wrap2 img {
    12. width: 100px;
    13. vertical-align: bottom;
    14. }
    15. .wrap2 span{
    16. display: inline-block;
    17. width: 380px;
    18. border: 1px dashed #fff;
    19. /*避免继承父级font-size为0的影响,这里要给一个字体大小才能让文本显示*/
    20. font-size:16px;
    21. }
    22. style>
    23. <div class="wrap2">
    24. <img src="./cat.jpg" alt="" />
    25. <span>xibingxibingxibingxibingspan>
    26. div>

     

  • 相关阅读:
    Jmeter进阶使用指南-使用参数化
    【多媒体文件格式】AVI、WAV、RIFF
    短期风速预测|LSTM|ELM|批处理(matlab代码)
    ADC噪声全面分析 -03- 利用噪声分析进行实际设计
    Pytorch:一些常用代码
    【Java高级】一篇文章带你学会什么是注解
    48、线程
    STM32H7高性能MCU系列 STM32H7A3NGH6 32-bit RISC内核
    经典卷积神经网络 - VGG
    ad5665r STM32 GD32 IIC驱动设计
  • 原文地址:https://blog.csdn.net/qq_38800316/article/details/126906597