2024-08-23

HTML5 提供了一个新的表单验证属性,可以用来验证身份证。这个属性是 pattern,可以通过正则表达式来验证输入的内容。

以下是一个使用 pattern 属性来验证身份证的例子:




<form>
  <label for="idCard">身份证号码:</label><br>
  <input type="text" id="idCard" name="idCard" pattern="^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$" title="请输入正确的身份证号码" required>
  <input type="submit">
</form>

在这个例子中,pattern 属性的值是一个正则表达式,用于匹配身份证号码。正则表达式的规则是:

  • 第一位数字为1-9;
  • 接下来是任意多个数字\d;
  • 然后是6位数字,可能是18, 19, 20开头(为了适应21世纪);
  • 接下来是月份和日期的验证,格式为(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01]);
  • 后面是任意的数字和X/x;
  • 最后是3位数字。

当用户提交表单时,如果输入的身份证号码不符合正则表达式规则,浏览器会显示一个错误信息,并且阻止表单的提交。如果输入正确,表单会被发送到服务器。

2024-08-23

HTML5 的 <progress> 标签用于表示一个进度条,通常用来显示任务的完成进度,如下载进度、加载时间等。

使用方法:




<progress value="50" max="100"> </progress>

在这个例子中,value 属性设定了进度条的当前值,max 属性设定了进度条的最大值。这将显示一个进度条,进度条的完成度为 50%,因为完成了 50% 的工作量。

CSS 样式可以用来美化进度条:




progress {
  width: 100%;
  height: 20px;
  color: #00ff00;
  background-color: #ff0000;
}

这段 CSS 将进度条的宽度设置为 100%,高度设置为 20px,颜色设置为绿色文字和红色背景。

HTML 和 CSS 结合使用:




<progress value="50" max="100" style="width: 100%; height: 20px; color: #00ff00; background-color: #ff0000;"> </progress>

在这个例子中,style 属性直接定义了进度条的样式,不需要额外的 CSS 文件。

2024-08-23

以下是一个简单而漂亮的网址导航HTML5代码实例,它包含了导航栏、链接列表和页面的基本结构:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网址导航</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
        }
        .navbar {
            background-color: #333;
            overflow: hidden;
        }
        .navbar a {
            float: left;
            display: block;
            color: white;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
        }
        .navbar a:hover {
            background-color: #ddd;
            color: black;
        }
        .content {
            padding: 16px;
        }
        .links {
            max-width: 600px;
            margin: auto;
            padding: 16px;
            background-color: white;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }
        .links a {
            display: block;
            margin-bottom: 5px;
        }
    </style>
</head>
<body>
 
<div class="navbar">
    <a href="#home">首页</a>
    <a href="#contact">联系我们</a>
    <a href="#about">关于我们</a>
</div>
 
<div class="content">
    <div class="links">
        <h2>常用网址</h2>
        <a href="https://www.example1.com" target="_blank">示例网站1</a>
        <a href="https://www.example2.com" target="_blank">示例网站2</a>
        <a href="https://www.example3.com" target="_blank">示例网站3</a>
        <!-- 更多链接 -->
    </div>
</div>
 
</body>
</html>

这段代码展示了如何使用CSS样式来增强一个简单的HTML结构,使其看起来更加漂亮和用户友好。同时,它也演示了如何通过HTML结构和CSS样式来创建一个导航栏和链接列表,这对于初学者来说是一个很好的教学示例。

2024-08-23

HTML5引入了一些新的语义化标签,这些标签被设计用来明确一个网页的不同部分。以下是一些常用的HTML5语义化标签及其解释:

  1. <header> - 表示网页或一个区块的头部。
  2. <nav> - 表示导航链接部分。
  3. <main> - 表示页面的主要内容,一个页面只能使用一次。
  4. <article> - 表示一个独立的文章。
  5. <section> - 表示一个文档或应用的区块。
  6. <aside> - 表示与页面主内容少关的内容。
  7. <footer> - 表示页面或一个区块的底部。

