Web前端 — CSS之盒模型 以及margin负值、塌陷重叠问题

简介: Web前端 — CSS之盒模型 以及margin负值、塌陷重叠问题

所有命运馈赠的礼物,都已在暗中标好了价格。——茨威格

 

1.什么是盒模型?

说一下你对CSS盒模型的理解。

css的盒子模型(box model),

可以把每个可视的HTML元素看作是一个矩形盒子,也就是一个盛装内容的容器。

这个盒子由里到外包括:content(内容)、padding(内边距)、border(边框)、margin(外边距)四个部分。

2.盒模型的类型

盒模型有两种,标准盒模型IE盒模型(也称怪异盒模型)

(1)标准盒模型(宽高 = 内容部分)

(2)IE盒模型(宽高 = 内容+内边距+边框)

(3)box-sizing属性

在CSS中,可以通过box-sizing属性来指定盒模型的类型。

box-sizing属性有两个可选值:content-box和border-box。

默认值是content-box,表示使用标准盒模型。

如果将box-sizing设置为border-box,则使用IE盒模型。

/* 标准模型(默认) */
box-sizing:content-box;
 /*IE模型*/
box-sizing:border-box;

(4)题目:计算盒子模型的宽度

<style>
    .div {
        width: 100px;
        height: 100px;
        padding: 10px;
        border: 1px solid #ccc;
    }
</style>
<html>
    <div class="div">
    <!-- 请问.div盒子的宽度是多少? -->
</html>

①div盒子的宽度是多少?

答案是122px,默认情况下,.div为标准盒子模型,

width属性设置的是content的宽度,

计算公式为 offersetWidth = content + padding-left + padding-right + border-left + border-right

                                       = 100 + 20 + 2

                                       = 122px

(offsetWidth、offsetHeight表示元素在页面中所占用的总宽度、总高度)

②如何让offsetWidth = width

如何让offsetWidth = 100px?

<style>
    .div {
        width: 100px;
        height: 100px;
        padding: 10px;
        border: 1px solid #ccc;
        box-sizing: border-box;
    }
</style>
<html>
    <div class="div">
</html>

添加 box-sizing: border-box;

3.margin问题

 

(1)纵向折叠问题

相邻元素的margin-top和margin-bottom会发生折叠

推荐文章:

深入了解margin折叠

 

(2)margin负值问题

  • margin-top 和 margin-left负值,元素向上、向左移动;
  • margin-right负值,右侧元素左移,自身不受影响;(浏览器渲染时忽略其部分宽度/重新计算其宽度)
  • margin-bottom负值,下方元素上移,自身不受影响。(浏览器渲染时忽略其部分高度/重新计算其高度)

 

 

相关文章
|
3月前
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
21天前
|
前端开发
|
21天前
|
前端开发
|
21天前
|
前端开发 JavaScript
|
21天前
|
XML 前端开发 JavaScript
|
21天前
|
前端开发 容器
|
2月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
73 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
3月前
|
前端开发 开发者 UED
《前端技术基础》第02章 CSS基础【合集】
层叠样式表(Cascading Style Sheets,简称CSS)是一种用于描述网页视觉表现的语言。该语言与HTML协同工作,其中HTML负责构建网页的结构,而CSS则负责定义网页的外观和格式。CSS通过一系列规则来实现样式的应用,这些规则由选择器(Selectors)和声明块(Declaration Blocks)构成。选择器的作用是明确指出哪些HTML元素将受到特定样式规则的影响,而声明块则包含了具体的样式声明,这些声明定义了元素的视觉属性和相应的值。
93 1
|
5月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
91 6
|
5月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
77 5

热门文章

最新文章