CSS中display和position的属性值有哪些?

display具有以下特性 

display:none、inline、inline-block、block、table、inherit、flex

1、none:就是隐藏,不会占用文档流位置,不会占用空间(其他元素会占用他的元素)

2、inline:行内元素

3、inline-block:行内块元素,也即有块元素的一些特性,可以设置宽度、高度(width、height)边距等等

4、block:块元素,独占一行,可以设置宽度高度(width、height)边距等等 

5、table:表格相关,众所周知table有一些特定的标签:table、tr、th、td、tfool等等。可以用div等元素来实现,需要将元素的display设置成table-*就行

6、inherit:也即继承,

7、flex:弹性盒子,也成为弹性布局


position具有以下特性

position:absolute、fixed、relative、inherit、static(默认)、sticky、unset

1、absolute:绝对定位,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。比较多的层叠通过和z-index属性定义。

2、fixed:固定定位,对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。

3、relative:相对定位,对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。

4、inherit:继承,规定应该从父元素继承 position 属性的值

5、static:默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

 

CSS 中实现元素居中的方法有多种,以下为你详细介绍: ### 使用 `margin: auto` 块级元素在水平方向上具有满屏特性,表现为水平方向上占满整个父容器的宽度,所以,当水平方向上 `padding`、`border`,`width` 都是定值时,`margin` 左右外边距设置为 `auto`,默认会由 `margin` 左右平分剩余空间,从而达到水平居中效果。例如: ```css .child { width: 100px; margin: 0 auto; } ``` 此方法适用于需要水平居中的块级元素,要求元素的宽度是固定值,常用于导航栏、段落等元素的水平居中[^5]。 ### 使用 `display: table-cell` 将父容器的 `display` 指定为 `table-cell`,这样浏览器便会把父元素当作一个表格单元格对待,然后添加垂直居中水平居中属性。示例如下: ```css .parent { width: 300px; height: 200px; background: rgb(120, 202, 13); display: table-cell; vertical-align: middle; /* 垂直居中 */ text-align: center; /* 水平居中 */ } .child { width: 50px; height: 50px; background: rgb(110, 83, 231); display: inline-block; } ``` 这种方法适用于子元素大小不固定的情况,能同时实现水平垂直居中,兼容性较好,但需要额外的 HTML 结构,常用于图片、按钮等元素的居中[^4]。 ### 使用 `inline-block` 伪元素 利用 `inline-block` 的 `vertical-align: middle` 去对齐 `before` 伪元素,`before` 伪元素的高度与父对象一样,就实现了高度方向的对齐。示例如下: ```css .father { width: 400px; height: 200px; border: 1px solid #000; text-align: center; } .father:before { content: "."; display: inline-block; vertical-align: middle; height: 100%; } .son { width: 200px; height: 100px; background: red; display: inline-block; vertical-align: middle; } ``` 该方法的优点是居中块的尺寸可以做包裹性、自适应内容,兼容性也相当好;缺点是水平居中需要考虑 `inline-block` 间隔中的留白(代码换行符遗留问题),适用于子元素大小不固定的情况,常用于文本、图片等元素的居中[^3]。 ### 使用 Flexbox Flexbox 是一种现代的布局模型,通过设置父元素的 `display` 为 `flex` 或 `inline-flex`,可以轻松实现子元素的水平垂直居中。示例如下: ```css .parent { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ width: 300px; height: 200px; background: lightblue; } .child { width: 50px; height: 50px; background: orange; } ``` 这种方法简单灵活,适用于各种场景,但在一些旧浏览器中可能存在兼容性问题,常用于导航栏、卡片布局等元素的居中。 ### 使用绝对定位 `transform` 通过绝对定位将子元素的左上角定位到父元素的中心,然后使用 `transform` 属性将子元素向左向上移动自身宽度高度的一半,从而实现水平垂直居中。示例如下: ```css .parent { position: relative; width: 300px; height: 200px; background: lightgreen; } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; background: purple; } ``` 此方法适用于子元素大小不固定的情况,但需要父元素设置 `position: relative`,常用于模态框、提示框等元素的居中。 ### 使用 Grid 布局 Grid 布局是一种二维布局模型,通过设置父元素的 `display` 为 `grid` 或 `inline-grid`,可以实现子元素的水平垂直居中。示例如下: ```css .parent { display: grid; place-items: center; width: 300px; height: 200px; background: lightcoral; } .child { width: 50px; height: 50px; background: yellow; } ``` Grid 布局功能强大,但在一些旧浏览器中可能存在兼容性问题,常用于复杂的网格布局中元素的居中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值