Python 布局:屏幕适配以及rem

简介: Python 布局:屏幕适配以及rem

一、视口



  • 1.1、视口的概念
    视口 是移动设备上用来显示网页的区域,一般会比移动设备可视区域大,宽度可能是980px或者1024px,目的是为了显示下整个为PC端设计的网页,这样带来的后果是移动端会出现横向滚动条,为了避免这种情况,移动端会将视口缩放到移动端窗口的大小。这样会让网页不容易观看,可以用 meta 标签,name=“viewport ” 来设置视口的大小,将视口的大小设置为和移动设备可视区一样的大小。
  • 1.2、视口设置方法如下( 快捷方式:meta:vp + tab ):


image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- 视口的设置:meta:vp + Tab 键 产生下面的代码 ,如果网页想在移动端显示要加上这句话,网页端会自动略过这句话,只针对移动端
      viewport:视口的意思
      width=device-width:让视口的宽度等于设备的宽度
      user-scalable=no:不允许用户自动缩放
      initial-scale=1.0:初始放缩等于 1.0
      maximum-scale=1.0:最大放缩也等于 1.0
      minimum-scale=1.0 最小放缩也等于 1.0  三个缩放都要写的原因是兼容不同的浏览器
     -->
    <meta name="viewport"
    content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>视口-屏幕适配</title>
    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            background-color: gold;
         }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>


提示:视口的设置:meta:vp + Tab 键 产生下面的代码 ,如果网页想在移动端显示要加上这句话,网页端会自动略过这句话,只针对移动端


  • 1.3、pc端与移动端渲染网页过程:


image.png


二、视网膜屏幕(retina屏幕)清晰度解决方案



  • 2.1、视网膜屏幕指的是屏幕的物理像素密度更高的屏幕,物理像素可以理解为屏幕上的一个发光点,无数发光的点组成的屏幕,视网膜屏幕比一般屏幕的物理像素点更小,常见有2倍的视网膜屏幕和3倍的视网膜屏幕,2倍的视网膜屏幕,它的物理像素点大小是一般屏幕的1/4,3倍的视网膜屏幕,它的物理像素点大小是一般屏幕的1/9。图像在视网膜屏幕上显示的大小和在一般屏幕上显示的大小一样,但是由于视网膜屏幕的物理像素点比一般的屏幕小,图像在上面好像是被放大了,图像会变得模糊,为了解决这个问题,可以使用比原来大一倍的图像,然后用css样式强制把图像的尺寸设为原来图像尺寸的大小,就可以解决模糊的问题。
  • 2.2、清晰度解决过程示意图


image.png

image.png


上图是采用 CSS样式强制改变 图片的尺寸


三、background 新属性 (background-size:)



  • 3.1、background-size:的值
  • length:用长度值指定背景图像大小。不允许负值。
  • percentage:用百分比指定背景图像大小。不允许负值。
  • auto:背景图像的真实大小。
  • cover:将背景图像等比缩放到完全覆盖容器,背景图像有可能超出容器。
  • contain:将背景图像等比缩放到宽度或高度与容器的宽度或高度相等,背景图像始终被包含在容器内。
  • 3.2、举例


