页面布局

浅谈响应式Web设计与实现思路

社会主义新天地 提交于 2019-12-03 13:08:37
是否还在为你的应用程序适配PC端,移动端,平板而苦苦思索呢,是否在寻找如何一套代码适配多终端方式呢,是否希望快速上手实现你的跨终端应用程序呢,是的话,那就看过来吧,本文阐述响应式UI设计相关理论基础,包括:屏幕尺寸,物理,设备独立,CSS像素,dpr,视口等相关概念,还有响应式设计基础,常见设计模式,及响应式UI实现基本思路,希望能加深对响应式的理解和实践思路。 欢迎访问我的个人博客 响应式(Responsive) 响应式是什么呢?顾名思义,响应式,肯定会自动响应,响应什么?应用程序是在终端屏幕窗口中展示给用户,被用户访问的,那么就是响应屏幕的变化,不同终端屏幕尺寸大小不一致,需要针对不同尺寸屏幕进行不同的展示响应。 响应式(Responsive web design, RWD) ,是指一套应用程序用户界面(User Interface)能自动响应不同设备窗口或屏幕尺寸(screen size)并且内容,布局渲染表现良好。 自适应(Adaptive) 在响应式设计(RWD)之外,还有一种适配多设备屏幕的方式, 自适应设计(Adaptive web design, AWD) 。 自适应设计(AWD),是指一个应用程序使用多版本用户界面,针对不同设备屏幕,服务器端返回不同版本用户界面,供用户访问。 自适应vs响应式 自适应和响应式设计的不同主要概括如下: 自适应是多套用户界面

移动端页面适配———多方案解析

久未见 提交于 2019-12-03 10:28:07
移动端页面适配———多方案解析 在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一款的新机型。对于移动端适配,不同的公司、不同的团队有不同的解决方案。我在项目中也用了一部分解决方案,也看到了一些解决方案,对比下,总结一些自己的理解,希望对各位有帮助,找到最适合你们项目的适配方案。 下面是一些基础概念的讲解,帮助理解各种适配方案实现。 像素: 1、物理像素(设备像素) 屏幕的物理像素,又被称为设备像素,他是显示设备中一个最微小的物理部件。任何设备屏幕的物理像素出厂时就确定了,且固定不变的。 2、设备独立像素 设备独立像素也称为密度无关像素,可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如说CSS像素),然后由相关系统转换为物理像素。 3、设备像素比 设备像素比简称为dpr,其定义了物理像素和设备独立像素的对应关系 设备像素比 = 物理像素 / 设备独立像素 以iphone6为例: iphone6的设备宽和高为375pt * 667pt,可以理解为设备的独立像素,而其设备像素比为2.固有设备像素为750pt * 1334pt 通过:window.devicePixelRatio获得。 设备像素比是区别是否是高清屏的标准,dpr大于1时就为高清屏,一般情况下dpr为整数

浏览器解析URL的过程

你离开我真会死。 提交于 2019-12-03 10:18:04
一、浏览器简介 浏览器是使用最广泛的软件之一,主要功能是向服务器发出请求,在浏览器窗口中展示用户需要的网络资源。资源的位置由用户的的URI(Uniform Resource Identifier统一资源标识符)来指定,通过DNS查询,将网址转换为IP地址。资源的格式通常是HTML,也包括PDF、image及其他格式。整个浏览器工作的流程,主要如下: 用户输入网址——浏览器查找IP地址——发送HTTP请求——服务器处理请求并响应——服务器发回HTML响应——浏览器开始解析HTML——浏览器发送请求获取HTML中内嵌的对象,如CSS/JS/图片等资源——浏览器展示完整页面 本次介绍的主要就是浏览器从接收到服务器响应的HTML到展示完整页面的整个过程,下面开始—— 二、 浏览器渲染流程 先来一张浏览器渲染流程图 从这张经典的图中可以看出以下几点: 1,浏览器可以解析的资源,HTML,SVG,XHTML等,解析完会生成DOM Tree。 2,CSS资源会解析成CSS Rule Tree。 3,JS通过DOM API和CSSOM API来操作DOM树和CSS树。 4,解析完成后综合DOM树和CSS树会生成Rendering Tree,计算每个元素(Frame)的位置,这个过程就是layout或者叫reflow过程。 5,调用操作系统Native GUI的API绘制。 注意

一个页面布局的坑

匿名 (未验证) 提交于 2019-12-03 00:39:02
需求 上下两个div。上方是mui日历,可以调整日期,所以高度不固定。下方高度也不固定。如果两个div加起来高于一个手机屏幕,需要给下方div加滚动条。实际显示是一屏高度。 实现 纯css试了很久,无法实现,最后是用css+js实现的 滚动条什么不再赘述 下方div的css { position : absolute ; bottom : 0 ; } 页面初始化和mui日历的onChangeMonthYear事件中 setTimeout ( function (){ var height = document . getElementById ( "上方div" ). clientHeight ; document . getElementById ( "下方div" ). style . top = height + 71 + "px" ; }, 0 ); 71是我页面标题栏等地方的高度 转载请标明出处: 一个页面布局的坑 文章来源: 一个页面布局的坑

Flutter 概览

