返回

CSS中适配与响应(二)

前端

CSS中适配与响应(二)

1. CSS中的单位

1.1 px

px(像素)是最基本的CSS单位,1px等于显示器的一个像素点。px的优点是绝对长度,在不同设备上显示效果一致。缺点是无法随着设备的分辨率变化而变化,在高分辨率设备上可能显得过于密集,而在低分辨率设备上可能显得过于稀疏。

1.2 rem

rem(根元素单位)是相对长度单位,相对于根元素(html元素)的font-size。1rem等于根元素的font-size。rem的优点是随着根元素的font-size变化而变化,可以在不同设备上实现一致的视觉效果。缺点是需要设置根元素的font-size,否则rem无法生效。

1.3 em

em(元素单位)是相对长度单位,相对于父元素的font-size。1em等于父元素的font-size。em的优点是随着父元素的font-size变化而变化,可以在不同设备上实现一致的视觉效果。缺点是需要设置父元素的font-size,否则em无法生效。

1.4 vw

vw(视口宽度)是相对长度单位,相对于视口的宽度。1vw等于视口的1%宽度。vw的优点是随着视口的宽度变化而变化,可以在不同设备上实现一致的视觉效果。缺点是无法在IE8及更早版本浏览器中使用。

1.5 vh

vh(视口高度)是相对长度单位,相对于视口的高度。1vh等于视口的1%高度。vh的优点是随着视口的高度变化而变化,可以在不同设备上实现一致的视觉效果。缺点是无法在IE8及更早版本浏览器中使用。

1.6 vmin

vmin(视口较小值)是相对长度单位,取vw和vh中较小者。vmin的优点是随着视口较小值的变化而变化,可以在不同设备上实现一致的视觉效果。缺点是无法在IE8及更早版本浏览器中使用。

1.7 vmax

vmax(视口较大值)是相对长度单位,取vw和vh中较大者。vmax的优点是随着视口较大值的变化而变化,可以在不同设备上实现一致的视觉效果。缺点是无法在IE8及更早版本浏览器中使用。

2. 媒体查询

媒体查询是一种CSS技术,允许您根据设备的屏幕大小、方向、分辨率等条件来应用不同的样式。媒体查询的语法如下:

@media screen and (条件) {
  /* CSS样式 */
}

其中,screen表示要应用样式的媒体类型,and表示要同时满足多个条件,(条件)表示要满足的条件。

2.1 屏幕宽度

屏幕宽度是媒体查询中最常用的条件之一。您可以使用以下单位来指定屏幕宽度:

  • px:像素
  • em:元素单位
  • rem:根元素单位
  • vw:视口宽度
  • vh:视口高度
  • vmin:视口较小值
  • vmax:视口较大值

例如,以下媒体查询将针对屏幕宽度大于或等于1024px的设备应用样式:

@media screen and (min-width: 1024px) {
  /* CSS样式 */
}

2.2 屏幕方向

屏幕方向也是媒体查询中常用的条件之一。您可以使用以下值来指定屏幕方向:

  • portrait:纵向
  • landscape:横向

例如,以下媒体查询将针对屏幕方向为纵向的设备应用样式:

@media screen and (orientation: portrait) {
  /* CSS样式 */
}

2.3 屏幕分辨率

屏幕分辨率也是媒体查询中常用的条件之一。您可以使用以下单位来指定屏幕分辨率:

  • dpi:每英寸点数
  • ppi:每英寸像素

例如,以下媒体查询将针对屏幕分辨率大于或等于300dpi的设备应用样式:

@media screen and (min-resolution: 300dpi) {
  /* CSS样式 */
}

2.4 其他条件

除了上述条件之外,媒体查询还支持其他条件,包括:

  • 颜色深度:颜色深度的单位是位(bit)。例如,以下媒体查询将针对颜色深度大于或等于24位的设备应用样式:
@media screen and (min-color-depth: 24bit) {
  /* CSS样式 */
}
  • 设备类型:设备类型的单位是字符串。例如,以下媒体查询将针对移动设备应用样式:
@media screen and (device-type: mobile) {
  /* CSS样式 */
}
  • 指针类型:指针类型的单位是字符串。例如,以下媒体查询将针对触摸屏设备应用样式:
@media screen and (pointer: touch) {
  /* CSS样式 */
}

3. 总结

CSS中的单位和媒体查询是实现响应式设计的关键技术。通过合理使用单位和媒体查询,可以使您的网站在不同设备上都具有良好的视觉效果。