探索HTML中的“iframe”标签——WEB开发系列12

news2024/11/29 0:42:12

现代网页开发中,​​<iframe>​​ 标签是一个非常重要的工具。允许我们在一个网页中嵌入另一个网页,对于展示外部内容、应用嵌套或实现复杂的布局设计都非常有用。来一起探讨如何使用 ​​iframe​​ 标签,包括设置高度和宽度、移除边框,以及如何用 ​​iframe​​​ 来显示目标链接页面。


一、了解 ​​<iframe>​​ 标签

​<iframe>​​ 标签是 HTML5 中的一部分,用于嵌入另一个 HTML 页面到当前页面中。它的基本语法如下:

<iframe src="URL" width="宽度" height="高度" frameborder="边框"></iframe>
  • ​src​​ 属性指定要嵌入的网页的 URL。
  • ​width​​ 和 ​​height​​ 属性用于设置 iframe 的宽度和高度。
  • ​frameborder​​​ 属性用于设置 iframe 的边框宽度。

二、设置 ​​iframe​​ 的高度与宽度

使用 ​​<iframe>​​ 标签时,可以通过 ​​width​​ 和 ​​height​​ 属性来控制其显示的尺寸。设置这两个属性的值通常有两种方式:像素值(例如 ​​600px​​)和百分比值(例如 ​​100%​​)。


示例 1:固定尺寸的 ​​iframe​
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fixed Size iFrame</title>
</head>
<body>
    <iframe src="https://www.baidu.com" width="800" height="600" style="border: none;"></iframe>
</body>
</html>

在这个示例中,创建了一个宽800像素、高600像素的 ​​iframe​​。通过在 ​​style​​ 属性中设置 ​​border: none;​​,去除了边框的显示。


示例 2:响应式 ​​iframe​

为了使 ​​iframe​​ 自适应容器的宽度,我们可以使用百分比值。下面的示例展示了如何创建一个宽度为页面宽度的100%的 ​​iframe​​​,高度为容器宽度的50%。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive iFrame</title>
    <style>
        .iframe-container {
            position: relative;
            width: 100%;
            padding-top: 50%; /* 16:9 aspect ratio */
        }
        .iframe-container iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: none;
        }
    </style>
</head>
<body>
    <div class="iframe-container">
        <iframe src="https://www.baidu.com"></iframe>
    </div>
</body>
</html>

这个示例中,使用了一个包含 ​​iframe​​ 的容器 div。通过设置容器的 ​​padding-top​​,能够保持 ​​iframe​​​ 的纵横比为16:9,并且使其自适应页面宽度。


三、移除 ​​iframe​​ 的边框

默认情况下,许多浏览器会为 ​​iframe​​ 显示边框。可以通过设置 ​​frameborder​​ 属性或使用 CSS 来移除这些边框。


示例 1:使用 ​​frameborder​​ 属性
<iframe src="https://www.baidu.com" width="600" height="400" frameborder="0"></iframe>

设置 ​​frameborder​​ 属性为 ​​0​​ 可移除边框。这种方法已被 HTML5 弃用,建议使用 CSS。


示例 2:使用 CSS
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>iFrame without Border</title>
    <style>
        iframe {
            border: none;
        }
    </style>
</head>
<body>
    <iframe src="https://www.baidu.com" width="600" height="400"></iframe>
</body>
</html>

这个示例中,通过 CSS 中的 ​​border: none;​​ 去除了 ​​iframe​​ 的边框。这是移除边框的推荐方法,符合现代浏览器的标准。


四、使用 ​​iframe​​ 来显示目标链接页面

​iframe​​ 最常见的用途之一就是嵌入外部链接。这可以用来展示来自其他网站的内容,比如视频、地图或者其他信息。使用 ​​iframe​​ 时,需要注意目标网站的安全策略,有些网站可能会阻止被嵌入。


示例 1:嵌入 Gaode Maps
html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Embedding Gaode Maps</title>
    <style>
        html, body {
            margin: 0;
            height: 100%;
            overflow: hidden;
        }
        iframe {
            width: 100%;
            height: 100%;
            border: 0;
        }
    </style>