<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>background 新属性</title>
   <style type="text/css">
        .box{
           width: 200px;
           height: 200px;
           border: 2px solid #000;
           margin: 50px auto 0;
           background: url("images/apple.png") no-repeat;
           background-size: 200px 200px;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

提示:上面的:background-size: 200px 200px; 可以换为background-size: 100% 100%background-size: auto;background-size: cover;background-size: contain;


四、适配布局类型



  • 4.1、适配布局类型介绍:设备屏幕有多种不同的分辨率,页面适配方案有如下几种:
  • 1、全适配:响应式布局+流体布局
  • 2、移动端适配:
  • 流体布局+少量响应式
  • 基于rem的布局
  • 4.2、流体布局:就是使用百分比来设置元素的宽度,元素的高度按实际高度写固定值,流体布局中,元素的边线无法用百分比,可以使用样式中的计算函数 calc() 来设置宽度,或者使用 box-sizing 属性将盒子设置为从边线计算盒子尺寸。
  • calc() :可以通过计算的方式给元素加尺寸,比如: width:calc(25% - 4px);
  • box-sizing
  • 1、content-box 默认的盒子尺寸计算方式
  • 2、border-box 置盒子的尺寸计算方式为从边框开始,盒子的尺寸,边框和内填充算在盒子尺寸内
  • 4.3、响应式布局:响应式布局就是使用媒体查询的方式,通过查询浏览器宽度,不同的宽度应用不同的样式块,每个样式块对应的是该宽度下的布局方式,从而实现响应式布局。响应式布局的页面可以适配多种终端屏幕(pc、平板、手机)。相应布局的伪代码如下:写在样式里面


@media (max-width:960px){
     .left_con{width:58%;}
     .right_con{width:38%;}
}
@media (max-width:768px){
     .left_con{width:100%;}
     .right_con{width:100%;}
}


五、基于 rem 的布局


  • 5.1、em单位与rem单位的介绍
    em 单位是参照元素自身的文字大小来设置尺寸,rem指的是参照根节点的文字大小,根节点指的是 html标签,设置html标签的文字大小,其他的元素相关尺寸设置用rem,这样,所有元素都有了统一的参照标准,改变html文字的大小,就会改变所有元素用rem设置的尺寸大小。如下例子:



image.png


image.png

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>em单位</title>
   <style type="text/css">
      .box1{
           font-size: 12px;
           width: 20em;
           height: 10em;
           background-color: gold;
       }
       .box2{
           font-size: 20px;
           width: 20em;
           height: 10em;
           background-color: green;
       }
       p{
           font-size: 20px;
           text-indent: 2em;
       }
    </style>
</head>
<body>
    <div class="box1"> </div>
    <br>
    <br>
    <div class="box2"> </div>
    <p>首先了解em单位,em单位是参照元素自身的文字大小来设置尺寸,rem指的是参照根节点的文字大小,根
节点指的是html标签,设置html标签的文字大小,其他的元素相关尺寸设置用rem,
这样,所有元素都有了统一的参照标准,改变html文字的大小,就会改变所有元素用rem设置的尺寸大小。</p>
</body>
</html>


提示:em是根据  font-size 变化的,例如:如果:font-size: 20px;,那么 1em 就是 20px


  • rem 使用的一个例子,如下


image.png

<!DOCTYPE html>
   <html lang="en" style="font-size: 20px">
   <head>
      <meta charset="UTF-8">
      <title>rem单位</title>
      <style type="text/css">
         .box1{
             font-size: 12px;
             width: 20rem;
             height: 10rem;
             background-color: gold;
          }
          .box2{
             font-size: 20px;
             width: 20rem;
             height: 10rem;
             background-color: green;
           }
       </style>
   </head>
   <body>
       <div class="box1">我是12px大小</div>
       <br>
       <br>
       <div class="box2">我是20px大小</div>
   </body>
   </html>


提示:<html lang="en" style="font-size: 20px"> 中的font-size大小发生改变,其他一rem为单位的尺寸都会发生改变   ,1rem=font-size:的大小


  • cssrem 插件的安装:可以动态地将px尺寸换算成rem尺寸,进入packages目录:Sublime Text -> Preferences -> Browse Packages... 复制下载的cssrem目录到刚才的packges目录里。 重启Sublime Text。配置参数 参数配置文件:Sublime Text -> Preferences -> Package Settings -> cssrem px_to_rem - px转rem的单位比例,默认为40。 max_rem_fraction_length - px转rem的小数部分的最大长度。默认为6。 available_file_types - 启用此插件的文件类型。默认为:[".css", ".less", ".sass"]
目录
相关文章
|
1月前
|
Python
python图形页面:组件布局grid方法
python图形页面:组件布局grid方法
|
Python
Python高级进阶#009 pyqt5中窗体的绝对布局和相对布局
Python高级进阶#009 pyqt5中窗体的绝对布局和相对布局
10064 2
|
自然语言处理 Python 容器
Python|GUI编程中组件的布局
Python|GUI编程中组件的布局
281 0
|
Python 容器
Python Tkinter教程(三)——三种几何布局管理器Pack、Place和Grid的所有参数及相关方法及详细用法
Python Tkinter教程(三)——三种几何布局管理器Pack、Place和Grid的所有参数及相关方法及详细用法
279 0
|
编解码 Python
Python高级进阶#008 pyqt5窗体居中和布局
Python高级进阶#008 pyqt5窗体居中和布局
253 0
|
IDE 测试技术 开发工具
Python 应用程序布局:参考
Python 应用程序布局:参考
|
前端开发 Python
Python HTML和CSS 9:定位布局
Python HTML和CSS 9:定位布局
112 0
Python HTML和CSS 9:定位布局
|
前端开发 Python
Python HTML和CSS 8:浮动布局
Python HTML和CSS 8:浮动布局
182 0
Python HTML和CSS 8:浮动布局
|
存储 前端开发 数据安全/隐私保护
Python HTML和CSS 2:表格、传统布局以及表单 介绍
Python HTML和CSS 2:表格、传统布局以及表单 介绍
371 0
Python HTML和CSS 2:表格、传统布局以及表单 介绍
|
Python
Qt for Python的4种基础布局管理
Qt for Python的4种基础布局管理
203 0
Qt for Python的4种基础布局管理