zoukankan      html  css  js  c++  java
  • img底边空隙问题原因和解决方案(修改)

     

    转载自:http://www.cnblogs.com/minelucky/p/4746071.html
     
    练习切图时发现img和父级div之间总是有2px空隙(chrome),上网搜索解决。
     

    图片IMG与容器下边界之间有空隙怎么办?这里介绍3种简单的解决方法。

    第一,给图片img标签display:block。

    1
    img{display:block}

    第二,定义容器里的字体大小为0。

    div{
      110px;
      border:1px solid #000000;
      font-size:0px;
    }

    第三,定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top

    1
    img{vertical-align:bottom}

     

    其他还有把图片下边距设为负值和改写HTML标签的排列。我觉得前三种就完全可以解决了。

    造成图片在IE下与容器下 边界有空隙的原因在网上搜了一下,发现old9说的图片文字等inline元素默认是和父级元素的baseline对齐的,而baseline又和父级底 边有一定距离(这个距离和 font-size,font-family 相关,不一定是 5px),所以设置 vertical-align:top/bottom/text-top/text-bottom 都可以避免这种情况出现。而且不光li,其他的block元素中包含img也会有这个现象。

    至于HTML属性align="center"(对于图片浏览器会处理成align="middle"),就相当于vertical-align:middle; 所以道理也是一样的,只要vertical-align不取baseline,这个空隙就消失了。

    修改(更新)部分: 

    造成的原因:

    1.怎么出现

      在HTML5文档声明下,块状元素内部的内联元素的行为表现,就好像块状元素内部还有一个(更有可能两个-前后)看不见摸不着没有宽度没有实体的空白节点

    <div><img src = '1.jpg'/></div>

    2.图片下有空隙的深入原因

    • —vertical-align默认的对齐方式是baseline.(x字母的下边缘是基线)所以对齐的是x的下边而不是所有文字的最下边
    • —文字的高度,文字的高度由line-height决定(line-height多数浏览器[Georgia字体下]默认为font-size的1.14倍,如果未设定font-size,那既是基准值16px的1.14倍).所以空白节点有了line-height.

    针对这些原因提出解决方案:

    1.既然是块状元素的内联元素才这样,就对元素img 显示为块状元素img{display:block}

    2.既然img的对齐方式是默认的baseline,解决方案是改为img{vertival-align:bottom}

    3.因为后面的空白节点有line-height(line-height与font-size有关);解决方案是div{font-size:0}或者是div{line-height:0},若有其他文字时,这个方法不能显示字体.

    个人觉得对img处理的解决方案更好,不会影响到其他元素.既1.2种解决方案

    在程序媛的路上,越走越用劲儿:)
  • 相关阅读:
    Flutter form 的表单 input
    FloatingActionButton 实现类似 闲鱼 App 底部导航凸起按钮
    Flutter 中的常见的按钮组件 以及自 定义按钮组件
    Drawer 侧边栏、以及侧边栏内 容布局
    AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换 通过TabController 定义TabBar
    清空路由 路由替换 返回到根路由
    应对ubuntu linux图形界面卡住的方法
    [转] 一块赚零花钱
    [转]在树莓派上搭建LAMP服务
    ssh保持连接
  • 原文地址:https://www.cnblogs.com/AliceX-J/p/4900489.html
Copyright © 2011-2022 走看看