HTMLCSS常见问题解决

news2024/11/15 3:49:05

文章目录

    • 一、解决img图片底部空白问题
      • 1、出现问题的效果
      • 2、原理
      • 3、解决方式
        • 3.1、将图片变为盒子
        • 3.2、处理基线
        • 3.3、把上级元素的字体大小改成0像素
    • 二、解决给子元素设置margin-top父子盒子都向下移动问题
      • 1、出现问题的效果
      • 2、原理
      • 3、解决方式
        • 3.1、给父元素设置边框
        • 3.2、给父元素设置overflow属性
        • + overflow:hidden的特点
        • 3.3、给父元素设置padding-top属性
    • 三、解决padding把盒子撑大问题
      • 1、出现问题的效果
      • 2、原理
        • 2.1、标准盒子模型(W3c标准盒子模型)
        • 2.2、怪异盒子模型(IE标准盒子模型)
      • 3、更改盒子类型

一、解决img图片底部空白问题

1、出现问题的效果

在写网页的时候,在div中插入一张img图片,发现与下面有背景的div之间有白色空隙,虽然可以把下面div向上移动直到空隙消失,但这并不是最好的解决方式,所以来探索其中真正的原因。
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style type="text/css">
		.top{
			width: 250px;
			margin: 0 auto;
		}
		.top img{
			width: 250px;
			height: 150px;
		}
		.middle{
			width: 250px;
			height: 100px;
			margin: 0 auto;
			background-color:#00FFFF;
		}
	</style>
	<body>
		<div class="top">
				<img src="640.jpg" >
		</div>
		<div class="middle">
			
		</div>
	</body>
</html>

2、原理

img标签的display属性的默认值是inline

img没有基线(baseline),这意味着,当在一个行内格式的上下文中使用vertical-align: baseline时,图像的底部将会与容器的文字基线对齐。这就造成了空隙的问题

什么是基线?在字体设计时,有top,text top(顶线),super(上基线),baseline(基线),sup(下基线),text bottom(底线),bottom这几条线组成

在这里插入图片描述

3、解决方式

3.1、将图片变为盒子

在这里插入图片描述

	img{
		display: block;
	}

不单单是img元素,凡是行内元素都具有这样的特性,在HTML代码格式化后,行内元素之间的换行,空格等都会被浏览器解析成一个空格,就出现了空隙

3.2、处理基线

	img{
		vertical-align: middle;
	}

3.3、把上级元素的字体大小改成0像素

	body{
		font-size: 0;
	}

出现留白的原因是因为垂直对齐的方式所导致的,所以可以修改父元素的font-size,把父元素的字体大小改为0,所以就没什么垂直对齐,但是会影响该标签内的元素,不建议使用

二、解决给子元素设置margin-top父子盒子都向下移动问题

1、出现问题的效果

给子元素设置了margin-top:20px;结果父元素也跟着一起向下移动了20px
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style type="text/css">
		.top{
			width: 250px;
			margin: 0 auto;
		}
		.top img{
			width: 250px;
			height: 150px;
			display: block;
		}
		.middle{
			width: 250px;
			height: 100px;
			margin: 0 auto;
			background-color:#00FFFF;
		}
		.center{
			width: 200px;
			height: 30px;
			background-color: bisque;
			margin-top: 20px;
		}
	</style>
	<body>
		<div class="top">
				<img src="640.jpg" >
		</div>
		<div class="middle">
			<div class="center">
				<span>我是子元素</span>
			</div>
		</div>
	</body>
</html>

2、原理

标准文档流内块级元素的top与bottom外边距有时会合并(塌陷)为单个外边距(合并后最大的外边距),这样的现象称之为外边距塌陷(margin collapsing)

造成这个现象的原因是:
1.当一个元素包含另一个元素时(父元素没有边框),它们的顶和/或底边界会发生叠加。
2.只有标准文档流中块级元素垂直边界才会发生边界叠加(塌陷)。行内元素、浮动元素或绝对定位元素之间的边界不会叠加。

3、解决方式

3.1、给父元素设置边框

		border: 1px solid black;

给父元素设置边框后,边界就不贴合了
在这里插入图片描述

3.2、给父元素设置overflow属性

		overflow: hidden;

在这里插入图片描述

+ overflow:hidden的特点

overflow:hidden 超出该元素部分隐藏

了解BCF机制,BFC(Block Formatting Context)全称是块级格式化上下文,用于对块级元素排版,如果一个块级元素设置overflow:hidden,就会为这个块级元素生产一个独立的块级上下文,使这个块级元素内部的排版完全独立。

如果相邻元素中至少有一个元素位于不同的 BFC 中,那么它们的外边距就不会发生重叠

