子元素宽度设置50%无法并排显示的问题

2024-03-23 09:08

本文主要是介绍子元素宽度设置50%无法并排显示的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Write By Monkeyfly

以下内容均为原创,如需转载请注明出处。

前提

  • 需求需要实现的效果图如下所示。
    这里写图片描述

  • 但为了让两个设置了display:inline-block;div并排显示时,却出现了换行的问题。(如下图所示)
    这里写图片描述

解决方法

方法1. width:49%;(虽然解决了布局的问题, 但是还是不明白为什么了宽度设置了50%会失效。)

为了找到原因,专门去百度寻找了一番,最终得到的答案就是:HTML的标签之间是会存在间距的。

对于这个间距而言,就涉及到了HTML的另一个知识点:空白折叠现象。

问:何谓空白折叠现象
答:HTML 代码中所有连续的空格换行tab(制表符)都会被算作一个空格显示在页面上。

注:
(1)在平时的开发中,我们为了提高代码的整洁性和可读性,经常会用换行和缩进调整HTML代码的结构,使其看起来美观简洁,可读性比较强。但殊不知,这样做还会带来一系列的问题。
(2)而且我们也知道,如果要实现连续的空格,是不能在HTML的标签中使用连续的空格来表示的,即<span>登空格空格空格录<span>因为即使你输入再多的空格,浏览器也只会将它解析为一个空格。所以,我们都会使用表示空格的字符实体&nbsp;来实现,即<span>登&nbsp;&nbsp;&nbsp;录<span>

【不懂的戳这里】什么是空白折叠现象?为什么要空白折叠呢?

现在,我们明白了,导致标签之间存在间距的原因有:代码换行、tab(制表符)、空格

问:那么,如何去掉html标签之间的间距的?

答:标签产生间距的解决方案如下

  • 元素写成一行;【不推荐使用该方法】当代码较多时,比如说ul>li的布局,代码可读性和可维护性较差
//原始
<div class="father"><div class="son son1">我是div1</div>//此处的换行,在页面上显示时就是一个空格。<div class="son son2">我是div2</div>//因为有默认的字体大小,所以div之间会存在间距
</div>
//改变后:
<div class="father"> //当我们想让它们在同一行连续显示时,就让所有的代码之间没有空格,也不要换行。<div class="son son1">我是div1</div><div class="son son2">我是div2</div>
</div>
  • 给父元素设置font-size:0。【推荐使用】方便快捷

原理:多出来的其实是换行符,所以将字体设置为0,那么换行符就是0px不会显示了。但是如果将HTML标签写成一行的话,就没有换行符了。

注意:因为子元素会继承父元素的字体大小,所以此处需要给子元素单独设置font-size属性,否则文字显示不出来。

参考资料:

  • html的空格和换行显示 - 2350305682 - 博客园
  • font-size:0的作用
  • 如何去掉html标签之间的间距
  • font-size: 0;解决inline元素间的空白间隙

案例演示

源代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>50%平分宽度的问题</title><style>div{padding:0;margin:0;}.father{width: 200px;height: 100px;border:1px solid #666;font-size:0;}.son{width: 50%;height: 100%;display: inline-block;color:#fff;font-size: 16px;}.son1{background-color: #666;}.son2{background-color: #0dcee7;}</style>
</head>
<body><div class="father"><div class="son son1">我是div1</div><div class="son son2">我是div2</div></div>
</body>
</html>

效果展示

谷歌浏览器显示效果如下所示:
这里写图片描述

搜狗浏览器显示效果如下所示:
这里写图片描述

火狐浏览器显示效果如下所示:
这里写图片描述

说明:不同的浏览器厂商在效果显示上会存在差异。边框处留白的具体原因暂且未知。

这篇关于子元素宽度设置50%无法并排显示的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837830

相关文章

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三