CSS中百分比基准

width

相对于父元素的宽度,注意这里以及以下父元素是指css中其父元素。而不是一般的DOM结构中父元素。

height

一般是相对于父元素的高度,但是当父元素高度没有指定时候其值会变成 auto。

使用vh vw来做页面适配

vw vh 概念

vwviewport width 的简写,意思是屏幕的宽度。100vw等于屏幕宽度。
vhviewport height 的简写,意思是屏幕的高度。100vh等于屏幕高度。

vmax vmin

vmaxvwvh 中比较大的那个。
vmminvwvh 中比较小的那个。

浏览器兼容性

浏览器兼容性

页面适配思路

rem 做页面适配相似。这里 10vw 等于十分之一屏幕宽度,和这篇文章中使用rem来做页面适配 1rem 等于 10vw
剩下的不变,而且不需要js判断来更改根元素的字体大小。

flex布局语法简介--转自阮一峰网络日志

阮老师这篇flex布局语法篇讲述的非常详细,我对flex布局入门全靠这篇文章。
原文地址

我把这篇文章保存成了pdf 预览/下载

使用media query 实现响应式布局

media query 概念

media query 即是媒介查询,可以根据浏览器的不同特性来应用不同的css样式。
例如:

1
2
3
<link href="css/reset.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/print.css" rel="stylesheet" type="text/css" media="print" />

或者

1
2
3
4
5
<style type="text/css" media="screen">
*{
padding: 0px;
}
</style>

以下我只讨论使用 screen 特性

media query screen

例子

例如

1
<link rel="stylesheet" href="style.css" media="screen and (min-width:640px) and (max-width:1080px)">

或者

使用rem来做页面适配

思路

因为rem单位的特殊性,其是根据根元素<html>的字体大小来作为单位的,所以只需修改根元素的字体大小即可改变整个页面大小甚至是布局。

根据 mediaquery来设置

通过css mediaquery 来限定不同屏幕宽度而设置根元素的字体大小来实现适配。

使用javascript判断

CSS3 3D立方体

演示

新窗口打开

思路

首先需要给这个正方体的父容器设置 transform-style 属性为 preserve-3d 这样才能保证子元素是在一个三位空间内,再给父元素的 position 设置为 relative,然后给子元素正方体这6个面改变角度和位置使其在正确的位置并更改其 positonabsolute 相对于父元素定位。
改变角度和位置都使用 transform 属性,之后在三维坐标系通过 rotate3d() 改变角度,通过 translate3d() 改变位置。就ok了。
tips 微信目前无法展示此效果,请选择使用浏览器打开。

代码

html

1
2
3
4
5
6
7
8
9
10
<div class="container">
<div class="box">
<div id="front">front</div>
<div id="back">back</div>
<div id="top">top</div>
<div id="bottom">bottom</div>
<div id="left">left</div>
<div id="right">right</div>
</div>
</div>

CSS

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×