应用:

  1. overflow:hidden超出部分隐藏,一般情况下,在页面中,一般溢出后会显示省略号
  2. overflow:hidden 清除浮动:一般而言,父级元素不设置高度时,高度由随内容增加自适应高度
  3. overflow:hidden 解决外边距塌陷:父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷。

3.3、给父元素设置padding-top属性

		padding-top: 10px;

在这里插入图片描述

三、解决padding把盒子撑大问题

1、出现问题的效果

给蓝盒子设置padding:10px后我们所想的粉盒子居中显示,结果父盒子也随之改变
在这里插入图片描述

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style type="text/css">
		.father{
			width: 220px;
			height: 220px;
			background-color: #00FFFF;
			padding: 10px;
		}
		.son{
			width: 200px;
			height: 200px;
			background-color: #FFC0CB;
		}
	</style>
	<body>
		<div class="father">
			<div class="son">
				
			</div>
		</div>
	</body>
</html>

2、原理

这里我们需要了解两种盒子模型

2.1、标准盒子模型(W3c标准盒子模型)

在标准模型中,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)

box-sizing属性默认为content-box,所以我们常见的都为标准盒子

		box-sizing: content-box;

在这里插入图片描述
上面案例中父盒子width=220px,padding=20px,border=0px,margin=0px
所以父盒子的总宽度为240px

2.2、怪异盒子模型(IE标准盒子模型)

在怪异模型中,一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值)

给父元素添加box-sizing:border-box,变为怪异盒子,就可以实现内缩的效果

		box-sizing: border-box;

在这里插入图片描述
父盒子width=220px,padding=20px,border=0px,margin=0px,因为with已经包含了padding的值,所以父盒子总宽度为220px

3、更改盒子类型

将标准盒子模型更改为怪异盒子模型即可
在父盒子中添加属性

		box-sizing: border-box;

粉盒子成功居中显示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员多赚20k的接私活必备网站

为什么都是程序员&#xff0c;就有人能多赚20k&#xff1f;那是因为副业搞得那么溜啊&#xff01; 今天分享一些程序员搞钱必备的接私活网站&#xff0c;让更多程序员们在工作之余能有另外一份收入。 1.程序员客栈&#xff1a;http://proginn.com 专为程序员服务的软件外包对…

跨境电商代购系统演示说明

首先来看什么是淘宝代购淘宝代购是近年兴起的一种购物模式&#xff0c;是帮国外客户购买中国商品。主要是通过万邦 科技的外贸代购系统&#xff0c;把淘宝、天猫等电商平台的全站商品通过API 接入到你的网站 上&#xff0c;瞬间就可以架设一个有数亿产品的大型网上商城&#xf…

FATE联邦学习centos成功部署

官方文档&#xff1a;https://fate.readthedocs.io/en/latest/deploy/standalone-deploy/#1-description。 我用的文档中的Standalone的第二种安装方式&#xff0c;没用docker。 安装过程 文档上写着确定版本 export version1.7.0但是你别真的用1.7.0啊&#xff01; &#…

ATS认证教学

我用的版本是ATS7.11、系统版本是用最新的ios13.2.1 定义 ATS旨在分析通过UART、USB和蓝牙传输传输的iAP流量、通过USB和无线&#xff08;蓝牙和Wi-Fi&#xff09;传输的CarPlay流量、通过Wi-Fi传输的AirPlay 2流量以及闪电音频流量。 ATS是Apple’s Accessory Test System的…

Cookie、Session、JWT 那些事

文章目录前言一、概念1、Cookie&#xff1a;2、Session&#xff1a;3、JWT二、应用1. 基本使用2. 实现 “退出” 功能总结前言 目前 C/S 模式盛行&#xff0c;HTTP 是其中最常见的通信协议&#xff0c;我们知道 HTTP 协议是无状态的&#xff0c;但是这场景完全不够用。 比如&…

让物流园区可视可控,顺丰供应链与亚马逊云科技的供应链新解法

导读&#xff1a;物流园区如何破解供应链断点&#xff1f;在物流园区附近&#xff0c;我们经常看到周边道路停满了集装箱卡车。这是物流园区的一个典型痛点&#xff0c;由于园区内部业务情况的不可见性&#xff0c;司机们往往到了园区才被告知业务繁忙&#xff0c;需要长时间排…

字符串反转-课后程序(JAVA基础案例教程-黑马程序员编著-第九章-课后作业)

【案例9-2】 字符串反转 【案例介绍】 1.案例描述 在使用软件或浏览网页时&#xff0c;总会查询一些数据&#xff0c;查询数据的过程其实就是客户端与服务器交互的过程。用户&#xff08;客户端&#xff09;将查询信息发送给服务器&#xff0c;服务器接收到查询消息后进行处…

中国版ChatGPT高潮即将到来,解密ChatGPT底层网络架构

