• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 解决img标签上下出现间隙的方法

解决img标签上下出现间隙的方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含img,标签,间隙等相关知识,匿名希望在学习及工作中可以帮助到您
这篇文章主要给大家介绍了解决img标签上下出现间隙的方法,因为最近在工作中遇到了这个问题,所以想着记录下来。方便自己或者有需要的朋友们参考借鉴,下面来一起看看吧。

我们在平常的开发过程中,经常需要使用多张图片,而使用多张图片的时候,我们一般会去使用一个列表来对我们的img 进行承装。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        img{
            height: 200px;
            margin: 0;
            padding: 0;
            border-bottom: 1px solid red;
        }
        ul{
            border: 1px solid blue;
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>
</head>
<body>

    <ul>
        <li>
            <img src="lipeng.png">
        </li>
    </ul>
</body>
</html>

但是这个时候我们发现了一个问题,为什么我的图片下面多出来一条线呀?

这是怎么回事呀?

我不是已经把 img 的外边距和内边距什么的全部清空了么?

实际上,这其实是inline元素搞的鬼。

任何不是块级元素的可见元素都是内联元素,其表现的特性是“行布局”形式。----《CSS权威指南》

什么意思?

意思就是,其实如图片文字等内联元素,它默认对齐方式都是和它的父级的 baseline 去进行对齐的,但是你对齐的是 baseline,撑开高度的却是元素整体的高度(bottom line),这样肯定就会造成一定的间隙,也就是我们上文出现的问题了。

那我们既然知道了这个问题出现的原因,那么解决起来也就简单多啦。

1.第一种解决方案

既然是 inline 元素才会发生这个问题,那我们自然可以简单粗暴的解决这个问题,那就是给我们的元素“变个性”,让它从 inline 变为 block 不就可以了么?


<style type="text/css">
        img{
            height: 200px;
            margin: 0;
            padding: 0;
            border-bottom: 1px solid red;

            display: block;
        }
        ul{
            border: 1px solid blue;
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>

2.第二种解决方案

这也太粗暴了,变了性别,回头还怎么愉快的玩耍呀,所以我们要尝试曲线救活,我们可以去修改一下它的垂直对齐方式呀,这样是不是就可以了呢?


   <style type="text/css">
        img{
            height: 200px;
            margin: 0;
            padding: 0;
            border-bottom: 1px solid red;

            vertical-align: middle;
        }
        ul{
            border: 1px solid blue;
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>

可以看出,这样也可以实现想要的效果。

原因在于,vertical-align 的默认属性就是 baseline ,我们只要设置了跟 baseline 不一样的属性,都可以避免这个问题。

3.第三种解决方案

但是修改了对齐方式,这样也有可能会造成问题呀,我们可不可以去让这个元素飘起来呢?既然你已经不在当前文档流中了,你布局的时候自然也就不会参照这个文字去进行对齐了呀。

我们可以去使用浮动。


<style type="text/css">
        img{
            height: 200px;
            margin: 0;
            padding: 0;
            border-bottom: 1px solid red;

            float: left;
        }
        ul li {
            overflow: hidden;
        }
        ul{
            border: 1px solid blue;
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>

这样也可以解决这个问题,但是请注意,“浮动虽好,可不要贪杯呦”。

你一定要能够正确的解决浮动所造成的影响,而且假如你原本就打算去做文字环绕效果,那么使用浮动一定是你的不二选择。

4.第四种解决方案

假如上面几种方案全都不能解决你的问题,那么只有祭出我的大杀器了。

你可以给你的父元素把文字大小设成0。


<style type="text/css">
        img{
            height: 200px;
            margin: 0;
            padding: 0;
            border-bottom: 1px solid red;
        }
        ul li {
            font-size: 0px;
        }
        ul{
            border: 1px solid blue;
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>

既然你是根据 文字的基线去对齐,我直接把文字给你设没了,这样你就没法定位了吧,但是这种做法,只推荐在你已经“急头白脸死活弄不出来”的时候才去使用的。

以上就是解决img标签上下出现间隙的方法的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • 图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
  • 解决img标签上下出现间隙的方法
  • spring mvc+localResizeIMG实现H5端图片压缩上传
  • 解决img标签上下出现间隙的方法
  • 使用spring mvc+localResizeIMG实现HTML5端图片压缩上传
  • imgplay-基于canvas的图片序列播放jQuery插件
  • 图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传 _html5教程技巧

相关文章

  • 2018-12-03HTML5的结构和语义(1):前言_html5教程技巧
  • 2018-12-03想从零开始学习 HTML5 和 CSS,请问有没有比较好的建议?比如学习什么语言,有没有好的书或者教程推荐等等?
  • 2018-12-03有关射击的文章推荐10篇
  • 2018-12-03H5怎么操作本地存储和本地数据库
  • 2018-12-03Html5 Canvas初探学习笔记(15) -鼠标事件
  • 2018-12-03相同码率下,Ogg、MPEG 4、WebM这三种视频格式,哪种清晰度更高,为什么?
  • 2018-12-03html5中的Canvas 和 SVG分别是什么?它们的区别在何处?(实例)
  • 2018-12-03angularjs的内存溢出怎么处理
  • 2017-08-06仿酷狗html5手机音乐播放器主要部分代码
  • 2017-08-06HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 分享一个用h5制作的网页版扫雷游戏实例代码
    • HTML5 input新增type属性color颜色拾取器的实例代码
    • HTML5画渐变背景图片并自动下载实现步骤_html5教程技巧
    • 你必须知道的28个HTML5特征、窍门和技术
    • 如何使用HTML5 Canvas绘制动态线性渐变
    • H5添加语音输入功能
    • html5 canvas fillRect坐标和大小的问题解决方法
    • 简单的HTML5 Web Storage留言册
    • 炫丽的倒计时效果Canvas绘图与动画视频的资源推荐
    • 使用 HTML5 Canvas 制作水波纹效果点击图片就会触发_html5教程技巧

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有