响应式网站

news/2024/7/5 3:55:34

浏览器会给出 DIP(device independent pixels) ,而不是 hardware pixels。
DIP 实际上联系像素到实际的距离。不管显示器的 pixel density 是怎样,同样的 DIP 会占据同样的空间。

The idea being that a device independent pixel will take up the same amount of space on a display regardless of the pixel density of the display.

设置 Viewport

<meta name="viewport" content="width=device-width, initial-scale=1">

width=device-width width属性控制视口的宽度设为 device-width 这一特殊值来指代比例为 100% 时屏幕宽度的 CSS 像素数值。
initial-scale=1 initial-scale 属性控制页面最初加载时的缩放等级。maximum-scale、minimum-scale 及 user-scalable 属性控制允许用户以怎样的方式放大或缩小页面。

响应式图片

CSS does allow content to overflow it's container

//单开一篇

quiz: 判断此图片元素是否是响应式的

<img id="owl">

#owl{
    width: 640px;
    max-width: 100%;
}

An: 是, max-width 属性实际上会覆盖 width 属性

Buttons

button 的大小应该有 48px, 有时候可以小一些,但至少要有 40px
同样,两个 button 之间的间隔应有 48px
下面是个好的例子:

button {
    min-width: 48px;
    min-height: 48px;
}

Media Query

<link rel="stylesheet" media="screen and (min-width: 500px)" href="yes.css")
@media screen and (min-width: 500px) and (max-width: 600px) {
    body {
        background-color: azure;
    }
}

考虑到性能,避免使用 @import (更多HTTP请求)

Flexbox

A Complete Guide to Flexbox

冒泡事件

-----------------------------------
| element1                        |
|   -------------------------     |
|   |element2               |     |
|   -------------------------     |
|                                 |
-----------------------------------

一个元素嵌套在另一个元素中,而两个元素都有onClick事件处理函数(event handler)。那么点击element2,哪个事件会先触发?

捕获型事件

当你使用捕获型事件时

               | |
---------------| |-----------------
| element1     | |                |
|   -----------| |-----------     |
|   |element2  \ /          |     |
|   -------------------------     |
|        Event CAPTURING          |
-----------------------------------

element1的事件处理函数首先被触发,element2的事件处理函数最后被触发

冒泡型事件

当你使用冒泡型事件时

               / \
---------------| |-----------------
| element1     | |                |
|   -----------| |-----------     |
|   |element2  | |          |     |
|   -------------------------     |
|        Event BUBBLING           |
-----------------------------------

element2 的处理函数首先被触发,element1其次

W3C model

任何发生在w3c事件模型中的事件,首是进入捕获阶段,直到达到目标元素,再进入冒泡阶段

                 | |  / \
-----------------| |--| |-----------------
| element1       | |  | |                |
|   -------------| |--| |-----------     |
|   |element2    \ /  | |          |     |
|   --------------------------------     |
|        W3C event model                 |
------------------------------------------

通过addEventListener()方法的最后一个参数可以选择是在捕获阶段还是冒泡阶段绑定事件处理函数

element1.addEventListener('click',doSomething2,true)

element2.addEventListener('click',doSomething,false)

如果这个函数的最后一个参数是true,则在捕获阶段绑定函数,反之false,在冒泡阶段绑定函数。

e.stopPropagation()

可停止传播

Setting document–wide event handlers is necessary in drag–and–drop scripts. Typically a mousedown event on a layer selects this layer and makes it respond to the mousemove event. Though the mousedown is usually registered on the layer to avoid browser bugs, both other event handlers must be document–wide.

//没懂

参考: Event order

表格

No More Tables

将表头以绝对路径设置到视野外而不是使用 display:none 因为这会使用 screen reader 的用户遇到 accessibility 问题

Contained Scrolling

将表格包裹在<div class="table_container">中

@media screen and (max-width: 500px) {
    .table_container {
        width: 100%;
        overflow-x: auto;
    }
}

More

Responsive Data Table Roundup

截短文本

我的另一篇文章


http://www.niftyadmin.cn/n/2135999.html

相关文章

Weui初始开发链接

https://blog.csdn.net/hou549135295/article/details/72621484

Git基础(6):命令大全

文章目录前言常用命令配置信息仓库命令增加/删除文件提交代码分支查看信息远程同步撤销other前言 Git常用的各种命令和解析。常用命令 配置信息 #显示当前的配置 git config --list#编辑Git配置文件 git config -e [--global]#设置提交代码时的用户信息 git config [--global…

将Spring Boot程序打包成docker镜像-超简版

将Dockerfile和你的spring boot编译好的jar放在一个目录底下 Dockerfile: Java代码 FROM ingensi/oracle-jdk:centos6-7u65 MAINTAINER wiselyman ADD platform-0.0.1-SNAPSHOT.jar /app/ WORKDIR /app/ EXPOSE 8888 CMD ["java","-jar",…

Node.js的使用

1、Node.js能干什么 2、Node.js的应用范围 3、Node.js的优点和缺点

Git基础(7):Git命令

文章目录初始化本地库查看本地库状态添加到暂存区/从暂存区移除提交本地库查看版本信息修改文件版本穿梭初始化本地库 git init #初始化本地库查看本地库状态 git status 添加到暂存区/从暂存区移除 git add [file1] [file2] ... git add . #添加当前文件夹下的所有未跟踪文…

PHP 实现适配器(Adapter)模式

适配器模式核心思想&#xff1a;把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器&#xff0c;或者比喻为一个“界面”&#xff0c;统一或屏蔽了那些类的细节。适配器模式还构造了一种“机制”&#xff0c;使“适配”的类可以很容易的增减&#xff0…

什么是Git?转自https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013739

Git简介 Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统&#xff08;没有之一&#xff09;。 Git有什么特点&#xff1f;简单来说就是&#xff1a;高端大气上档次&#xff01; 那什么是版本控制系统&#xff1f; 如果你用Microsoft Word写过长篇大论&am…

我所熟悉的网站负载均衡技术

DNS轮循 http://hudeyong926.iteye.com/blog/1387793 DNS轮循是指将相同的域名解释到不同的IP&#xff0c;随机使用其中某台主机的技术。但其具有明显的缺 点&#xff1a;一旦某个服务器出现故障&#xff0c;即使及时修改了DNS设置&#xff0c;还是要等待足够的时间&#xff08…