HTML5的媒体查询用多了好么?

html-css010

HTML5的媒体查询用多了好么?,第1张

关键的地方用用,能不用就不用,用多了代码冗余,非常不好维护,如果大面积用,相当于一个模块就有多了几倍的代码,如果页面数据量大,很影响性能的。

如果产品更注重性能和速度,还是需要放弃一些更完美的视觉体验的。

一、HTML的开发工具和使用的浏览器

开发工具:记事本等文本编辑器,Atom、VisualStudioCode( VSCode)、Brackets、Sublime text和Hbuider。

浏览器:Chrome、Firefox、IE、Safari、IPhone、Android。

二、HTML的基本要素

DOCTYPE  描述文档的类型

html     网页的根元素,写在网页的在外面

head    网页的头部信息,写在html标记的里面

body    网页的内容,写在html标记的里面

具体描述:

1、DOCTYPE  描述文档的类型,规定web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

网页可以使用的具体版本,网页中可以使用那些标记,每个版本的DTD版本均有不同

使用例子

HTML4的例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

HTML5的例子

2、<html></html> 网页文档中的根标记

html 标签有三个特殊的属性

manifest   指定网页缓存文件,可以让用户离线的时候也可以访问文件。

xmlns   设置html名空间,比如把网页设置成xhml的时候可以使用这个值。

lang   设置网页的描述语言,比如中文是zh;英文是en。

3、<head></head>头部标签在网页中只能有一个,设置HTML文档的头部信息,里面内容不会在页面中显示出来·。

head里面的标记

<meta>标记

<title>定义网页的标题

<link>链接

<script>  标记JavaScript脚本的内容

<style>  标记css样式

meta  标记

4、<body></body>只能有一个,显示网页的主体内容。

代码示例:

请点击输入图片描述

1 <!DOCTYPE html>2 <html lang="en">3 <head>4     <meta charset="UTF-8">5     <title>网页标题(显示在浏览器上)</title>6     <meta name="description" content="网页内容的简单描述">7     <meta name="keywords" content="网页关键词">8     <link rel="/css/style.css">9     <script src="/js/script.js"></script>10 </head>11 <body>12     <header>网页头部内容</header>13     <main>网页主要内容</main>14     <nav>网页的导航内容</nav>15     <footer>网页的页脚内容</footer>16 </body>17 </html>

请点击输入图片描述

请点击输入图片描述

三、写在<head>中的标签

(一)、<meta>标签

<meta>元素的属性:

name 描述信息的名称,来标记这是一个什么样的信息

http-equiv  描述行为

content  描述的内容

charset   指定网页的编码

1、name 属性

1 <meta name="author" content="nyw">2     <!--作者, 定义网页的作者 -->3 <meta name="description" content="meta标记学习">4     <!-- 描述,描述网页的实际内容 -->5 <meta name="keywords" content="HTML,meta">6     <!-- 关键字,定义网页关键字 -->

2、http-equiv属性

1 <meta http-equiv="refresh" content="30">2     <!-- 网页30s后自动刷新 -->3 <meta http-equiv="refresh" content="5,url=dom.html">4     <!-- 网页30秒后跳转到dom.html文档 -->

<meta http-equiv="refresh" content="5,url=dom.html">

http-equiv描述网页的行为,行为 refresh刷新,内容为5,表示5秒后跳转到 dom.html这个文档。

3、content 属性

特殊属性

content-type   指定http头部信息的文字编码(最为常用)

default-style   指定优先使用的样式单(stylesheet)

refresh    用于网页的自动刷新或是页面跳转

set-cookie   设置页面的cookie(现在已经不再推荐使用)

4、charset属性

指定网页的编码,推荐使用UTF-8来增加网页的兼容性。

代码实例:

为搜索引擎抓取机器人准备一些信息

这段代码可以禁止搜索引擎缓存和跟踪网页。

<meta name="robots" content="noindex,nofollow">

   <!-- name定义的是机器人,内容部分表示不要被搜索引擎缓存,也不要被搜索引擎跟踪 -->

代码实例:

请点击输入图片描述

1 <!DOCTYPE html>2 <html lang="en">3 <head>4     <meta charset="UTF-8">5     <title>网页标题(显示在浏览器上)</title>6     <meta name="author" content="nyw">7     <!--作者, 定义网页的作者 -->8     <meta name="description" content="meta标记学习">9     <!-- 描述,描述网页的实际内容 -->10     <meta name="keywords" content="HTML,meta">11     <!-- 关键字,定义网页关键字 -->12     <meta http-equiv="refresh" content="30">13     <!-- 网页30s后自动刷新 -->14     <meta http-equiv="refresh" content="5,url=dom.html">15     <!-- 网页30秒后跳转到dom.html文档 -->16     <meta name="robots" content="noindex,nofollow">17     <!-- name定义的是机器人,内容部分表示不要被搜索引擎缓存,也不要被搜索引擎跟踪 -->18 </head>19 <body>20 </body>21 </html>