示例代码:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <header>
        <nav>
            <ul>
                <li><a href="#">主页</a></li>
                <li><a href="#">产品</a></li>
                <li><a href="#">关于</a></li>
            </ul>
        </nav>
        <h1>网站标题</h1>
    </header>
    
    <main>
        <article>
            <header>
                <h2>文章标题</h2>
                <p>发布时间、作者等信息</p>
            </header>
            <section>
                <h3>章节标题</h3>
                <p>文章内容...</p>
            </section>
        </article>
    </main>
    
    <aside>
        <section>
            <h3>侧边栏标题</h3>
            <p>侧边栏内容...</p>
        </section>
    </aside>
    
    <footer>
        <p>版权信息</p>
    </footer>
</body>
</html>

在这个示例中,HTML5的语义化标签被用来清晰地描述网页的不同部分。这有助于搜索引擎理解网页内容,同时也使得代码的维护更加简单和直观。

2024-08-23

在iOS设备上,使用document.execCommand('copy')复制文本到剪贴板可能不生效的原因可能是因为iOS对JavaScript的限制,或者是因为用户没有进行任何用户交互操作(比如点击事件)。

解决方法:

  1. 确保用户有进行某些交互操作(例如点击事件),因为在iOS上,由于安全原因,JavaScript无法在没有用户交互的情况下访问剪贴板。
  2. 使用setTimeout在复制操作前延迟执行,这可能有助于触发某些必要的用户交互。
  3. 使用document.body作为中介,将需要复制的文本先添加到页面上某个临时的元素(如<textarea><input>)中,然后执行复制命令。

示例代码:




// 创建临时元素
var tempInput = document.createElement('input');
tempInput.style = 'position: absolute; left: -1000px; top: -1000px';
tempInput.value = '需要复制的文本内容'; // 设置要复制的文本
 
// 将元素添加到DOM中
document.body.appendChild(tempInput);
 
// 选中临时元素的文本
tempInput.select();
 
// 复制选中的文本到剪贴板
document.execCommand('copy');
 
// 移除临时元素
document.body.removeChild(tempInput);

在实际应用中,你可能需要将这段代码放在点击事件的回调函数中,确保用户交互已经发生。

2024-08-23

Head First HTML5 Programming 是一本由 O'Reilly Media 出版的图书,它涵盖了 HTML5 的基础知识以及如何使用 HTML5 和相关技术创建交互式网站和应用。

这本书的源代码可以在 GitHub 上找到。源代码库包含了书中介绍的所有示例和练习的源代码。

以下是一个简单的示例,展示了如何使用 HTML5 创建一个简单的网页:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Head First HTML5 Programming</title>
</head>
<body>
    <header>
        <h1>Welcome to My Website</h1>
    </header>
    <nav>
        <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </nav>
    <section>
        <h2>My First Heading</h2>
        <p>This is a paragraph of sample text for the section.</p>
    </section>
    <footer>
        <p>Copyright © 2023 My Website</p>
    </footer>
</body>
</html>

这个简单的网页使用了 HTML5 的语义元素 <header>, <nav>, <section>, 和 <footer> 来构建网站的不同区域。

请注意,这只是一个示例,实际的源代码库包含了更多的内容和复杂性。

2024-08-23



<!DOCTYPE html>
<html>
<head>
    <title>球体爆炸特效</title>
    <style>
        canvas {
            display: block;
        }
    </style>
</head>
<body>
    <canvas id="canvas"></canvas>
    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        const width = canvas.width = window.innerWidth;
        const height = canvas.height = window.innerHeight;
        const particles = [];
        const particleCount = 200;
        const radius = 75;
        const x = width / 2;
        const y = height / 2;
 
        class Particle {
            constructor() {
                this.x = x;
                this.y = y;
                this.vx = (Math.random() - 0.5) * 5;
                this.vy = (Math.random() - 0.5) * 5;
                this.radius = Math.random() * 2 + 1;
                this.life = 1;
                this.decay = Math.random() * 0.01 + 0.01;
            }
 
            update() {
                this.x += this.vx;
                this.y += this.vy;
                this.life -= this.decay;
            }
 
            draw() {
                ctx.beginPath();
                ctx.globalAlpha = this.life;
                ctx.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
                ctx.fill();
            }
        }
 
        function init() {
            for (let i = 0; i < particleCount; i++) {
                particles.push(new Particle());
            }
            animate();
        }
 
        function animate() {
            ctx.clearRect(0, 0, width, height);
            particles.forEach((particle) => {
                particle.update();
                particle.draw();
            });
            requestAnimationFrame(animate);
        }
 
        init();
    </script>
