第三章总结

本文详细介绍了HTML/CSS中的盒子模型、块级元素与行内元素的区别、浮动与定位技术以及flex布局的容器和项目属性,帮助开发者理解和应用这些关键概念。
摘要由CSDN通过智能技术生成

盒子模型

盒子模型由边框(border)、内边距(padding)、外边距(margin)、内容(content)组成。

块级元素与行内元素
1.块级元素
<view>组件默认为块级组件

特点:

(1)一个块级元素占一行(添加新的块级元素自动换行)。

(2)块级元素的默认高度由内容决定,除非自定义高度。

(3)块级元素的默认宽度是父级元素的内容区宽度,除非自定义宽度。

(4)块级元素的宽度、高度、外边距及内边距都是可以自定义设置。

(5)块级元素可以容纳块级元素和行内元素。

示例代码:

<view style="border:1px solid #f00">块级元素1</view>
<view style="border:1px solid #0f0;margin:15px;padding:30px">块级元素2</view>
<view style="border:1px solid #00f;width:200px;height:80px">块级元素3</view>
<view style="border:1px solid #ccc">
<view style="height:60px">块级元素1</view></view>
<view style="border:1px solid #f00; width:100px;background-color:#ccc">父级元素高度随内容决定,内容为文本</view>
2.行内元素

<text>组件默认为行内元素

特点:

(1)行内元素不能被设置高度和宽度,其高度和宽度由内容决定。

(2)同一块内,行内元素和其他行内元素显示在同一行。

(3)行内元素内不能放置块级元素,只级容纳文本或其他行内元素。

示例代码:

<view style="padding:20px">
<text style="border:1px solid #f00">文本1</text>
<text style="border:1px solid #0f0;margin:10px;padding:5px">文本2</text>
<view style="border:1px solid #00f;display:inline">块级元素设置为行内元素</view>
</view>
3.行内块元素

当元素的display属性被设置为inline-block时,元素设置为行内块元素。

可以设置高度、宽度和元素显示在同一行。

示例代码:
 

<view>元素的显方式的
<view style="display:inline-block;border:1px solid #f00;margin:10px;padding:10px;width:200px">行内块元素、块级元素和和行内块元素
</view>三钟类型
</view>

浮动与定位

元素浮动与清除

元素浮动是指设置了浮动属性的元素会脱离标准文档流的控制,移到其父元素中指定位置的过程。

float属性来定义浮动

none——默认值,表示元素不浮动

left——元素向左浮动

right——元素向右浮动

clear属性用于清除浮动元素对其他元素的影响

left——清除左边浮动的影响

right——清除右边浮动的影响

both——同时清除左右两侧浮动的影响

none——不清除浮动

元素定位

position属性来实现对页面元素的精确定位

static:默认值

relative:相对定位

absolute:绝对定位

fixed:固定定位

静态定位:

<!--三个元素均为定位-->
<view style="border:1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height:100px">box2</view>
<view style="border:1px solid #0f0;width:100px;height:100px">box3</view>

相对定位:
 

<!--box2元素相对定位relative top:30px left:30px-->
<view style="border:1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height:100px;position:relative;left:30px;top:30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height:100px">box3</view>

绝对定位:
 

<!--box2元素绝对定位absolute top:30px left:30px-->
<view style="border:1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height:100px;position:absolute;left:30px;top:30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height:100px">box3</view>

固定定位:

<!--box2元素固定定位fixed top:30px left:30px-->
<view style="border:1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height:100px;position:fixed;left:30px;top:30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height:100px">box3</view>

flex布局

flex布局主要由容器和项目组成

cross axis:为交叉轴

main axis:为主轴

1.容器属性

(1)display 
flex——块级flex布局,该元素变为弹性盒子

inline-flex——行内flex布局,行内容器符合行内元素的特征,同时在容器内又符合flex布局规范

(2)flex-direction
a、row——主轴为水平方向,起点在左端

b、row-reverse——主轴为水平方向,起点在右端

c、column——主轴为垂直方向,起点在顶端

d、column-reverse——主轴为垂直方向,起点在底端

(3)flex-wrap

a、nowrap——不换行,默认值

b、wrap——换行,第一行在上方

c、wrap-reverse——换行,第一行在下方

(4)flex-flow
row nowrap——默认值  

是flex-direction和flex-wrap的组合形式

(5)justify-content
justify-content——与主轴方向有关,默认主轴水平对齐,方向从左到右

a、flex-start——左对齐,默认值

b、flex-end——右对齐

c、center——居中

d、space-between——两端对齐,项目之间的间隔都相等

e、space-around——每个项目两侧的间隔相等

(6)align-items
align-items——与交叉轴方向有关,默认交叉由上到下

flex-start——交叉轴起点对齐

flex-end——交叉轴终点对齐

center——交叉轴中线对齐

baseline——项目根据它们第一行文字的基线对齐

stretch——如果项目位设置高度或设置为auto,项目将在交叉轴方向拉伸填充容器

(7) align-content

space-content——与交叉轴两端对齐,轴线之间的间隔平均分布

space-around——每根轴线两侧的间隔都相等,轴线之间的间隔比轴线轴线于边框之间大一倍

其余属性值的含义与align-items属性的含义相同

2.项目属性

(1)order(顺序)

数值越小,排名越靠前,默认值为0

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item" style="order:1">1</view>
    <view class="item" style="order:3">2</view>
    <view class="item" style="order:2">3</view>
    <view class="item">4</view>
</view>
(2)flex-grow(放大)

默认值为0,即不放大

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item">1</view>
    <view class="item" style="flex-grow:1">2</view>
    <view class="item" style="flex-grow:2">3</view>
    <view class="item">4</view>
</view>
(3)flex-shrink(缩小)

默认值为1,如果空间不足,该项目将被缩小

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item">1</view>
    <view class="item" style="flex-shrink:2">2</view>
    <view class="item" style="flex-shrink:1">3</view>
    <view class="item" style="flex-shrink:4">4</view>
</view>
(4)flex-basis(进行缩放)

定义伸缩项目的基准值,剩余的空间将按比例进行缩放,默认值:auto

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item">1</view>
    <view class="item" style="flex-basis:100px">2</view>
    <view class="item" style="flex-basis:150px">3</view>
    <view class="item" style="flex-basis:80px">4</view>
</view>

(5)flex

是对flex-grow、flex-shrink、flex-basis的简写,默认值为0、1、auto

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item">1</view>
    <view class="item" style="flex:1 1 auto">2</view>
    <view class="item" style="flex:0 1 20px">3</view>
    <view class="item" style="flex:1 0 40px">4</view>
</view>

(6)align-self

该属性会重写默认的对齐方式,除了auto以外,其余属性与容器align-items属性一致

<view class="cont1">
  <view class="item">1</view>
  <view class="item">2</view>
  <view class="item">3</view>
  <view class="item">4</view>
</view>
<view class="cont1">
    <view class="item">1</view>
    <view class="item item2"style="align-self:flex-end">2</view>
    <view class="item">3</view>
    <view class="item">4</view>
</view>

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值