什么是viewport?

本文介绍了移动端浏览器的视口概念及其配置方法,包括如何通过设置视口宽度和默认缩放比实现页面自适应,以及如何限制用户的手动缩放等功能。
  1.什么是viewport?
        仅在移动端(触屏设备)才有viewport 视觉窗口
        用来承载网页的虚拟区域,它缩放功能。


        2.viewport还有什么功能?
        默认的缩放比  在移动端加载完成之后的默认的缩放比例
        是否运行用户自行缩放   用户能不能自己通过手指手势来缩放网页
        允许最大缩放比例
        允许最小缩放比例
        可以设置自己的宽度和高度 viewport的宽度设置(一般默认的宽度是980px)


        3.viewport怎么样设置?
        在head中设置 meta  标签 并且有个属性  name="viewport"
        **注意**最好写在字符编码申明之后,由于网页加载顺序是从上往下,优先让网页知道这是一个移动端特有的设置


        content 属性是用来设置功能


        width               视口宽度  (px 特殊的值  device-width 当前设备的宽度)
        initial-scale       视口的默认缩放比
        user-scalable       视口是否运行用户自行缩放  (0,1 no,yes)


        maximum-scale       允许用户最大缩放比
        minimum-scale       允许用户最小缩放比
        height              视口高度


        4.怎么利用视口做到自适应(移动端适配)?
            1.设置视口的宽度和设备的宽度一样宽  就可以达到适配
            2.设置视口的默认缩放比和pc端一致 1.0 的比例  就可以达到适配


            但是一般在移动的设置  即会设置视口宽度也会设置默认缩放比  保证适配正确


            移动端视频其他要求
            1.不允许用户缩放
            2.不允许有最大的缩放和最小缩放


            视口标准设置
             <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0"/>
在WPF中,`Viewport` 是 `TileBrush` 类的一个属性,用于定义画刷的输出区域,它与 `Viewbox`(定义内容区域)和 `TileMode`(定义平铺模式)共同决定了画刷如何在目标区域内进行绘制。`VisualBrush` 是 `TileBrush` 的一个子类,下面以 `VisualBrush` 为例来介绍 `Viewport` 的原理及设置方法。 ### 原理 `Viewport` 指定了画刷在目标区域内的输出范围,它定义了一个矩形,这个矩形的大小和位置决定了画刷内容如何平铺显示。`Viewport` 的坐标系统可以由 `ViewportUnits` 属性控制,有两种取值: - `Absolute`:表示 `Viewport` 的值使用固定的像素单位。 - `RelativeToBoundingBox`:表示 `Viewport` 的值是相对于目标区域的百分比,取值范围为 0 到 1。 `TileMode` 属性决定了画刷内容如何在目标区域内重复显示,常用的取值有 `Tile`(平铺)、`FlipX`(水平翻转平铺)、`FlipY`(垂直翻转平铺)等。 ### 设置方法 以下是一个使用 `VisualBrush` 设置 `Viewport` 的示例代码: ```xml <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="450" Width="800"> <Canvas> <Canvas.Background> <VisualBrush TileMode="Tile" Viewport="0,0,0.5,0.5" ViewportUnits="RelativeToBoundingBox"> <VisualBrush.Visual> <Rectangle Width="100" Height="100" Fill="Blue"/> </VisualBrush.Visual> </VisualBrush> </Canvas.Background> </Canvas> </Window> ``` 在上述代码中,`VisualBrush` 的 `Viewport` 属性设置为 `0,0,0.5,0.5`,`ViewportUnits` 设置为 `RelativeToBoundingBox`,表示输出区域是目标区域的一半大小。`TileMode` 设置为 `Tile`,表示画刷内容会在目标区域内平铺显示。 ### 注意事项 - 当 `ViewportUnits` 设置为 `Absolute` 时,`Viewport` 的值表示像素单位,需要根据实际情况进行调整。 - 如果 `Viewport` 的大小小于目标区域,画刷内容会根据 `TileMode` 进行平铺显示;如果 `Viewport` 的大小大于目标区域,画刷内容会被裁剪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值