</body>
</html>

这段代码使用了HTML5的canvas元素来创建一个球体下落并爆炸的粒子特效。它定义了一个Particle类来表示每个粒子,并在init函数中初始化了一系列粒子。animate函数则负责更新和绘制每个粒子,从而形成动态的爆炸效果。这个示例展示了如何使用JavaScript和HTML5 canvas API创建简单的动画效果,对于学习基本的Web动画技术有很好的教育价值。

2024-08-23

在HTML5中,我们可以使用<video><audio>标签来嵌入和播放多媒体内容。以下是一个简单的HTML5 <video>元素的例子,它演示了如何嵌入一个视频播放器,并提供了基本的播放控制。




<!DOCTYPE html>
<html>
<head>
    <title>HTML5 视频播放器示例</title>
</head>
<body>
    <video width="320" height="240" controls>
        <source src="movie.mp4" type="video/mp4">
        <source src="movie.ogg" type="video/ogg">
        您的浏览器不支持视频标签。
    </video>
</body>
</html>

在这个例子中,<video>标签包含了两个<source>标签,分别指向相同视频的MP4和Ogg版本。controls属性添加了视频播放的默认控制界面,包括播放、暂停和音量控制。如果浏览器不支持<video>元素,它会显示<video>标签中的文本内容。

这只是多媒体开发的一个简单入门,HTML5提供了更多强大的功能,例如自定义播放控件、使用JavaScript和CSS进行高级控制等。

2024-08-23

在Vue中调起移动端第三方地图软件,可以通过URL Scheme实现。以下是针对高德、腾讯和百度地图的调用方法:

  1. 高德地图:



// 示例: 打开高德地图导航到指定坐标
const lat = 39.984060; // 目的地纬度
const lon = 116.481270; // 目的地经度
const url = `androidamap://navi?sourceApplication=VueApp&poiname=目的地&lat=${lat}&lon=${lon}&dev=0&style=2`;
window.location.href = url;
  1. 腾讯地图:



// 示例: 打开腾讯地图导航到指定坐标
const lat = 39.984060; // 目的地纬度
const lon = 116.481270; // 目的地经度
const url = `qqmap://map/routeplan?type=drive&fromcoord=CurrentLocation&tocoord=${lat},${lon}&referer=VueApp`;
window.location.href = url;
  1. 百度地图:



// 示例: 打开百度地图导航到指定坐标
const lat = 39.984060; // 目的地纬度
const lon = 116.481270; // 目的地经度
const url = `baidumap://map/direction?mode=driving&from=currentLocation&coordtype=gcj02&to=${lat},${lon}&src=VueApp`;
window.location.href = url;

请注意,这些URL Scheme可能会随着应用版本或者地图软件的更新而变化,请参照相应的第三方地图软件官方文档进行确认。此外,在实际使用中,可能需要添加一些错误处理逻辑,例如检查用户设备是否安装了相应的地图软件。

2024-08-23

在HTML5中,您可以通过几种方法设置背景色。以下是一些示例:

  1. 使用内联样式设置背景色:



<body style="background-color: #f0f0f0;">
  <!-- 页面内容 -->
</body>
  1. 使用内部样式表设置背景色:



<head>
  <style>
    body {
      background-color: #f0f0f0;
    }
  </style>
</head>
<body>
  <!-- 页面内容 -->
</body>
  1. 使用外部样式表设置背景色:

在一个外部的CSS文件中(例如styles.css):




body {
  background-color: #f0f0f0;
}

然后在HTML文件中链接这个外部样式表:




<head>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <!-- 页面内容 -->
</body>

您可以将#f0f0f0替换为您想要的任何颜色代码(可以是十六进制颜色代码、RGB、RGBA、HSL、HSLA 或者预定义的颜色名称)。