什么是CSS指定文档语言内的目标媒体?
CSS(Cascading Style Sheets)是一种用来为HTML或XML等文档添加样式的语言。在网页制作过程中,经常用到的就是在CSS中指定不同的样式来适配多种设备和媒体类型。
指定文档语言内的目标媒体,就是在CSS中设置不同媒体类型下的不同样式表达方式,以便网站能够在不同媒体类型的设备或环境下有不同的呈现效果。
如何使用CSS指定文档语言内的目标媒体?
1. 使用media属性
在CSS中,我们可以使用media属性来指定当前的样式表适用于哪些媒体类型。
@media screen {
/* 在这里设置对于屏幕显示器的样式 */
}
@media print {
/* 在这里设置对于打印样式的设置*/
}
上面的代码中,我们使用@media属性来指定当前的样式表适用于屏幕显示器和打印样式两种媒体类型。我们可以在不同的@media{}块中来写出适用于不同媒体类型的样式。
缺点:使用media属性指定样式表适用于哪些媒体类型时,我们一次只能指定一种媒体类型。这就使得我们必须分别编写多个适用于不同媒体类型的样式文件,造成代码冗余,增加代码维护难度。
2. 使用link元素的media属性
与上文介绍的使用media属性技巧类似,我们还可以在HTML文件中使用link元素的media属性,指定不同的样式表应用于不同的媒体类型。
<link rel="stylesheet" media="(max-width: 800px)" href="smaller.css">
<link rel="stylesheet" media="(min-width: 800px)" href="bigger.css">
在上面的代码中,我们使用了小括号来指定媒体查询条件,类似@media{}中用于指定媒体类型。如果当前设备满足给定条件,则使用href属性引用的样式表。
缺点:是每加载一个链接就相当于各自会加载一个样式表,增加了HTTP请求数量,因此降低了性能。同时,还能使页面的CSS显得更加复杂。
3. 原生CSS函数
CSS中的存在一些原生函数,可以通过函数来指定不同的媒体类型下的样式表。
@import url('example.css') screen and (max-width: 600px);
在上面的代码中,我们使用了import语句将名为example.css的样式表导入到当前样式表中。同时,还使用了screen and (max-width: 600px)媒体查询条件,来指定导入的样式表只适用于屏幕宽度小于等于600像素的媒体设备。
缺点:因为需要从外部引用样式表,所以任何使它不可用的因素都会影响页面的样式。
小结
指定文档语言内的目标媒体是一个让我们能够在不同媒体类型的设备或环境下有不同的呈现效果的技术。我们可以通过使用media属性、link元素的media属性或者原生CSS函数达到这个目的,以满足不同媒体类型的需求。