</head>
<body>
    <h1 style="position: absolute; top: 0; left: 0; width: 100%; text-align: center; background-color: rgba(255, 255, 255, 0.8);">My Favorite Place</h1>
    <iframe
        src="https://www.amap.com/place/B0FFK8OQLY"
        allowfullscreen
        loading="lazy"></iframe>
</body>
</html>

这个示例中,嵌入了 Gaode Maps 的一部分,展示了小麦岛公园的地图。通过 ​​style="border:0;"​​ 去除了边框,​​allowfullscreen​​​ 属性使地图可以全屏显示。


示例 2:嵌入 Bilibili 视频
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Embedding Bilibili Video</title>
    <style>
        html, body {
            margin: 0;
            height: 100%;
            overflow: hidden;
        }
        .iframe-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
        iframe {
            width: 100%;
            height: 100%;
            border: none;
        }
    </style>
</head>
<body>
    <h1>Watch this Video</h1>
    <div class="iframe-container">
        <iframe
            src="https://www.bilibili.com/video/BV1m441117Rb/?spm_id_from=333.337.search-card.all.click&vd_source=5dbd7e9d52229e38b46b7897ed6034f2"
            title="Bilibili video player"
            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
            allowfullscreen></iframe>
    </div>
</body>
</html>

这个示例中,嵌入了一个 Bilibili 视频。设置了 ​​allowfullscreen​​​ 属性,允许用户将视频全屏观看。


注意:

出于有些网页不希望被嵌套, 响应头中有一选项

X-Frame-Options

他有三个可配置值

DENY:表示该网站页面不允许被嵌套,即便是在自己的域名的页面中也不能进行嵌套。

SAMEORIGIN:表示该页面可以在相同域名页面中被嵌套展示。

ALLOW-FROM uri:表示该页面可以在指定来源页面中进行嵌套展示。​​


如有表述错误及欠缺之处敬请批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录 升级到Gradle 8.4.2 遇到的坑

序言 最近将Gradle从4.0.1 升级到 8.4.2 遇到了很多坑&#xff0c;记录下来帮助有缘人 升级gradle 修改根目录的build.gradle dependencies {classpath com.android.tools.build:gradle:8.4.2classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0}修改gradle-wrapper.…

【html+css 绚丽Loading】000011 三元轮回珠

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

【TS】函数重载的作用

前言 当调用一个函数时&#xff0c;通常会提示有多种调用方式&#xff0c;各种调用方式的参数类型、参数数量、返回值等均可能不同。本文通过自己封装的message作为案例模拟一下。 实现 自己封装的message组件&#xff0c;有以下7种调用方式 message({mode: "mode"…

QT-计算器

QT-计算器 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui…

分布式事务:基本概念

文章目录 一、基础概念1、什么是事务2、本地事务3 、分布式事务4、分布式事务产生的场景 二、分布式事务基础理论1、CAP理论&#xff08;1&#xff09;理解CAP&#xff08;2&#xff09;CAP组合方式&#xff08;3&#xff09;总结 2、BASE理论 三、分布式事务解决方案之2PC&…

【Java日志系列】Logback日志框架

目录 前言 一、Logback简介 二、Logback组件 三、快速入门 四、配置文件的使用 1. 配置文件中的标签 1.1 logger标签 1.2 root标签 1.3 appender标签 1.4 filter标签 1.5 encoder标签 1.6 property标签 2. 常见的Appender 2.1 ConsoleAppender 2.2 FileAppender…

瓜子二手车源码开发

瓜子二手车作为国内知名的二手车交易平台&#xff0c;其开发需求与功能架构主要围绕提升用户体验、保障交易安全、优化交易流程以及提供全面服务等方面展开。以下是对瓜子二手车开发需求与功能架构的详细分析 一、开发需求 用户需求&#xff1a; 便捷性&#xff1a;用户希望能…

ReTagList标签列表(API)

组件实现基于 Vue3 + Element Plus + Typescript,同时引用 vueUse + lodash-es + tailwindCss (不影响功能,可忽略) 基于ElTag实现的Tag列表,支持Tag列表多选,动态Tag列表 ReTagList标签列表 基础 简单展示Tag列表,可通过size指定尺寸 查看 /demo/tag-list/basic.md …

叉车门口拐角盲区防撞系统,精准微波距离测距,助力企业安全生产

