CSS5:移动端页面(响应式)
CSS5:移动端页面(响应式)
如果手机端和PC端页面差别很大,就不要写响应式,不要写@media 就直接将两个页面拆开成两个文件就可以了.关于判断是手机端你还是PC端,就交给后端来做
只有一些新闻站点和博客站点用响应式,因为布局简单,响应式足够
1.媒体查询 media query
媒体:电脑,纸张,都是媒体
含义:如果媒体满足0到800 之间,那么会应用这里面的样式
<style>
@media (max-width: 800px){/*如果媒体满足0到800 之间,那么会应用这里面的样式*/
body{
background-color: red;
}
}
</style>
注意:
<style>
@media (max-width: 800px){/*如果媒体满足0-800 之间,那么会应用这里面的样式*/
body{
background-color: red;
}
}
@media (max-width: 900px){/*如果媒体满足0-900 之间,那么会应用这里面的样式*/
body{/*这段媒体查询比上面优先级高,会将上面的覆盖,如果低于800了,会变成蓝色*/
background-color: blue;
}
}
</style>
所以要倒过来写,先写大范围
<style>
@media (max-width: 768px){/*0-768*/
body{
background-color: blue;
}
}
@media (max-width: 425px){/*0-425*/
body{
background-color: red;
}
}
@media (max-width: 375px){/*0-375*/
body{
background-color: orange;
}
}
@media (max-width: 320px){/*0-320*/
body{
background-color: black;
}
}@media (min-width: 769px){/*769~+++*/
/*超过769的*/
body{
background-color: green;
}
}
</style>
也可以规定详细范围:
1.1引用方法
也可以使用CSS文件的方法引用
https://segmentfault.com/ (这个网站就用了响应式)
还有https://www.smashingmagazine....
能随着你屏幕宽度动的页面就是响应式页面
1.2 要向设计师要网页设计图
1.3 隐藏菜单响应式
1.3.1先做手机还是先做PC
Mobile first 先做手机
desktop first 先做PC
推荐Mobile first,因为现在大部分都是手机看网页
1.3.2CSS优先级问题解决方法
- 用谷歌开发者工具查看CSS优先级,然后调整
- 如果style内嵌在html里,比如jquery的toggle,那么直接使用display: none !important;
1.3.3flex布局的一些用法
header{
display: flex;
/*里面的垂直居中*/
align-items: center;
}
header .mobilMenu {
display: flex;
justify-content: space-around;
/*flex布局display: flex;这个容器使用flex布局
justify-content属性定义了项目在主轴上的对齐方式。
justify-content: space-around;每个容器里面的项目两侧的间隔相等。*/
background-color: #ccc;
}
代码
预览
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>响应式页面</title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js">
</script>
<style>
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
color: inherit;
}
ul, ol {
list-style: none;
}
.logo {
width: 60px;
height: 60px;
background: #000;
border-radius: 50%;
}
header {
position: relative;
}
header > button {
position: absolute;
right: 0;
top: 26px;
}
header .mobilMenu {
display: flex;
justify-content: space-around;
/*flex布局display: flex;这个容器使用flex布局
justify-content属性定义了项目在主轴上的对齐方式。
justify-content: space-around;每个容器里面的项目两侧的间隔相等。*/
background-color: #ccc;
}
header .pcMenu{
display: none;
}
/*接下来做pc端*/
@media (min-width: 451px) {
/*一般都写 451,手机最大也就450px*/
/*先隐藏手机菜单和按钮*/
header .mobilMenu{
display: none !important;
/**CSS优先级问题解决方法:
1.直接使用display: none !important;
2.用谷歌开发者工具查看CSS优先级
*/
}
header > button {
display: none;
}
header{
display: flex;
/*里面的垂直居中*/
align-items: center;
}
/*再把pcMenu写成flex布局*/
header .pcMenu{
display: flex;/*只要改成flex 里面的子项目就变成一行了*/
margin-left: 20px;
background: red;
}
header .pcMenu>li{
margin-left: 20px ;
}
}
</style>
</head>
<body>
<header>
<div class="logo"></div>
<button id="menu">菜单</button>
<ul class="mobilMenu">
<li><a href="#">导航1</a></li>
<li><a href="#">导航2</a></li>
<li><a href="#">导航3</a></li>
<li><a href="#">导航4</a></li>
<li><a href="#">导航5</a></li>
</ul>
<ul class="pcMenu">
<li><a href="#">pc到航1</a></li>
<li><a href="#">导航2</a></li>
<li><a href="#">导航3</a></li>
<li><a href="#">导航4</a></li>
<li><a href="#">导航5</a></li>
</ul>
</header>
</body>
<script>
$('#menu').on('click', function () {
$('.mobilMenu').toggle();//toggle() 方法切换元素的可见状态。如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素。
//缺点:如果使用toggle(),他会把display这个style的属性内嵌到放在html里.
})
</script>
</html>
手机端要加一个meta viewport
历史原因:最开始手机浏览器(苹果三)会在自己的三四百像素的手机上模拟980像素的显示效果,然后让用户自己去缩放,查看网页.
那么就告诉浏览器不要缩放我的网页,手机屏幕是多少像素,就显示多少像素的网页.使用下面的代码
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
name="viewport" :视口
content="width=device-width,宽度等于设备宽度,意思就是不要变成980,用设备宽度.
user-scalable=no, 用户是否可以缩放:不许缩放,因为我在代码里已经给用户适配好了
initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
初始缩放倍数,最大缩放倍数,最小缩放倍数,都是1.0,即使不能缩放
这句话缩写语法:mate:vp
总结这个meta作用:
- 防止手机页面模拟 980 像素宽度
- 防止页面在用户双击的时候放大
- 防止用户两指缩放页面
3.移动端的特点
3.1flex布局是专门给手机定制的
只要学会flex布局,手机端布局基本OK手机端的交互方式不一样
3.2手机端的交互方式不一样
- 没有 hover
- 有 touch 事件
如何监听滑动事件?记录两次滑动时候的坐标,相减,就可以了.
有封装的库,例如jquery swipe, vue里的插件 - 没有 resize
手机端的宽度永远跟设备宽度一样 - 没有滚动条
滚动条会隐藏,会变成一个指示器,跟PC端不一样 - 没有ie,意思就是什么CSS属性都可以用,不用考虑兼容的问题
4.CSS3的calc()使用
链接:https://www.w3cplus.com/css3/...
平时在制作页面的时候,总会碰到有的元素是100%的宽度。众所周知,如果元素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子撑破。比如说,有一个边框,或者说有margin和padding,这些都会让你的盒子撑破。我们换句话来说,如果你的元素宽度是100%时,只要你在元素中添加了border,padding,margin任何一值,都将会把元素盒子撑破(标准模式下,除IE怪异模式)。虽然前面介绍的CSS3属性中的box-sizing在一定程度上解决这样的问题,其实的calc()函数功能实现上面的效果来得更简单。
移动端页面布局常用哪些属性?
display: flex
width: calc(50% - 10px);本文转载于:猿2048→https://www.mk2048.com/blog/blog.php?id=hc1hh22k0jb
CSS5:移动端页面(响应式)的更多相关文章
- Web移动端页面 --响应式和动态REM
响应式 什么是响应式页面呢? 顾名思义响应式页面就是能做出响应的页面,它的页面效果不是定死的,会随着用户的改变而改变. 如何着手响应式有以下几个思考的方向 找一份设计图 使用Media Query 隐 ...
- 超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)
在线演示 使用Bootstrap实现的响应式单页面模板. 桌面效果: 移动设备效果: 阅读全文:超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)
- 浅谈pc和移动端的响应式
身为一个前端攻城狮,是不是经常遇到各种各样的响应式问题?下面我们来说一下: 1.响应式跟自适应有什么区别? 有些人可能还不知道响应式跟自适应的区别,甚至认为他们是同一个东西,其实不是的. 自适应是最早 ...
- 移动端和pc端,响应式设计布局
1.什么是响应式 Web 设计? 响应式 Web 设计让你的网页能在所有设备上有好显示. 响应式 Web 设计只使用 HTML 和 CSS. 响应式 Web 设计不是一个程序或Javascript脚本 ...
- 如何做好移动端的响应式设计:Viewport控制
新人翻译,欢迎转载~ 英文原文地址:http://bitsofco.de/2015/respove-design-viewport/ 原文例程地址:https://github.com/ireade/ ...
- Bootstrap页面响应式设计
关键词:viewport.栅格布局.媒体查询(Media Queries) 一.关于栅格布局的说明: 1.基本图解 extra small devices phones 超小型设备手机small d ...
- HTML多端适应 响应式布局案例
HTML布局: <div id="one"> <div class="aa"></div> <div class=&q ...
- javascript适合移动端的响应式瀑布流插件实例演示
在线预览 jQuery插件大全 实例代码 <div class="sucaihuo-container"> <div class="demo" ...
- [移动端WEB] 移动端网站响应式布局之"rem",CSS3 rem使用方式
(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ' ...
随机推荐
- Pandas:loc iloc ix用法
参考:Pandas中关于 loc \ iloc \ ix 用法的理解 相同点 使用形式都是 df.xxx[ para1 , para2 ] #xxx表示loc iloc ix#df表示一个DataFr ...
- Python——条件语句及其循环
条件语句及其循环 一. 条件语句 在条件语句中可以使用以下所有的运算符: 算术运算符:+.-.*././/.%.** 关系运算符:>.<.==.<=.>=.!= 测试运算符:i ...
- php 23种设计模型 - 组合模式(合成模式)
组合模式(Composite) 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这 ...
- CF1453D题解
VP 的时候发现的一道数学题( 在思考这个问题之前,先让我们思考一件事:走到距离上一个存档点 \(n\) 的位置的期望是多少?(假设这个值为 \(f[n]\)) 先思考 \(f[1]\) 是多少,很明 ...
- VUE3 之 列表动画 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:可以为别人解决痛点的产品就是好产品. 言归正传,今天我们来聊聊 VUE 的列表动画. 2. 列表动画 2.1 列表中增加和删除元素 <style> .my-ite ...
- python关于openpyxl库的常用使用介绍
from openpyxl import load_workbook #只能加载已存在的表格 wb=load_workbook("D:\zhijing_work\测试数据\测试文件\yeta ...
- 关于二维DP————站上巨人的肩膀
意匠惨淡经营中ing, 语不惊人死不休........ 前几天学了DP,做了个简单的整理,记录了关于DP的一些概念之类的,今天记录一下刚学的一个类型 ----关于二维DP 那建立二维数组主要是干嘛用的 ...
- QQ密码防盗5招
第一招:复制粘贴防木马 每次登录QQ前,新建一个文本文件,并键入密码后复制,关闭文本文件后(不要保存)打开QQ,用"Ctrl+V"把密码粘贴到密码栏里,这样可以防范绝大部分的QQ木 ...
- 定位一个oom问题
当系统出现oom问题时,我们一般的定位思路是怎样的? 系统OOM常见的原因有: 1.用户态内存需求过多,资源不足: 2.大页配置不正确: 3.水位线值异常: 4.slab内存过多: 5.rcu异常: ...
- vue的seo问题?
seo关系到网站排名, vue搭建spa做前后端分离不好做seo, 可通过其他方法解决: SSR服务端渲染: 将同一个组件渲染为服务器端的 HTML 字符串.利于seo且更快. vue-meta-in ...