匿名 (未验证) 提交于 2019-12-03 00:37:01
Flutter 是一套跨平台的开发框架,适用于Android,ios,fuchsia(google计划的操作系统),能够实现一套代码编译成不同平台的app。 Flutter相较于RN的区别在于Flutter是基于skia的直接渲染,和平台无关。而RN是对不同平台的控件的向上抽象封装,不可避免的会有适配性等各种问题。 Flutter Widget采用现代响应式框架构建,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改。 widget的构建函数一般没有副作用。每当它被要求构建时,widget应该返回一个新的widget树,无论widget以前返回的是什么。 Framework会将之前的构建与当前构建进行比较并确定需要对用户界面进行哪些修改。 这种自动比较非常有效,可以实现高性能的交互式应用程序。而构建函数的设计则着重于声明widget是由什么构成的,而不是将用户界面从一个状态更新到另一个状态的(这很复杂性),从而简化了代码。 Flutter 提供的 widget 都是基于 skia 来实现和精心定制的. 起步:安装Flutter flutter中,所有的一切都是控件(

REM布局

匿名 (未验证) 提交于 2019-12-03 00:22:01
rem和em很容易混淆,其实两个都是css的单位,并且也都是相对单位,现有的em,css3才引入的rem,在介绍rem之前,我们先来了解下em em作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小――MDN 那么一个问题是:s1、s2、s5、s6的font-size和line-height分别是多少px < div class = "p1" > < div class = "s1" > 1 </ div > < div class = "s2" > 1 </ div > </ div > < div class = "p2" > < div class = "s5" > 1 </ div > < div class = "s6" > 1 </ div > </ div > .p1 {font-size: 16 px; line-height: 32 px;} .s1 {font-size: 2 em;} .s2 {font-size: 2 em; line-height: 2 em;} .p2 {font-size: 16 px; line-height: 2 ;} .s5 {font-size: 2 em;} .s6 {font-size: 2 em; line-height: 2 em;} 答案如下: p1: font-size

页面布局

匿名 (未验证) 提交于 2019-12-02 23:57:01
  1、三列布局,中间自适应 <div class = "container" > <div class = "left" ></div> <div class = "right" ></div> <div class = "center" ></div> </div> *{ margin:0; padding:0; } .container{ min-width: 650px; width: 80%; height: 1200px; margin:0 auto; //此处设置让包裹器自适应剧中 background-color: aqua; position: relative;//此处设置让该容器作为触发bfc元素的父级,使子类始终在该包裹器内 } .left{ top:0; position: absolute;//触发bfc,脱离文档流,通过left或者right定位 width:200px; height:100%; left:0; background-color: red; } .right{ top:0; right:0; position: absolute; width:200px; height:100%; float: right; background-color: black; } .center{ min-width: 200px; margin:0

flutte页面布局四

匿名 (未验证) 提交于 2019-12-02 23:39:01
AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比。 AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度是由宽度和比率 import 'package:flutter/material.dart';void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('FlutterDemo')), body: LayoutDemo(), )); } } class LayoutDemo extends StatelessWidget { @override Widget build(BuildContext context) { return Container( width: 200, child: AspectRatio( aspectRatio: 2.0/1.0, child: Container( color: Colors.red, ), ), ); } } 在上面的例子中

ASP.NET Web Pages - 页面布局

匿名 (未验证) 提交于 2019-12-02 23:34:01
通过 Web Pages,很容易创建布局一致的网站。 一致的外观 在因特网上,您会发现很多拥有统一外观的网站: 每页拥有相同的页眉 每页拥有相同的页脚 每页拥有相同的样式和布局 通过 Web Pages,可以高效地实现这些。您可以得到可重复使用的代码块(内容块),比如页眉和页脚,在独立的文件中。 您也可以为所有页面定义一致的布局,使用布局模板(布局文件)。 内容块 很多网站都有需要在每张页面上显示的内容(比如页眉和页脚)。 内容块(来自另一个文件)能够被输入网页中的任意位置,并可包含文本、标记和代码,就像任何常规的网页那样。 使用通用的页眉和页脚,会省去大量的工作。您不必在每页中编写相同的内容,并且当您改变页眉或页脚文件时,内容会在所有页面中更新。 在代码中是这样的: 实例 <html> <body> @RenderPage("header.cshtml") <h1>Hello Web Pages</h1> <p>This is a paragraph</p> @RenderPage("footer.cshtml") </body> </html> 运行实例 使用布局页面 在之前的内容中,您已看到在多个网页中引用相同的内容是很简单的。 创建一致外观的另一种方法是使用布局网页。布局网页包含网页的结构,而不是内容。当网页(内容页)链接到布局页时,它会根据布局页(模板)来显示。

CSS 基础总结

匿名 (未验证) 提交于 2019-12-02 20:32:16
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin 2 box-sizing属性? 用来控制元素的盒子模型的解析模式,默认为content-box context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽 border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽 3 CSS选择器有哪些?哪些属性可以继承? CSS选择符:id选择器(#myid)、类选择器(.myclassname)、标签选择器(div, h1, p)、相邻选择器(h1 + p)、子选择器(ul > li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel=”external”])、伪类选择器(a:hover, li:nth-child) 可继承的属性:font-size, font-family, color 不可继承的样式:border, padding, margin, width, height 优先级(就近原则):