叉车流动性强、作业场所不固定&#xff0c;是特种设备管理的薄弱环节。如何管住叉车、管好叉车&#xff0c;保障作业人员安全一直都是重点话题&#xff0c;引入智慧叉车&#xff0c;使用智能化监管&#xff0c;很多城市相继开展智慧叉车试点工作&#xff0c;给叉车装上“智慧大…

机械学习—零基础学习日志(如何理解概率论4)

当已知一个概率&#xff0c;求解另外一个函数的概率。以下是离散型的概率计算方法。 这里是连续型的&#xff0c;已知概念密度&#xff0c;计算对应的另外一个函数的概率。 这里需要求解对应的原始函数。 这里我们做一道练习题。 《概率论与数理统计期末不挂科|考研零基础入门…

精选这五款热门好用的骨传导耳机,帮你避免踩坑的麻烦!

相信大家都已经深有体会&#xff0c;拿那种常规的入耳式无线蓝牙耳机来做运动耳机&#xff0c;很难满足运动需要。如果选择前两年流行的颈挂式无线运动蓝牙耳机&#xff0c;虽然简单轻巧&#xff0c;但也是入耳式设计&#xff0c;长时间佩戴耳朵不舒服。这样看来&#xff0c;运…

科普篇 | 如何查找参考基因组信息

前 言 很多老师会发现&#xff0c;高通量测序后需要生信分析的过程中&#xff0c;需要填写一个信息分析表。而信息分析表中有一个对生信分析很重要的信息——基因组文件及注释文件。通常这类文件我们都是需要老师提供对应的下载链接&#xff0c;以便于生信直接利用这个链接去…

Git介绍及配置

目录 Git GitHub GitLab Gitee 配置Git 安装git 初次运行 Git 前的配置 注册一个代码托管平台 用户信息 获取 Git 仓库 初始化仓库 克隆现有的仓库 https方式&#xff1a; ssh方式&#xff1a; 上传本地项目至Git仓库 https方式 ssh-key方式 添加个人公钥​ …

【python】PyQt5中的QFrame控件,控制图形的边框样式、阴影效果、形状等属性

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Redis】Redis 底层的数据结构(结合源码)

众所周知&#xff0c;Redis 是一个高性能的开源内存数据库&#xff0c;支持多种数据结构&#xff08;如字符串、哈希、列表和集合&#xff09;&#xff0c;提供持久化选项以确保数据安全&#xff0c;并具备高可用性和分布式功能。 下面我们就来了解一下其底层所使用到的数据结…

包装类和简单泛型

一、包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 1.1 基本数据类型和对应的包装类 注意&#xff1a;除了 Integer 和 Character&#xff0c; 其余基本类型的…

微信怎么恢复好友?找回失联好友,5个有效方法奉上!

微信&#xff0c;这个我们日常沟通不可或缺的工具&#xff0c;但有时会因为一些小疏忽&#xff0c;让我们不小心与好友失去了联系。可能是误删了好友&#xff0c;也可能是换了手机没来得及备份&#xff0c;导致那些熟悉的面孔从列表中消失。 那么&#xff0c;微信怎么恢复好友…

软件设计师全套备考系列文章9 -- 算法设计与分析

软考-- 软件设计师&#xff08;9&#xff09;-- 算法设计与分析 文章目录 软考-- 软件设计师&#xff08;9&#xff09;-- 算法设计与分析前言一、章节考点二、分治法三、回溯法四、贪心法五、动态规划法 前言 考试时间&#xff1a;每年5月、11月&#xff0c;软件设计师每年都…

当《黑神话:悟空》中的天命人,被AI换脸成老外…

前言 挡不住&#xff0c;根本挡不住&#xff01; 《黑神话&#xff1a;悟空》&#xff0c;这款由游戏科学公司制作的&#xff0c; 以中国神话为背景的角色扮演游戏&#xff0c;8月20日一上线&#xff0c; 就连续霸榜Steam、WeGame 等平台销量榜首&#xff0c; 肉饼的朋友圈…

软件测试学习笔记丨多表查询及子查询

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/31940 一、多表简介 定义&#xff1a;结合两个或多个表来执行SQL数据库操作&#xff0c;这通常涉及到一个或多个表的关联&#xff0c;基于某些共享的列&#xff08;通常是键&#xff09;之间…