• Stars
    star
    300
  • Rank 137,771 (Top 3 %)
  • Language
    Lua
  • Created about 8 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Various Layouts Of CSS

页面结构布局

单位

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>

More Repositories

1

articles

🔖My Learning Notes and Memories - 分享我的学习片段和与你的回忆
Lua
3,167
star
2

piano

🎹Play the piano with the keyboard - 用键盘8个键演奏一首蒲公英的约定送给自己或月亮代表我的心送给她
JavaScript
1,118
star
3

CV

🙈Front End Engineer Curriculum Vitae - 面试宝典和简历生成器
HTML
1,036
star
4

node-tutorial

☺️Some of the node tutorial -《Node学习笔记》
JavaScript
519
star
5

vue-tutorial

🎃 Some of the vue-tutorial - 《Vue学习笔记》
493
star
6

vue-cli

📃基于 Vue3.0 Composition Api 快速构建实战项目
Vue
477
star
7

emoji

⭕〽️❗Omi Emoji
JavaScript
425
star
8

react-tutorial

🐅Some of the react tutorial - 《React学习笔记》
JavaScript
422
star
9

angular-tutorial

🐰Some of the angular tutorial - 《Angular学习笔记》
387
star
10

news

🐼Based on angular.js, weui and node.js rewrite news client - 新闻客户端
JavaScript
362
star
11

vue-awesome-mui

🏆Mui component for Vue.js(1.x ~ 2.x)
JavaScript
350
star
12

iPhone-X

🐳A simple and easy way to keep your custom views layout properly on iPhone X
CSS
340
star
13

socket.io

NodeJS《你画我猜》游戏
JavaScript
310
star
14

cms

News Management System Written In PHP - 从零开始用 PHP 实现内容管理系统后台
HTML
292
star
15

blog

Waving wild hands in the wind, writing brilliant poems, no matter how tired
HTML
277
star
16

webpack

📜Some of the node tutorial -《Webpack学习笔记》
JavaScript
276
star
17

littlefish

How far a life has to go, and how many years have passed before we can reach the end
CSS
259
star
18

compile-hero

🔰Visual Studio Code Extension For Compiling Language
TypeScript
254
star
19

wechat-jump-game

😊 Nodejs 微信《跳一跳》辅助
JavaScript
252
star
20

workerman

Workerman框架二次开发
PHP
249
star
21

wechat-tnwz

Nodejs 微信《头脑王者》辅助
JavaScript
230
star
22

openharmony-sheet

📊从零开始使用华为鸿蒙 OpenHarmony 开发游戏和表格渲染引擎
JavaScript
224
star
23

requirejs-demo

《RequreJS学习笔记》
JavaScript
198
star
24

browser-preview

🎢Preview html file in your default browser
TypeScript
195
star
25

virtual-dom

关于Vue,React,Preact和Omi等框架源码的解读
HTML
191
star
26

awesome

🚠Algorithm And Data Structure
JavaScript
188
star
27

omi-snippets

🔖Visual Studio Code Syntax Highlighting For Single File React And Omi Components - 编写React和Omi单文件组件的VSC语法高亮插件
HTML
186
star
28

omil

📝Webpack loader for Omi.js React.js and Rax.js components 基于 Omi.js,React.js 和 Rax.js 单文件组件的 Webpack 模块加载器
JavaScript
180
star
29

glup

Some of the gulp tutorial -《gulp笔记》
JavaScript
174
star
30

search-online

🔍A simple extension for VSCode to search online easily using search engine.
TypeScript
164
star
31

python-tutorial

🏃 Some of the python tutorial - 《Python学习笔记》
JavaScript
157
star
32

regular

🔍The convenient paste of regular expression🔎
153
star
33

leetcode

leetcode
HTML
149
star
34

trip

Angular 仿携程的 demo
CSS
148
star
35

awesome-harmony

收录来源于网上鸿蒙系统开发的相关资料
JavaScript
147
star
36

omi-electron

🚀Build cross platform desktop apps with Omi.js and Electron.js 基于Omi.js和Electron.js构建跨平台的桌面应用
HTML
146
star
37

egret

🐦Some of the egret tutorial -《白鹭引擎笔记》
JavaScript
146
star
38

less-demo

JavaScript
146
star
39

weixin-demo

JavaScript
143
star
40

swiper-iscroll-demo

JavaScript
141
star
41

