回顾盒子模型之box-size属性

本文介绍了CSS中的两种盒模型——标准盒模型和IE盒模型,详细阐述了它们的width计算方式及其差异。标准盒模型中,width仅包含内容宽度,而IE盒模型中,width包括内容、内边距和边框。通过`box-sizing`属性可以切换这两种模型,其默认值为content-box,对应标准盒模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看两张从网上找到的图:

盒子模型是CSS中很重要的概念,它涉及到的无非就是内容(content)、填充(padding)、边框(border)、边界(margin)。但是从上两张图可以看出,盒子模型其实有两种类型:标准盒模型和IE盒模型。

标准盒模型
box-sizing: content-box;

标准盒模型的width组成:content(不包含 padding 和 border)

比如:你给一个div的宽度设为200px,那这个div实际的宽度其实是200px再加上padding和border的值(和是大于等于200px的)。

IE盒模型
box-sizing: border-box;

IE盒模型的width组成:content + 2 * padding + 2 * border

比如:你给一个div的宽度设为200px,那这个div内容的宽度其实只有200px减去 padding 和 border 的值。它实际宽度是小于或等于200px的。

对比总结
box-sizing: content-box | border-box | inherit
他们的主要区别其实就是 width 包不包含 border 和 padding
box-sizing 默认值是 content-box,即默认是标准盒子模型
————————————————
版权声明:本文为优快云博主「前端小白装大神」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u014326381/article/details/61641536

当然,以下是对uni-app中布局、组件和交互三个板块内容的进一步补充: ## 布局 在uni-app中,布局是构建页面的基础,它决定了页面中元素的排列和分布。 ### 1. 定位(Positioning) - **相对定位(Relative Positioning)**:元素的位置相对于其在文档流中的原始位置进行偏移。使用`top`、`right`、`bottom`、`left`属性- **绝对定位(Absolute Positioning)**:元素的位置相对于其最近的已定位(非static)祖先元素进行定位。如果没有这样的祖先元素,则相对于初始化包含块(通常是文档的`<html>`元素)。 ### 2. 盒子模型Box Model) - **边框(Border)**:围绕内边距的边框,可以设置宽度、样式和颜色。 - **内边距(Padding)**:元素内容和边框之间的空间,内边距会将元素的尺寸扩大。 - **外边距(Margin)**:元素与其他元素之间的空间,用于分隔元素。 ### 3. Flexbox 弹性布局 - **主轴(Main Axis)**:沿着主轴的排列方向(`row`或`column`)。 - **侧轴(Cross Axis)**:垂直于主轴的轴。 - **空间分配**:使用`justify-content`和`align-items`属性来控制项目在主轴和侧轴上的对齐方式。 - **项目排列**:使用`flex-direction`属性来控制项目的排列方向。 ## 组件 uni-app提供了丰富的组件,用于构建用户界面。 ### 1. 视图容器组件 - **`view`**:类似于HTML中的`div`,用于页面布局。 - **`cover-view`**:覆盖在原生组件上的容器,可以覆盖在`map`、`video`等组件上。 - **`swiper`**:滑块视图容器,用于创建滑动效果。 - **`scroll-view`**:可滚动视图容器,用于区域滚动。 ### 2. 表单组件 - **`input`**:输入框,用于文本输入。 - **`button`**:按钮,用于触发事件。 - **`checkbox`**:复选框,用于多项选择。 - **`radio`**:单选框,用于单项选择。 - **`switch`**:开关,用于切换状态。 - **`slider`**:滑块,用于选择一个范围值。 ### 3. 选择器组件 - **`picker`**:选择器,用于选择信息,如日期、时间等。 - **`picker-view`**:多列选择器,用于复杂的选择场景。 ### 4. 媒体组件 - **`audio`**:音频组件,用于播放音频。 - **`video`**:视频组件,用于播放视频。 - **`camera`**:相机组件,用于拍照或录像(部分平台支持)。 - **`live-player`**:直播播放组件(部分平台支持)。 - **`live-pusher`**:直播推流组件(部分平台支持)。 ### 5. 地图组件 - **`map`**:地图组件,用于显示地图和标记位置。 ### 6. 图标组件 - **`icon`**:图标组件,使用`type`属性指定图标类型,`size`属性指定图标大小。 ## 交互 在uni-app中,交互是用户与应用之间沟通的桥梁。 ### 1. 组件间交互 - **事件绑定**:通过`@`符号绑定事件,如`@click`、`@change`等。 - **数据绑定**:使用`v-bind`或简写`:`绑定数据。 ### 2. 页面间交互 - **页面跳转**:使用`uni.navigateTo`、`uni.redirectTo`等API实现页面跳转。 - **页面传参**:通过`url`参数传递数据。 ### 3. 前后端交互 - **网络请求**:使用`uni.request`发起网络请求,与后端进行数据交互。 - **数据缓存**:使用`uni.setStorageSync`和`uni.getStorageSync`进行数据缓存。 ### 4. 表单提交 - **提交表单**:使用`form`组件的`@submit`事件处理表单提交。 ### 5. 用户反馈 - **加载提示**:使用`uni.showLoading`和`uni.hideLoading`显示和隐藏加载提示。 - **模态弹窗**:使用`uni.showModal`显示模态弹窗。 --- 以上是对uni-app布局、组件和交互板块内容的补充,希望能够帮助您更全面地理解和掌握uni-app开发。如果您有任何疑问或需要进一步的帮助,请随时提问。生成思维导图
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值