Mozilla 笔记- HTML5构建网站的基本元素有哪些?

2024-01-26 03:58

本文主要是介绍Mozilla 笔记- HTML5构建网站的基本元素有哪些?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mozilla-学习Web开发 笔记(HTML-构建Web,CSS-设计web)

在你的站点增加自定义图标节

为了进一步丰富你的网站设计,你可以在元数据中添加对自定义图标的引用,这些将在特定的场合中显示。

这个不起眼的图标已经存在很多很多年了,16 x 16 像素是这种图标的第一种类型。你可以看见这些图标出现在浏览器每一个打开的页面中的标签页中中以及在书签面板中的书签页面中。

页面添加图标的方式有:

1.将其保存在与网站的索引页面相同的目录中,以.ico格式保存(大多数浏览器将支持更通用的格式,如.gif或.png,但使用ICO格式将确保它能在如Internet Explorer 6一样久远的浏览器显示)

2.将以下行添加到HTML 中以引用它:

<link rel="shortcut icon" href="images/firefox-icon.ico" type="image/x-icon">

响应式图片(图片自适应)

让我们改用 <picture>!就像<video>和<audio>,<picture>素包含了一些<source>元素,它使浏览器在不同资源间做出选择,紧跟着的是最重要的<img>元素

    <picture><source media="(max-width: 400px)" srcset="images/1-320.jpg"><source media="(max-width: 599px)" srcset="images/1-480.jpg"><source media="(max-width: 799px)" srcset="images/1-640.jpg"><source media="(min-width: 800px)" srcset="images/1-800.jpg"><img src="1-800.jpg" alt="Chris standing up holding his daughter Elva"></picture>
  • <source>元素包含一个media属性,这一属性包含一个媒体条件——就像第一个srcset例子,这些条件来决定哪张图片会显示——第一个条件返回真,那么就会显示这张图片。在这种情况下,如果视窗的宽度为799px或更少,第一个<source>元素的图片就会显示。如果视窗的宽度是800px或更大,就显示第二张图片。
  • srcset属性包含要显示图片的路径。请注意,正如我们在<img>上面看到的那样,<source>可以使用引用多个图像的srcset属性,还有sizes属性。所以你可以通过一个 <picture>元素提供多个图片,不过也可以给每个图片提供多分辨率的图片。实际上,你可能不想经常做这样的事情。
  • 在任何情况下,你都必须在 </picture>之前正确提供一个<img>元素以及它的src和alt属性,否则不会有图片显示。当媒体条件都不返回真的时候(你可以在这个例子中删除第二个<source> 元素),它会提供图片;如果浏览器不支持 <picture>元素时,它可以作为后备方案。

大胆使用现代图像格式
有很多令人激动的新图像格式(例如WebP和JPEG-2000)可以在有高质量的同时有较低的文件大小。然而,浏览器对其的支持参差不齐。

让我们能继续满足老式浏览器的需要。你可以在type属性中提供MIME类型,这样浏览器就能立即拒绝其不支持的文件类型:

<picture><source type="image/svg+xml" srcset="pyramid.svg"><source type="image/webp" srcset="pyramid.webp"> <img src="pyramid.png" alt="regular pyramid built from four equilateral triangles">
</picture>

文档片段节

超链接除了可以链接到文档外,也可以链接到HTML文档的特定部分(被称为文档片段)。要做到这一点,你必须首先给要链接到的元素分配一个id属性。例如,如果你想链接到一个特定的标题,可以这样做:

<h2 id="Mailing_address">Mailing address</h2>