2022年11月30日人工智能研究实验室OpenAI发布全新聊天机器人ChatGPT&#xff0c;在中国用户无法访问的前提下&#xff0c;上线仅两个月月活用户就突破了1亿。ChatGPT如同重磅炸弹&#xff0c;一时间火遍全球。面对这一万亿级市场机遇&#xff0c;在国内&#xff0c;无论是资本方…

2.28性能测试概念

一.自动化测试的亮点1)使用注解:避免生成过多对象,造成资源和时间的浪费2)通过static修饰静态变量,全局只创建了一次驱动对象,在测试前再卸载驱动.避免重复创建驱动对象造成时间和资源的浪费3)通过使用参数化,保持用例的简洁,提高了代码的可读性.4)使用测试套件:一次性执行所有…

2022年AI顶级论文 —生成模型之年(下)

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 过去十年来&#xff0c;人工智能技术在持续提高和飞速发展&#xff0c;并不断冲击着人类的认知。 2012年&#xff0c;在ImageNet图像识别挑战赛中&#xff0c;一种神经网络模型&#xff08;AlexNet&am…

流媒体付服务器 ZLMediaKit 学习记录

1.官方github&#xff1a;ZLMediaKit 依赖于 media-server 库 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init 之后 cd ZLMediaKit mkdir build…

嵌入式软件自动化测试的趋势

现在软件市场越来越推崇敏捷开发和持续交付&#xff0c;要在这样的环境下取得竞争优势&#xff0c;各个企业必须得开发出稳健的应用程序&#xff0c;为用户提供无可比拟的直观体验。而且,这些应用程序还要能够达到组织机构的业务目标。 自动化测试的重要意义 在这个竞争日益激…

和钟南山院士合影,被人民日报缅怀,吴孟达骨灰葬在马来西亚成谜

不知不觉当中&#xff0c;香港著名演员吴孟达&#xff0c;已经离开人世间两年了&#xff0c;可是关于他的话题却依然没有停息。在影迷的记忆里&#xff0c;吴孟达是星爷的黄金搭档&#xff0c;两个人曾经一起携手&#xff0c;拍摄出来很多部优秀的影视剧。 时光荏苒&#xff0c…

Revit中复合墙图层的规则和CAD识别翻模墙

一、Revit中用于指定复合墙图层的规则&#xff0c;具体内容? 在编辑复合墙的结构时&#xff0c;请使用“指定图层”工具将“编辑部件”对话框中的行指定给图层或预览窗格中的区域&#xff0c;并遵循这些原则。 在预览窗格中&#xff0c;样本墙的各个行必须保持从左到右的顺序显…

面试了1个自动化测试,开口40W年薪,只能说痴人做梦...

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-20k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是3年工作经验&#xff0c;但面试…

Docker前端工程npm平滑过渡到pnpm v7的姿势

前言 pnpm挺多优点的&#xff0c;比如安装依赖速度很快&#xff0c;命令行也可以少打几个字符&#xff1b; 标题为啥说平滑&#xff0c;就是尽可能的少破坏性的迁移【针对现有的工程的改造】&#xff0c; 但是又能受用到pnpm的部分特性&#xff0c;使其效益符合我们的期望即可…

RK3588平台开发系列讲解(系统篇)init.d介绍

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux启动简介二、sysvinit配置三、inid.d介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇介绍init.d相关知识。 一、Linux启动简介 Linux用户空间启动时,第一个会启动init进程,用来引导启动其…

0101基础-认证授权-springsecurity

文章目录1 基础概念1.1 认证1.2 会话1.3 jwt1.4 授权2 授权的数据模型3 RBAC3.1 基于角色的访问控制3.2 基于资源的访问控制4 名词解析4.1 SSO4.2 CAS4.3 联合登陆4.4 多端登录&#xff1a;同一账号不同终端登录4.5 OAuth1 基础概念 1.1 认证 认证是为了保护系统的隐私数据和…

【高数】不定积分之有理函数的积分

文章目录前言有理函数积分的通用解法有理函数的特殊解法前言 这个专栏开始更新高等数学的解题方法&#xff0c;本专栏没有特别强调概念&#xff0c;主要是让大家熟悉考研中的一些题型以及如何求解 关键步骤用蓝色高亮提示 总结方法用红色高亮提示 注意事项用绿色高亮提示 希望…

【数据库】数据库基本概念和类型

一、数据库基本概念 1、数据 所谓数据&#xff08;Data&#xff09;是指对客观事物进行描述并可以鉴别的符号&#xff0c;这些符号是可识别的、抽象的。它不仅仅指狭义上的数字&#xff0c;而是有多种表现形式&#xff1a;字母、文字、文本、图形、音频、视频等。现在…