网页在不一样尺寸的设备上,都有良好的显示效果,叫作"响应式设计", 响应式图像的解决方案有不少,JavaScript 和 CSS 均可以实现。html
媒体查询就是对设备按照某些条件进行查询,使符合查询条件的设备显示对应的样式,从而达到不一样设备显示不一样样式的效果。前端
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>媒体查询</title>
<style>
@media (max-width: 768px){ /*0~768*/
body{
background: red;
}
}
@media (max-width: 425px){ /*0~425*/
body{
background: yellow;
}
}
@media (max-width: 375px){ /*0~375*/
body{
background: blue;
}
}
@media (max-width: 320px){ /*0~320*/
body{
background: pink;
}
}
@media (min-width: 769px){ /*769~+∞*/
body{
background: green;
}
}
</style>
</head>
<body>
</body>
</html>
复制代码
经过百分比单位 " % " 来实现响应式的效果。 好比当浏览器的宽度或者高度发生变化时,经过百分比单位,可使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果git
// 简单一个demo,实现一个4:3比列的长方型,不小随窗口大小2而改变比列
<div class="trangle"></div>
.trangle{
height:0;
width:100%;
padding-top:75%; //相对宽度为75%
}
复制代码
其中,子元素的padding若是设置百分比,不管是垂直方向或者是水平方向,都相对于直接父亲元素的width,而与父元素的height无关。github
REM是CSS3新增的单位,而且移动端的支持度很高,rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size至关于提供了一个基准,当页面的size发生变化时,只须要改变font-size的值,那么以rem为固定单位的元素的大小也会发生响应的变化web
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
/* pc width > 1100px */
html {
font-size: 100%;
}
body {
background-color: yellow;
font-size: 1.5rem;
}
/* ipad pro */
@media screen and (max-width: 1024px) {
body {
background-color: #ff00ff;
font-size: 4rem;
}
}
/* ipad */
@media screen and (max-width: 768px) {
body {
background-color: green;
font-size: 3rem;
}
}
/* iphone6 7 8 plus */
@media screen and (max-width: 414px) {
body {
background-color: blue;
font-size: 2rem;
}
}
/* iphoneX */
@media screen and (max-width: 375px) and (-webkit-device-pixel-ratio: 3) {
body {
background-color: #0ff000;
font-size: 1rem;
}
}
/* iphone6 7 8 */
@media screen and (max-width: 375px) and (-webkit-device-pixel-ratio: 2) {
body {
background-color: #0ff000;
font-size: .5rem;
}
}
/* iphone5 */
@media screen and (max-width: 320px) {
body {
background-color: #0ff000;
font-size: 0.75rem;
}
}
</style>
</head>
<body>
<h1>rem布局</h1>
</body>
</html>
复制代码
根据CSS3规范,视口单位主要包括如下4个:浏览器
视口单位区别于%单位,视口单位是依赖于视口的尺寸,根据视口尺寸的百分比来定义的;而%单位则是依赖于元素的祖先元素。bash
以上是经常使用的四种响应式解决措施,而后具体问题具体对待:iphone
我本身的博客布局
能够切换为手机模式和iPad模式在浏览器预览!post