子元素宽度设置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

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对