请点击输入图片描述

(二)、title、base标记

title和base标记都是写在head标签中

title:设置网页的标题

写法:<title>内容</title>。

base:指定网页跳转基准URL,如果不指定的话默认为当前网站的当前路径。

写法:<base href="http://www.aaa.zzz/">

base属性值:

href  指定网页跳转到基准URL,如果不指定的话则默认为当前网站的当前路径。

<base href="http://baidu.com/">  这是将页面跳转到百度的网站打开。

target  指定链接的跳转帧如果不指定的话,则是在当前页面中跳转。

<base target="_blank"> 网页中的链接都应该在新的窗口中打开。

terget属性值:

_blank  在新窗口中打开被链接的文档

_self   默认值,在相同框架中打开被链接的文档

_parent   在父框架集中

_top   在整个窗口中打开被链接文档·

framename   在指定框架中打开被链接文档

(三)、link标记

link标记:链接外部文件时使用的标记,可以把外部文件的内容引入到当前文件中来,使当前网页实现更多的功能。

link属性:

href:指定链接外部路径的路径和文件名,要设置全路径并且带文件名

rel:引用文件,引用资源的类型定义

我们在使用link标签引用外部文件的时候,外部文件的类型是多种多样的。

alternate   代替文档(种子,其他语言版本,其他格式等等)

author   网页的作者

help  帮助文件的链接

icon  网页的图标

next  如果是连续网页的时候,指定下一个网页

prefetch   把链接外部资源时提前缓存起来。

prev   如果是连续网页

media  链接文件或是资源属于哪一种资源。

hreflang   链接文件的语言种类

type  链接文件的mi/me类型(比如说,图片图标文本)

sizes  根据link链接文件的类型,来指定文件的大小

代码示例:

链接网页图标:

网站的图标指定,可以显示在浏览器的图标栏,也可以被手机读取作为网站的图标存入收藏夹

1 <!-- 网站的图标指定,可以显示在浏览器的图标栏,也可以被手机读取作为网站的图标存入收藏夹 -->2     <link rel="icon">3     <!-- 示例 -->4     <link rel="icon" href="img/favicon.png" type="image/png">5     <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">6     <link rel="apple-touch-icon" href="img/apple-touch-icon.png" type="image/png">

注意:后面的href和前面type标注的类型要一致,这样既可以显示在浏览器,又可以显示在手机上

链接外部样式单

1 <link rel="stylesheet">2     <link rel="stylesheet" href="style1.css" media="screen">3     <link rel="stylesheet" href="style2.css" title="主题样式文件">4     <link rel=" alternate stylesheet" href="style3.css" title="可选样式单">

说明:

alternate 会在浏览器中会弹出一个对话框,供用户可以进行选择

media  表示媒体类型为屏幕,可以是手机,但不包括打印机和投影仪

title  对这个link进行简单的说明

网站RSS种子指定

<!-- 网站RSS种子指定 -->

   <link rel="alternate" type="application/rss+xml">

为搜索引擎的准备的网页的URL

<!-- 为搜索引擎的准备的网页的URL -->

   <link rel="canonical">

   <link rel="canonical" href="http://www.aaa.zzz/help.html">

媒体查询从 CSS 版本 2 开始,就可以通过媒体类型在 CSS 中获得媒体支持。如果曾经使用过打印样式表,那么您可能已经使用过媒体类型。清单 1 展示了一个示例。清单 1. 使用媒体类型<link rel="stylesheet" type="text/css" href="site.css" media="screen" /><link rel="stylesheet" type="text/css" href="print.css" media="print" />在清单 1 中,media 属性定义了应该用于指定每种媒体类型的样式表:screen 适用于计算机彩色屏幕。print 适用于打印预览模式下查看的内容或者打印机打印的内容。作为 CSS v3 规范的一部分,可以扩展媒体类型函数,并允许在样式表中使用更精确的显示规则。媒体查询 是评估 True 或 False 的一种表达。如果为 True,则继续使用样式表。如果为 False,则不能使用样式表。这种简单逻辑通过表达式变得更加强大,使您能够更灵活地对特定的设计场景使用自定义的显示规则。媒体查询包含一个媒体类型,后跟一个或多个检查特定条件(如最小的屏幕宽度)的表达式。样式表中的媒体查询看起来如清单 2 中的示例所示。清单 2. 媒体查询规则@media all and (min-width: 800px) { ... }根据清单 2 中的标记,所有最小水平屏幕宽度为 800 像素的屏幕(屏幕和打印等)都应使用如下 CSS 规则。该规则在示例中省略号所在的地方。对于该媒体查询:@media all 是媒体类型,也就是说,将此 CSS 应用于所有媒体类型。(min-width:800px) 是包含媒体查询的表达式,如果浏览器的最小宽度为 800 像素,则会告诉浏览器只运用下列 CSS。