see-you-again

😊 Because love is very heavy, but I don’t want to understand it, I’m afraid of being touched, I only walk in the opposite direction, with my back to the wet pupils, please let go, seek your own sky, if you lose, you’re tired, remember to turn around See You Again My Class~
141
star
42

cordova-demo

Objective-C
138
star
43

git-test

136
star
44

spy

A simple module that displays DOM attributes on mouseover inside a tooltip.
JavaScript
136
star
45

react-native

📱Test Directory Of React Native
JavaScript
135
star
46

create-angular-app

基于 Webpack 自定义 Angular 脚手架
TypeScript
135
star
47

react-redux

《Redux笔记》
JavaScript
132
star
48

vueno

Vue Conversion Plugin
JavaScript
124
star
49

create-react-app

基于Webpack自定义React脚手架
JavaScript
124
star
50

performance-decorator

🏇User behavior & Function execution tracking solution - 大型前端项目的用户行为跟踪,函数调用链分析,断点调试共享化和复用化实践
110
star
51

omi-docs

📃Omil 文档
HTML
100
star
52

jest-tutorial

🎪Jest Architecture -《从零开始实现一个 Jest 单元测试框架》
JavaScript
97
star
53

intersect

一道面试题的思考 - 6000万数据包和300万数据包在50M内存使用环境中求交集
JavaScript
97
star
54

media-tutorial

流处理,TCP和UDP,WebRTC和Blob
JavaScript
83
star
55

prototype

📖Prototype Document
82
star
56

vue-snippets

Visual Studio Code Syntax Highlighting For Vue3 And Vue2
JavaScript
68
star
57

sheet

📊OpenHarmony Sheet 表格渲染引擎
JavaScript
59
star
58

sweet

🍡Life needs a little sweet
52
star
59

html-snippets

Full HTML tags including HTML5 Snippets.
50
star
60

bullshit-generator

Greatly improve the production efficiency of nonsense.
TypeScript
49
star
61

command-runner

💻A VSCode extension that simply obtains the file path and executes the corresponding command
TypeScript
48
star
62

Wscats

👨‍🚒 About me
48
star
63

flappy

🐧OpenHarmony Flappy Bird
JavaScript
47
star
64

github-actions-tutorial

➿Github Action Tutorial - 《Github Action教程》
JavaScript
46
star
65

uni-app

Support commonly used code snippets in Hbuilder/HbuilderX.
Lua
43
star
66

chrome-devtools-cli

Google Chrome Extension CLI
JavaScript
43
star
67

yox-snippets

Visual Studio Code Syntax Highlighting For Yox
TypeScript
42
star
68

ACEM

TypeScript
42
star
69

java-snippets

Provide Java development 35000+ code snippets and detailed interface reminders, which greatly improves your development efficiency
HTML
42
star
70

dnd-tutorial

拖拽示例
TypeScript
42
star
71

chatgpt-demo

A demo repo based on OpenAI GPT-3.5 Turbo API
TypeScript
42
star
72

lerna-tutorial

💈Some of the lerna tutorial - 《Lerna学习笔记》
JavaScript
42
star
73

delete-node-modules

✂️ Simple extension for Visual Studio Code that allows you to quickly delete your project's node_modules directory
JavaScript
41
star
74

dependency-injection

🌀Dependency injection to achieve inversion of control -《从零开始实现依赖注入框架》
TypeScript
41
star
75

vscode-clipboard

一款 VSCode 插件,用于保留项目的复制和剪切内容,并可在面板的历史记录中重新选择粘贴。
TypeScript
41
star
76

vue-extension-pack

🚚Popular VS Code extensions for Vue.js development.
Vue
40
star
77

react-extension-pack

🚚Popular VS Code extensions for React.js development.
40
star
78

webpack-nx-build-coordination-plugin

Use to coordinate the compiling of the libs and the webpack linking.
TypeScript
40
star
79

monorepo-tutorial

💈Some of the lerna tutorial - 《Lerna学习笔记》
JavaScript
39
star
80

angular-extension-pack

🚚Popular VS Code extensions for Angular development.
39
star
81

assemblyscript-tutorial

Learning about webassembly
HTML
39
star
82

lazy-preload

Wraps the React.lazy API with preloaded functionality.
TypeScript
38
star
83

theia-extension

TypeScript
37
star
84

vscode-explore

Learning about vscode
TypeScript
37
star