然后链接到那个特定的id,您可以在URL的结尾使用一个哈希符号(#)指向它,例如:

<p>Want to write us a letter? Use our 
<a href="contacts.html#Mailing_address">mailing address</a>.
</p>

你甚至可以在同一份文档下,仅通过ID,来链接到同一份文档的另一部分:

<p>The <a href="#Mailing_address">company mailing address</a> can be found at the bottom of this page.</p

在下载链接时使用 download 属性

当您链接到要下载的资源而不是在浏览器中打开时,您可以使用 download 属性来提供一个默认的保存文件名。下面是一个下载链接到Firefox 的 Windows最新版本的示例:

<a href="https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=en-US"download="firefox-latest-64bit-installer.exe">Download Latest Firefox for Windows (64-bit) (English, US)
</a>

你也可以链接相对路径,下载一个xls表格:

<a href="images/月度报表.xls" download="月度报表.xls">报表下载</a>

文档的基本组成部分

为了实现语义化标记,HTML 提供了明确这些区段的专用标签,例如:

<header>:页眉。
<nav>:导航栏。
<main>:主内容。主内容中还可以有各种子内容区段,可用<article>、<section> 和 <div> 等元素表示。
<aside>:侧边栏,经常嵌套在 <main> 中。
<footer>:页脚。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>二次元俱乐部</title><link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Sonsie+One" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=ZCOOL+KuaiLe" rel="stylesheet"><link href="style.css" rel="stylesheet"></head><body><header> <!-- 本站所有网页的统一主标题 --><h1>聆听电子天籁之音</h1></header><nav> <!-- 本站统一的导航栏 --><ul><li><a href="#">主页</a></li><!-- 共n个导航栏项目,省略…… --></ul><form> <!-- 搜索栏是站点内导航的一个非线性的方式。 --><input type="search" name="q" placeholder="要搜索的内容"><input type="submit" value="搜索"></form></nav><main> <!-- 网页主体内容 --><article><!-- 此处包含一个 article(一篇文章),内容略…… --></article><aside> <!-- 侧边栏在主内容右侧 --><h2>相关链接</h2><ul><li><a href="#">这是一个超链接</a></li><!-- 侧边栏有n个超链接,略略略…… --></ul></aside></main><footer> <!-- 本站所有网页的统一页脚 --><p>© 2050 某某保留所有权利</p></footer></body>
</html>

表格基础

<table> 表格
<caption> 为你的表格增加一个标题

添加 <thead>(头行),
<tfoot>(表尾通常用于对其它行的总结)
<tbody>(表数据)结构

<tr> table row 一行
<th> table head 表头
<td> table data 表数据

rowspan 属性 占用行数
colspan 属性 占用列数

    <h1>Table template</h1><table><caption>A summary of the UK's most famous punk bands</caption><thead><tr><th scope="col">Band</th><th scope="col">Year formed</th><th scope="col">No. of Albums</th><th scope="col">Most famous song</th></tr></thead><tbody><tr><th scope="row">Buzzcocks</th><td>1976</td><td>9</td><td>Ever fallen in love (with someone you shouldn't've)</td></tr><tr><th scope="row">The Clash</th><td>1976</td><td>6</td><td>London Calling</td></tr>             <!-- ... some rows removed for brevity -->      <tr><th scope="row">The Stranglers</th><td>1974</td><td>17</td><td>No More Heroes</td></tr></tbody><tfoot><tr><th scope="row" colspan="2">Total albums</th><td colspan="2">77</td></tr></tfoot></table>

表格CSS样式

html {font-family: sans-serif;
}
table {border-collapse: collapse;border: 2px solid rgb(200,200,200);letter-spacing: 1px;font-size: 0.8rem;
}
td, th {border: 1px solid rgb(190,190,190);padding: 10px 20px;
}
th {background-color: rgb(235,235,235);
}
td {text-align: center;
}
tr:nth-child(even) td {background-color: rgb(250,250,250);
}
tr:nth-child(odd) td {background-color: rgb(245,245,245);
}
caption {padding: 10px;
}

最终效果

Table template

A summary of the UK's most famous punk bands
BandYear formedNo. of AlbumsMost famous song
Buzzcocks19769Ever fallen in love (with someone you shouldn't've)
The Clash19766London Calling
The Stranglers197417No More Heroes
Total albums77

表格示例2

      <table><caption>Personal pronouns</caption><tr><td colspan="3">&nbsp;</td><th scope="col">Subject</th><th scope="col">Object</th></tr><tr><th rowspan="5" scope="rowgroup">Singular</th><th colspan="2" scope="row">1st Person</th><td>I</td><td>me</td></tr><tr><th colspan="2" scope="row">2nd Person</th><td>you</td><td>you</td></tr><tr><th rowspan="3" scope="rowgroup">3rd Person</th><th class="symbol" scope="row">♂</th><td>he</td><td>him</td></tr><tr><th class="symbol" scope="row">♀</th><td>she</td><td>her</td></tr><tr><th class="symbol" scope="row">o</th><td>it</td><td>it</td></tr><tr><th rowspan="3" scope="rowgroup">Plural</th><th colspan="2" scope="row">1st Person</th><td>we</td><td>we</td></tr><tr><th colspan="2" scope="row">2nd Person</th><td>you</td><td>you</td></tr><tr><th colspan="2" scope="row">3rd Person</th><td>they</td><td>they</td></tr></table>

最终效果:

Personal pronouns
 SubjectObject
Singular1st PersonIme
2nd Personyouyou
3rd Personhehim
sheher
oitit
Plural1st Personwewe
2nd Personyouyou
3rd Persontheythey

表单

<label> 可通过单击Label标签的文字以激活输入框\单选框等部件
示例:单击文字 E-mail或 I like会激活相应部件

<form action="#" method="get"><div><label for="mail">E-mail:</label><input type="email" id="mail" name="mail"></div><p><label for="taste_2">I like </label><input type="checkbox" id="taste_2" name="taste_banana" value="2"></p>
</form>

readonly 与 disabled 区别
readonly (用户不能修改输入值)
disabled (输入值永远不会与表单数据的其余部分一起发送)。
placeholder; 这是文本输入框中出现的文本,用来简略描述输入框的目的。

下拉分组
<optgroup> 内嵌套 <option>

<label for="">请选择</label>
<select id="groups" name="groups"><optgroup label="fruits"><option>Banana</option><option selected>Cherry</option><option>Lemon</option></optgroup><optgroup label="vegetables"><option>Carrot</option><option>Eggplant</option><option>Potato</option></optgroup>
</select>

输出:
在这里插入图片描述

表单检验

required属性,HTML5属性使字段变成必填
pattern 正则匹配,示例:
[^abc] — 匹配一个字符,但它不可以是a,b或c。[0-9]{5,7} — 匹配数字 五到七次,不能多或者少.
所有文本框 (<input> 或 <textarea>) 都可以使用minlength 和 maxlength 属性来限制长度
在数字条目中 (i.e. <input type=“number”>), 该 min 和 max 属性同样提供校验约束值大小

<form><label for="choose">Would you prefer a banana or a cherry?</label><input id="choose" name="i_like" required > 必填<input id="choose" name="i_like" required pattern="banana|cherry" > 请输入banana或cherry<input id="choose" name="i_like" required pattern="[0-9]{6,20}"> 请输入6-20个数字<input type="number" name="number" required min="100" max="1900">数字100-1900<input type="text" name="msg" required minlength="6", maxlength="8" >消息长度6-8<button>Submit</button>
</form>

伪类与伪元素

生成的内容与前::和::后 before 和 after 与content一起使用
:first-child 改变第一个元素样式
:last-child 最后一个元素
:only-child 唯一的元素
:hover- 指针悬停样式变化
:focus- 键盘控件聚焦时样式变化
:first-child:first-line 第一个元素的第一行

article p:last-child:first-line{color: green;
}
p::before{content: "欢迎使用新系统";
}
p::after{content: "下次再来";
}
<article><p class="first">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillomelon azuki bean garlic.</p>            <p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts </p>
</article>

伪类

选择描述
:active用户激活(例如单击)元素时匹配。
:any-link匹配链接的状态:link和:visited状态。
:blank匹配输入值为空的元素。
:checked匹配处于选定状态的单选按钮或复选框。
:current匹配当前显示的元素或元素的祖先。
:default匹配一组相似元素中的默认UI元素。
:dir根据其方向性(HTML dir属性或CSS direction属性的值)选择元素。
:disabled匹配处于禁用状态的用户界面元素。
:empty匹配除了可选的空格之外没有子元素的元素。
:enabled匹配处于启用状态的用户界面元素。
:first在Paged Media中,匹配第一页。
:first-child匹配其兄弟姐妹中的第一个元素。
:first-of-type匹配其兄弟姐妹中属于某种类型的元素。
:focus元素具有焦点时匹配。
:focus-visible当元素具有焦点并且焦点应该对用户可见时匹配。
:focus-within匹配具有焦点的元素以及具有焦点的后代的元素。
:future匹配当前元素之后的元素。
:hover当用户将鼠标悬停在元素上时匹配。
:indeterminate匹配其值处于不确定状态的UI元素,通常是复选框。
:in-range当值在范围内时,匹配具有范围的元素。
:invalid匹配处于无效状态的元素,例如an 。
:lang匹配基于语言的元素(HTML lang属性的值)。
:last-child匹配其兄弟姐妹中最后一个元素。
:last-of-type匹配其兄弟姐妹中最后一种元素。
:left在Paged Media中,匹配左侧页面。
:link匹配未访问的链接。
:local-link匹配指向与当前文档位于同一站点中的页面的链接。
:is()匹配传入的选择器列表中的任何选择器。
:not匹配与作为值传递给此选择器的选择器不匹配的内容。
:nth-child匹配兄弟姐妹列表中的元素 - 兄弟姐妹与形式为+ b的公式匹配(例如2n + 1将匹配元素1,3,5,7等等所有奇数的。)
:nth-of-type匹配特定类型的兄弟姐妹列表中的

元素(例如元素) - 兄弟姐妹通过形式为+ b的公式匹配(例如2n + 1将匹配该类型的元素,数字1,3,5, 7等所有奇数。)

:nth-last-child匹配兄弟姐妹列表中的元素,从末尾向后计数。兄弟姐妹用一个形式为+ b的公式匹配(例如2n + 1将匹配序列中的最后一个元素,然后是之前的两个元素,然后是之前的两个元素,等等。所有奇数,从末尾开始计算。)
:nth-last-of-type匹配来自特定类型(例如

元素)的兄弟列表中的元素,从末尾向后计数。兄弟姐妹用a + b形式的公式匹配(例如2n + 1将匹配序列中该类型的最后一个元素,然后是之前的两个元素,然后是之前的两个元素,等等。所有奇数,计数从最后。)

:only-child匹配没有兄弟姐妹的元素。
:only-of-type匹配一个元素,它是兄弟姐妹中唯一的一个元素。
:optional匹配表单不需要的元素。
:out-of-range当值超出范围时,匹配具有范围的元素。
:past匹配当前元素之前的元素。
:placeholder-shown匹配显示占位符文本的输入元素。
:playing匹配表示当该元素“正在播放”时能够“播放”或“暂停”的音频,视频或类似资源的元素。
:paused匹配表示当该元素“暂停”时能够“播放”或“暂停”的音频,视频或类似资源的元素。
:read-only如果元素不是用户可更改的,则匹配元素。
:read-write如果元素是用户可更改的,则匹配元素。
:required匹配表单所需的元素。
:right在Paged Media中,匹配右侧页面。
:root匹配作为文档根目录的元素。
:scope匹配作为范围元素的任何元素。
:valid匹配处于有效状态的元素(如元素)。
:target如果元素是当前URL的目标(即,如果它具有与当前URL片段匹配的ID ),则匹配该元素。
:visited匹配访问过的链接。

伪元素

选择描述
::after匹配在原始元素的实际内容之后出现的可设置样式元素。
::before匹配在原始元素的实际内容之前出现的可设置样式元素。
::first-letter匹配元素的第一个字母。
::first-line匹配包含元素的第一行。
::grammar-error匹配包含语法错误的文档的一部分,如浏览器标记的那样。
::selection匹配已选择的文档部分。
::spelling-error匹配包含由浏览器标记的拼写错误的文档的一部分。

CSS表格布局

HTML表格对于显示表格数据是很好的,但是很多年前——在浏览器中支持基本的CSS之前——web开发人员过去也常常使用表格来完成整个网页布局——将它们的页眉、页脚、不同的列等等放在不同的表行和列中。这在当时是有效的,但它有很多问题——表布局是不灵活的,繁重的标记,难以调试和语义上的错误(比如,屏幕阅读器用户在导航表布局方面有问题)。

CSS表格的存在是为了让您能够像表格一样布局元素,而不需要上面描述的任何问题——这听起来可能有些奇怪,您应该使用表格元素作为表格数据,但有时这可能是有用的。例如,您可能想要列出一个表单,其中有标签和文本输入;这可能很棘手,但是CSS表使其变得容易。

让我们来看一个例子。首先,创建HTML表单的一些简单标记。每个输入元素都有一个标签,我们还在一个段落中包含了一个标题。为了进行布局,每个标签/输入对都封装在<div>中。

<form><p>First of all, tell us your name and age.</p><div><label for="fname">First name:</label><input type="text" id="fname"></div><div><label for="lname">Last name:</label><input type="text" id="lname"></div><div><label for="email">Email:</label><input type="text" id="email"></div>
</form>
html {font-family: sans-serif;
}form {display: table;margin: 0 auto;
}form div {display: table-row;
}form label, form input {display: table-cell;margin-bottom: 10px;
}form label {width: 200px;padding-right: 5%;text-align: right;
}form input {width: 300px;
}form p {display: table-caption;caption-side: bottom;width: 300px;color: #999;font-style: italic;
}

效果:
在这里插入图片描述

弹性盒子

设置 display 给 <section>(变成了 flex 容器)
flex-wrap: wrap; 现在我们有了多行 弹性盒子— 任何溢出的元素将被移到下一行
flex: 200px; 在 article 元素上设置的 flex: 200px 规则,意味着每个元素的宽度至少是200px;


article {padding: 10px;margin: 10px;background: aqua;flex: 200px;
}
section{display: flex;flex-wrap: wrap;
}
<header><h1>Sample flexbox example</h1></header>  
<section><article><h2>First article</h2><p>Tacos actually microdosing.</p></article><article><h2>First article</h2><p>Tacos actually microdosing.</p></article><article><h2>First article</h2><p>Tacos actually microdosing.</p></article><article><h2>First article</h2><p>Tacos actually microdosing.</p></article><article><h2>First article</h2><p>Tacos actually microdosing.</p></article><article><h2>First article</h2><p>Tacos actually microdosing.</p></article>  
</section>

效果:
在这里插入图片描述
在这里插入图片描述

这篇关于Mozilla 笔记- HTML5构建网站的基本元素有哪些?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645580

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识