媒体类型与媒体查询:CSS进阶特性详解

1 下载量 140 浏览量 更新于2024-09-01 收藏 88KB PDF 举报
本文将深入探讨CSS中的两个关键概念——媒体类型(media type)和媒体查询(media query),这两个工具对于响应式设计和适应不同设备至关重要。媒体类型是CSS 2中的基础特性,它允许开发者根据设备类型(如屏幕、打印、投影等)应用特定的样式规则,以实现针对各种设备的优化用户体验。常见的媒体类型包括all(适用于所有设备)、screen(电脑屏幕)、print(打印或预览模式)、handheld(小型手持设备)、speech(语音)等。 媒体查询作为CSS 3的扩展,是对媒体类型的增强,它允许开发者基于设备特性(如视口宽度、分辨率、设备方向等)动态调整样式。这使得设计师可以创建自适应布局,确保网页在不同设备上都能呈现出最佳状态,尤其是在移动互联网快速发展的今天。 关于使用方法,本文提供了五种声明媒体类型的方式: 1. 在`<link>`标签中结合CSS文件时,如`<link href="style.css" media="screen,print">` 2. 使用XML样式表指令,如`<?xml-stylesheet media="screen" href="style.css"?>` 3. 在`@import`规则中指定媒体类型,如`@import url("style.css") screen;` 4. 在`<style>`标签内结合媒体查询,如`<style media="screen"> ... </style>` 5. 使用媒体查询语法,如`@media screen { ... }` 然而,不同浏览器对媒体类型的支持存在差异,例如: - Internet Explorer早期版本(5.5/6/7)不支持在`@import`中使用媒体类型。 - Safari/Firefox最初仅支持all、screen和print,iPhone可能适用。 - Opera浏览器全面支持媒体类型。 - Opera Mini支持handheld,但其他情况未明。 - Windows Mobile中的IE支持handheld,其他平台支持情况未知。 理解并熟练运用媒体类型和媒体查询是现代前端开发人员必备的技能,它们有助于创建兼容多设备的高效网站,适应不断变化的用户环境。

CREATE TABLE `advert` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) COLLATE utf8mb4_bin NOT NULL COMMENT '广告名称', `position_id` int(20) NOT NULL COMMENT '广告位置ID', `media_id` int(20) NOT NULL COMMENT '广告图片ID', `link` varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '广告链接', `status` int(1) unsigned zerofill NOT NULL COMMENT '状态,0:未启用,1:已启用,2:已结束', PRIMARY KEY (`id`) USING BTREE, KEY `FK_ad_image` (`media_id`), KEY `FK_ad_position` (`position_id`), CONSTRAINT `FK_ad_image` FOREIGN KEY (`media_id`) REFERENCES `media_file` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_ad_position` FOREIGN KEY (`position_id`) REFERENCES `ad_position` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告表'; CREATE TABLE `ad_position` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '位置名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告位置表'; CREATE TABLE `media_file` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(30) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件名称', `type` tinyint(1) NOT NULL COMMENT '媒体文件类型:0-图片,1-视频', `url` varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件URL地址', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告媒体文件表'; springboot项目用java写出三张表的orm对象(使用jpa外键依赖),并在有实现类public interface MyBaseMapper<T> extends Mapper<T>, MySqlMapper<T>,MyInsertListMapper<T> {} public interface AdvertMapper extends MyBaseMapper<Advert> {},如何往advert表添加数据

2023-06-02 上传