所属分类:web前端开发
我们可以通过使用我们所称之为“视口”宽度来确定正在使用的设备。
在计算机图形学中,视口通常指的是用户当前正在查看的多边形(通常是矩形)区域。当我们在Web浏览器中谈论视口时,通常指的是一个窗口,在该窗口中内容可见,用户无法查看窗口外的内容。
基本上有两种类型的视口。
浏览器在其上绘制整个网页的固定视口称为布局视口。
根据缩放或任何其他原因当前可见的布局视口部分称为视觉视口。
它基本上指的是设备的物理宽度和高度。有许多具有不同屏幕尺寸的设备;根据屏幕尺寸,用户与网页的交互方式也会发生变化。因此,屏幕尺寸与视口宽度之间有什么关系。
无论使用哪种设备,用户都更习惯于垂直滚动,这就是为什么我们使用视口的宽度来对设备进行分类,因为布局视口可以拥有的最大宽度受设备物理约束。宽度。
在这一点上,我们知道什么是“视口”,以及它们与屏幕尺寸的关系。如果我们想要一个响应式的网页,在特定宽度后更改样式,我们必须使用meta视口标签设置视口。
此标记告诉浏览器如何控制页面的大小和缩放。元视口值 width=device-width 通知页面调整其宽度(以设备无关像素为单位)以匹配屏幕宽度。
页面可以通过添加值initial-scale=1来利用整个横向宽度,这指示浏览器在CSS像素和设备独立像素之间建立1:1的关系,而不管设备方向如何。
下面是使用设备宽度和初始缩放比例1设置视口的示例。
<!DOCTYPE html> <html lang="en"> <head> <title>Example of Viewport</title> </head> <body> <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Atque earum in iste non animi itaque debitis sint! Repellat vero aliquid ullam. Aliquid voluptates recusandae praesentium numquam reiciendis, ullam aliquam nostrum! </p> </body> </html>
我们知道可以使用视口宽度来触发样式更改,现在我们将讨论CSS中的媒体查询。您可以使用媒体查询根据设备的整体类型(例如打印与屏幕)或其他详细信息(如屏幕分辨率或浏览器视口宽度)应用CSS样式。我们使用媒体查询来完成以下任务 −
有条件地应用样式。
当我们需要针对任何特定形式的媒体
或者当我们想要测试或必须监控媒体状态时
要使用媒体查询,我们必须指定我们的目标媒体类型和我们的目标功能。我们还可以利用逻辑运算符来创建非常复杂的媒体查询。我们还可以使用 not 来反转媒体查询的含义,这在某些情况下非常方便。让我们看一个媒体查询的示例。
@media print { color: black; font-size: larger; }
上述媒体查询将仅应用于打印类型的媒体,并将颜色更改为黑色并增加字体大小。
下面给出了复杂媒体查询的示例。
@media (min-width: 30em) and (orientation: landscape) {Color: black; Font-size: larger; }
上述查询适用于至少30em大小且为横向方向的媒体。
媒体规则 −
我们指定媒体类型和媒体特征的部分通常称为媒体规则。
下面列出了媒体规则中可以使用的各种逻辑运算符 -
不是
还有
或者
下面给出了使用媒体查询解决当前问题的示例代码。
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style> body { background-color: rgb(223, 241, 223); font-size: 20px; } @media only screen and (max-width: 750px) { body { background-color: aliceblue; } } </style> </head> <body> <h1>Example of media query to change background color</h1> <p>Please resize the browser window to see a change in background color. </p> </body> </html>
总而言之,通过使用 CSS 中的媒体查询,您可以更改特定更宽视口上的背景颜色。您只需指定视口的宽度并在代码中使用它来为特定视口大小设置不同的背景颜色。这将使您能够为每种设备类型和屏幕尺寸创建优化的网站设计,这对于提供出色的用户体验至关重要。