Front-end learn webapp


视口

布局视口 layout viewport

早期的pc端的网页在手机显示 分辨率为980px 但是元素显示比较小,需要手动缩放

视觉视口 visual viewport

理想视口 ideal viewport

手动添加meta视口标签
使得布局视口和手机尺寸一样
乔布斯提出

meta 标签

<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
width=device-width 视口大小等于设备
user-scalable=no   用户是否可以缩放

二倍图

物理像素

物理像素点就是屏幕的分辨率
在pc端,一个px就是一个像素点
但是在手机端一个px包含n个物理像素点  叫做物理像素比

图片模糊问题

使用的图片比实际用的大,然后手动缩放

背景图片缩放

background-size
可以是像素 也可以是百分比 ,百分比是父元素的百分之多少
cover 覆盖整个区域,会显示不全
contain 拉伸到宽度或者高度达到最大值

移动端开发解决方案

独立开发移动端的界面
响应式页面兼容移动端

移动端清除超链接高亮

-webkit-tap-highlight-color = transparent

在 ios 给按钮和输入框添加样式的前提

-webkit-appearance-none

禁用长按页面时的弹出菜单

img,a {-webkit-touch-callout  none}

移动端布局

单独制作

1.流式布局
2.flex弹性布局  **!
3.less rem 媒体查询布局
4.混合布局

响应式页面

媒体查询  bootstrap

流式布局

根据屏幕百分比

flex 布局 flexible box

任何一个容器都可以设置flex
为父盒子设置flex之后,子元素的float clear vertical-align 属性都将失效
采用flex布局的元素,成为flex容器,简称“容器”,他的所有子元素自动为容器成员,成为flex项目
当主轴上放不下的时候,会更改项目的宽度,这时候要设置换行
主轴:行 x   侧轴:列  y   元素跟着主轴排列

父元素的属性

flex-direction: 设置主轴的方向  或者说来设置什么是主轴
justify-content: 设置子元素的排列方式
flex-wrap: 设置子元素是否换行
align-content: 设置侧轴上的子元素的排列方式  多行
align-items: 设置侧轴上的子元素的排列方式  单行
flex-flow: 复合属性 flex-wrap flex-direction:

flex-direction:

row 默认的值,从左到右
row-reverse  从右到左
column: 从上到下
column-reverse 从下到上

justify-content

flex-start: 默认值 从头排列
flex-end: 从后往前
center: 居中对齐
space-around: 平分剩余空间
space-between: 先两边贴边,再平分剩余空间

flex-wrap

nowrap:默认  不换行
wrap: 换行

align-items

flex-start: 默认值 从头排列
flex-end: 从后往前
center: 居中对齐
stretch  拉伸           拉伸的时候不要给子元素侧轴的宽度或者高度

align-content

flex-start: 默认值 从头排列
flex-end: 从后往前
center: 居中对齐
stretch  拉伸
space-around: 平分剩余空间
space-between: 先两边贴边,再平分剩余空间

flex-flow

flex-flow:row  wrap;

子元素的属性

flex:表示所占的份数
align-self: 子元素的侧轴排列方式
order: 排列顺序,默认0 越小越靠前

rem 适配布局

文字随着屏幕变化,宽高等比例缩放

rem 单位 (root em)

em是父元素的字体大小
rem是html元素的字体大小

媒体查询 Media Query

@media mediatype and|not|only (media feature) {
    css-code
}

mediatype

all     全部
print  打印或者打印预览
scree   有显示屏的

关键字

and 链接多个媒体类型
not 排除某个媒体类型
only    指定特定的媒体类型

media feature 媒体特性

width   可见区域的宽度
min-width   可见区域的最小宽度
max-width   可见区域的最大宽度.

Less Leaner Style Sheets

css扩展语言 css预处理器,常见的有Sass、Less、Stylus

less 变量

@变量名:值;  //大小写敏感 ,必须@前缀  不能包含特殊字符  不能以数字开头

less 编译 easy less 插件

直接保存就会生成对应的css文件

less 嵌套

body {
background-color: #000;
a {
    color: @pink;
}

}

伪类选择器:
  body {
background-color: #000;
    a {
        color: @pink;
        &:hover {
            color: blue;
        }
    }

}

less运算

数字、颜色、变量都可以加减乘除
运算符的左右各有一个空格隔开
如果运算符两侧有两个不同的单位,以第一个为准

响应式布局

利用媒体查询针对不同的设备进行布局和样式的更改
超小屏幕:手机      <768px                  100%
小屏幕:平板        ≥768 <992 px            750px
中等屏幕:电脑      ≥992 <1200 px           970px
超大屏幕;          ≥1200 px                1170px

需要一个父元素作为容器元素.

移动端动画

触屏事件

touch对象   即触摸点
touchstart          触摸到一个元素触发
touchmove           手指拖动或者滑动    
touchend            手指从一个元素离开

Author: NaiveKyo
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source NaiveKyo !
  TOC