CSS - 响应式布局 - @media 媒体查询

1. 基本概念

Media Queries(媒体查询)是 CSS3 中引入的一种技术,用于根据不同的设备特性(如屏幕尺寸、设备类型、分辨率等)来应用不同的 CSS 样式。语法结构:

@media [not] [媒体类型] [逻辑操作符] [媒体特性] {
	...
}

@media [not] [all/screen/print] [and/or(,)] [width/min-width/max-width/height/min-height/max-height/device-pixel-ratio/min-device-pixel-ratio/max-device-pixel-ratio/landscape/portrait] {
	...
}

2. 常见媒体类型(Media Types)

all:适用于所有设备类型,是默认值。
screen:主要用于屏幕设备,如桌面显示器、笔记本电脑屏幕、平板电脑屏幕、智能手机屏幕等。
print:用于打印预览和打印页面。可以在这个媒体类型下定义专门用于打印的样式。

3. 媒体特性(Media Features)

宽度相关特性:width、min-width、max-width
高度相关特性:height、min-height、max-height
设备像素比相关特性:device-pixel-ratio、min-device-pixel-ratio、 max-device-pixel-ratio
设备方向相关特性:orientation:landscape(横向) / portrait(纵向)

@media all and (min-width: 768px) {
    /* 适用于所有设备,当最小宽度为768px时应用样式 */
}

@media print {
/* 隐藏不需要打印的元素(如导航栏、广告等),调整字体大小和颜色以适应打印效果等*/
	nav, footer {
    	display: none;
    }
    body {
    	font-size: 12pt;
        color: black;
    }
}

@media (min-width: 1024px) {
	/* 当视口宽度大于等于1024px时应用样式 */
}
@media (max-width: 767px) {
	/* 当视口宽度小于等于767px时应用样式 */
}

@media (min-height: 800px) {
	/* 当视口高度大于等于800px时应用样式 */
}

@media (min-device-pixel-ratio: 2) {
	/* 当设备像素比大于等于2时应用样式,如提供高清图像 */
}

@media screen and (orientation: landscape) {
	/* 当屏幕为横向时应用样式 */
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
	/* 当设备是屏幕设备,且宽度在768px到1024px之间时应用样式 */
}

@media screen and (min-width: 1200px), print {
	/* 当设备是屏幕设备且宽度大于等于1200px,或者是打印设备时应用样式 */
}

@media not screen and (max-width: 480px) {
	/* not操作符只能应用于整个媒体查询,不能用于否定单个媒体特性 */
	/* 当设备不是屏幕设备或者屏幕宽度大于480px时应用样式 */
}

4. Bootstrap breakpoints:

xs: {max: 575},
sm: {min: 576, max: 767},
md: {min: 768, max: 991},
lg: {min: 992, max: 1199},
xl: {min: 1200}

在 Bootstrap 框架中,@include media-breakpoint-xxx是一个 Sass(SCSS)混合器(mixin),用于生成基于 Bootstrap 断点的媒体查询:
@include media-breakpoint-between(xs, xl): all size
@include media-breakpoint-down(md): <= md.max
@include media-breakpoint-up(lg): >= lg.min

@import "~bootstrap/scss/bootstrap";
p {
	@include media-breakpoint-between(sm, lg) {
		color: #007bff;
		background - color: #f8f9fa;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值