All Projects → Wscats → Layout Demo

Wscats / Layout Demo

Various Layouts Of CSS

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Layout Demo

React Native Responsive Grid
Bringing the Web's Responsive Design to React Native
Stars: ✭ 369 (+39.77%)
Mutual labels:  layout, flexbox, responsive-layout
flexbin
Pure CSS, flexible and gapless image gallery layout like Google Images and 500px.com
Stars: ✭ 93 (-64.77%)
Mutual labels:  layout, flexbox, responsive-layout
gymnast
🤸 Configurable grid and layout engine for React
Stars: ✭ 35 (-86.74%)
Mutual labels:  layout, flexbox
Flexlib
FlexLib是一个基于flexbox模型,使用xml文件进行界面布局的框架,融合了web快速布局的能力,让iOS界面开发像写网页一样简单快速
Stars: ✭ 1,569 (+494.32%)
Mutual labels:  layout, flexbox
react-flex-columns
Easy layout columns for React - Using Flexbox under the hood.
Stars: ✭ 18 (-93.18%)
Mutual labels:  layout, flexbox
Allkit
🛠 Async List Layout Kit
Stars: ✭ 40 (-84.85%)
Mutual labels:  layout, flexbox
Interfacss
The CSS-inspired styling and layout framework for iOS
Stars: ✭ 92 (-65.15%)
Mutual labels:  layout, flexbox
Core Layout
Flexbox & CSS-style Layout in Swift.
Stars: ✭ 215 (-18.56%)
Mutual labels:  layout, flexbox
Flex Layout Attribute
HTML layout helper based on CSS flexbox specification —
Stars: ✭ 705 (+167.05%)
Mutual labels:  layout, flexbox
how-to-css
howtocss.dev
Stars: ✭ 48 (-81.82%)
Mutual labels:  layout, flexbox
flexboxes
CSS flexbox framework with pure flexbox grid ability
Stars: ✭ 27 (-89.77%)
Mutual labels:  layout, flexbox
nice-react-layout
Create complex and nice Flexbox-based layouts, without even knowing what flexbox means
Stars: ✭ 70 (-73.48%)
Mutual labels:  layout, flexbox
Flexbox
CSS library for easier work with flex boxes
Stars: ✭ 17 (-93.56%)
Mutual labels:  layout, flexbox
Flexlayout
FlexLayout adds a nice Swift interface to the highly optimized facebook/yoga flexbox implementation. Concise, intuitive & chainable syntax.
Stars: ✭ 1,342 (+408.33%)
Mutual labels:  layout, flexbox
Paralayout
Paralayout is a set of simple, useful, and straightforward utilities that enable pixel-perfect layout in iOS. Your designers will love you.
Stars: ✭ 742 (+181.06%)
Mutual labels:  layout, flexbox
Grid
This package has moved and renamed
Stars: ✭ 2,079 (+687.5%)
Mutual labels:  layout, flexbox
bootstrap-grid-ms
Missing grid range in Bootstrap 3, micro-small from 480-767px.
Stars: ✭ 34 (-87.12%)
Mutual labels:  layout, responsive-layout
Flex Layout
Provides HTML UI layout for Angular applications; using Flexbox and a Responsive API
Stars: ✭ 5,705 (+2060.98%)
Mutual labels:  layout, flexbox
Flexml
🚀基于Litho的Android高性能动态业务容器。
Stars: ✭ 225 (-14.77%)
Mutual labels:  layout, flexbox
griding
🧱 lean grid & responsive for react
Stars: ✭ 18 (-93.18%)
Mutual labels:  layout, flexbox

页面结构布局

单位

px单位的名称为像素,它是一个固定大小的单元,像素的计算是针对屏幕的,一个像素1px就是屏幕上的一个点,即屏幕分辨率的最小分割。由于它是固定大小的单位,单独用它来设计的网页,如果适应大屏幕电脑,在小屏幕手机上就会很不友好,做不到自适应的效果

em单位的名称为相对长度单位,它是用来设置文本的字体尺寸的,它是相对于当前对象内文本的字体尺寸;如果没有人为设置当前对象内文本的字体尺寸,那么它相对的是浏览器默认的字体尺寸16px

相对长度单位,它的出现是为了解决em的缺点,em可以说是相对于父级元素的字体大小,当父级元素字体大小改变时,又得重新计算。rem出现就可以解决这样的问题,rem只相对于根目录,即HTML元素。所以只要在HTML标签上设置字体大小,文档中的字体大小都会以此为参照标准,一般用于自适应布局

view heightview width的简写,是指可视窗口的高度。假如高度是1200px的话。那10vh就是120px,即1 vh = 1200px/100 = 12 px

总结:

  • px是固定长度单位,不随其它元素的变化而变化
  • em%是相对于父级元素的单位,会随父级元素的属性font-size或其它属性变化而变化
  • rem是相对于根目录HTML元素的,所有它会随HTML元素的属性font-size变化而变化
  • px%用的比较广泛一些,可以充当更多属性的单位,而emrem是字体大小的单位,用于充当font-size属性的单位
  • 一般来说:1em = 1rem = 100% = 16 px

视口

移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域

  • 布局视口(layout viewport)

以屏幕分辨率为基准,实际上布局视口的宽度要比屏幕宽出很多,以上图片显示的尺寸就是 layout viewport

  • 视觉视口(visual viewport)

layout viewport的宽度是大于浏览器可视区域的宽度的,所以我们还需要一个viewport来代表 浏览器可视区域的大小,这个viewport叫做visual viewport。在JS中可以通过window.innerWidth来获取

  • 理想视口(ideal viewport)

一个能完美适配移动设备的视口,需要手动添加meta标签,一般视口大小都设置为设备大小

<meta name="viewport" content="width=device-width">

举个例子,手机上的浏览器是全屏的,手机实际宽度是320像素(即visual viewport),而手机分辨率是980宽度(即layout viewport),所以手机上打出来的是980而不是320,如果设置了meta完美适配设备(即ideal viewport)

  • meta标签属性

利用以下属性对viewport进行控制, 可多个同时使用,并用逗号隔开

  • width设置layout viewport的宽度,为一个正整数,或字符串device-width
  • initial-scale设置页面的初始缩放值,为一个数字,可以带小数
  • minimum-scale允许用户的最小缩放值,为一个数字,可以带小数
  • maximum-scale允许用户的最大缩放值,为一个数字,可以带小数
  • user-scalable是否允许用户进行缩放
    • no代表不允许
    • yes代表允许

所以如果不定义viewpoint的话,页面宽度以屏幕分辨率为基准,而设置以后可以根据设备宽度来调整页面,达到适配终端大小的效果

动态设置字体大小及viewport

<script type="text/javascript">
    // 把尺寸放大N倍(N是window.devicePixelRatio)
    // 物理像素*设备像素比=真实像素
    var wd = document.documentElement.clientWidth*window.devicePixelRatio/10;
    document.getElementsByTagName("html")[0].style.fontSize = wd + "px";
    
    // 把屏幕的倍率缩小到N分之一(N是window.devicePixelRatio)
    var scale = 1/window.devicePixelRatio;
    var mstr = 'initial-scale='+ scale +', maximum-scale='+ scale +', minimum-scale='+ scale +', user-scalable=no';
    document.getElementById("vp").content = mstr;
</script>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].